diff --git a/config.json.sample b/config.json.sample index 89ed1b9..6467f56 100644 --- a/config.json.sample +++ b/config.json.sample @@ -27,10 +27,10 @@ } ] }, - "scheduled": { + "schedule": { "Ontario": { "MonAM": "swift", - "MonPM": "swift", + "MonPM": "", "TueAM": "swift", "TuePM": "swift" }, @@ -38,10 +38,6 @@ "MonAM": "cinder", "MonPM": "cinder", "TueAM": "cinder", - "TuePM": "cinder" } - }, - "extrarooms": { - "Missouri": ["MonAM", "MonPM", "TueAM", "TuePM"] } } diff --git a/html/ptg.html b/html/ptg.html index b860374..0328a30 100644 --- a/html/ptg.html +++ b/html/ptg.html @@ -92,11 +92,11 @@ {{time.desc}} {{/each}} - {{#each @root.scheduled as |schedule room|}} - {{#if (roomactive @root.scheduled @root.additional room times)}} + {{#each @root.schedule as |sched room|}} + {{#if (roomactive @root.schedule room times)}} {{room}} {{#each (lookup @root.slots day) as |time|}} - {{ roomcode @root.scheduled @root.additional room time.name 0 }} + {{ roomcode @root.schedule room time.name 0 }} {{/each}} {{/if}} diff --git a/html/ptg.js b/html/ptg.js index 7270c4d..1ce66c3 100644 --- a/html/ptg.js +++ b/html/ptg.js @@ -22,43 +22,29 @@ Handlebars.registerHelper('trackContentLine', function(options) { }); Handlebars.registerHelper('roomactive', - function(scheduled, additional, room, times) { + function(schedule, room, times) { for (var i=0; i' + scheduled[room][timecode]; - return new Handlebars.SafeString(cell); - } else { - if (additional[room]) { - if (additional[room][timecode] != undefined) { - if (additional[room][timecode] == "") { - if (s == 1) { - cell = 'Available for booking'; - } else { - cell = '' + room + "-" + timecode + ''; - } - } else { - cell = '' + additional[room][timecode]; - } + if (schedule[room][timecode] != undefined) { + if (schedule[room][timecode] == "") { + if (s == 1) { + cell = 'Available for booking'; + } else { + cell = '' + room + "-" + timecode + ''; } + } else { + cell = '' + schedule[room][timecode]; } } return new Handlebars.SafeString(cell); diff --git a/ptgbot/db.py b/ptgbot/db.py index ba16c2d..924336d 100644 --- a/ptgbot/db.py +++ b/ptgbot/db.py @@ -15,7 +15,6 @@ import calendar import copy import datetime -from itertools import chain import json import os import random @@ -24,13 +23,12 @@ import random class PTGDataBase(): BASE = {'tracks': [], 'slots': {}, 'now': {}, 'next': {}, 'colors': {}, - 'location': {}, 'scheduled': {}, 'additional': {}, 'voice': 0} + 'location': {}, 'schedule': {}, 'voice': 0} def __init__(self, config): self.filename = config['db_filename'] self.slots = config['slots'] - self.scheduled = config['scheduled'] - self.extrarooms = config['extrarooms'] + self.schedule = config['schedule'] if os.path.isfile(self.filename): with open(self.filename, 'r') as fp: @@ -38,24 +36,16 @@ class PTGDataBase(): else: self.data = copy.deepcopy(self.BASE) - old_data = copy.deepcopy(self.data['additional']) self.load_data_from_config() - self.merge_additional(old_data) self.save() def load_data_from_config(self): # Copy slots definition and scheduled rooms from configuration self.data['slots'] = self.slots - self.data['scheduled'] = self.scheduled - - # Create additional rooms dictionary from extrarooms definition - for room in self.extrarooms.keys(): - self.data['additional'][room] = {} - for slot in self.extrarooms[room]: - self.data['additional'][room][slot] = '' + self.data['schedule'] = self.schedule # Add tracks mentioned in configuration that are not in track list - for room, bookings in self.scheduled.items(): + for room, bookings in self.schedule.items(): for time, track in bookings.items(): if track not in self.data['tracks']: self.data['tracks'].append(track) @@ -74,15 +64,6 @@ class PTGDataBase(): '#dc0d0e', ]) - def merge_additional(self, old_data): - # Populate 'additional' with saved data where appropriate - for room in self.data['additional'].keys(): - for slot in self.data['additional'][room].keys(): - try: - self.data['additional'][room][slot] = old_data[room][slot] - except KeyError: - pass - def add_now(self, track, session): self.data['now'][track] = session # Update location if none manually provided yet @@ -104,9 +85,7 @@ class PTGDataBase(): today = calendar.day_name[datetime.date.today().weekday()] if today not in self.data['slots']: today = next(iter(self.data['slots'])) - all_schedule = chain(self.data['scheduled'].items(), - self.data['additional'].items()) - for room, bookings in all_schedule: + for room, bookings in self.data['schedule'].items(): for btime, btrack in bookings.items(): for slot in self.data['slots'].get(today, []): if btrack == track and btime == slot['name']: @@ -151,18 +130,18 @@ class PTGDataBase(): def is_slot_valid_and_empty(self, room, timeslot): try: - return not self.data['additional'][room][timeslot] + return not self.data['schedule'][room][timeslot] except KeyError: return False def book(self, track, room, timeslot): - self.data['additional'][room][timeslot] = track + self.data['schedule'][room][timeslot] = track self.save() def unbook(self, room, timeslot): - if room in self.data['additional'].keys(): - if timeslot in self.data['additional'][room].keys(): - self.data['additional'][room][timeslot] = "" + if room in self.data['schedule'].keys(): + if timeslot in self.data['schedule'][room].keys(): + self.data['schedule'][room][timeslot] = "" self.save() def is_voice_required(self):