Ejemplo n.º 1
0
 def deScheduleTalk(self):
     day = self.request.get("daysList")
     track = self.request.get("selectedSlotTrack")
     slot = datetime.strptime(self.request.get("selectedSlot"),
                              "%H:%M:%S").time()
     schedule.get_conference_schedule(
         self.get_crrt_conference_key()).get().clear_talk(day, track, slot)
Ejemplo n.º 2
0
    def scheduleTalk(self):
        day = self.request.get("daysList")
        track = self.request.get("selectedSlotTrack")
        slot = datetime.strptime(self.request.get("selectedSlot"),
                                 "%H:%M:%S").time()
        sub_key = self.request.get("selectedTalkKey")

        schedule.get_conference_schedule(
            self.get_crrt_conference_key()).get().assign_talk(
                sub_key, day, track, slot)
Ejemplo n.º 3
0
    def removeElements(self):
        sched_key = schedule.get_conference_schedule(
            self.get_crrt_conference_key())

        for safe_key in self.request.get_all("elementSelect"):
            key = ndb.Key(urlsafe=safe_key)
            key.delete()
Ejemplo n.º 4
0
    def testGetSchedule(self):
        # get conference will either retried existing schedule_lib or make a new one
        sched_key = schedule.get_conference_schedule(self.c.key)
        self.assertNotEquals(None, sched_key)

        sched = sched_key.get()
        self.assertEquals([], sched.day_names())
Ejemplo n.º 5
0
 def mkExport(self):
     url = schedexport.schedule_to_excel(
         schedule.get_conference_schedule(
             self.get_crrt_conference_key()).get())
     rpt_key = reportrecord.mk_report_record(self.get_crrt_conference_key(),
                                             "Schedule", url)
     self.redirect("/exportspage?newrpt=" + rpt_key.urlsafe())
Ejemplo n.º 6
0
    def testOrderedSlots(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")

        self.assertEquals({}, sched.slots("Friday"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 30), datetime.time(9, 30),
                          "Nine thirty"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(8, 30), datetime.time(8, 30),
                          "Eight thirty"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 15), datetime.time(9, 15),
                          "Nine ffiteen"))

        self.assertEquals([
            datetime.time(8, 30),
            datetime.time(9, 0),
            datetime.time(9, 15),
            datetime.time(9, 30)
        ], sched.orderd_slot_keys("Friday"))
Ejemplo n.º 7
0
    def testAssignments(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30), "Ten"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(10, 0)))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(11, 0), datetime.time(11, 30),
                          "Elevent"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(11, 0)))

        sched.assign_talk("Random talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Random talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.assign_talk("Another talk", "Friday", "Track1",
                          datetime.time(10, 0))
        self.assertEquals(
            "Another talk",
            sched.get_assignment("Friday", "Track1", datetime.time(10, 0)))

        sched.assign_talk("Last talk", "Friday", "Track1",
                          datetime.time(11, 0))
        self.assertEquals(
            "Last talk",
            sched.get_assignment("Friday", "Track1", datetime.time(11, 0)))

        sched.assign_talk(
            "No such slot - accidentally supported but shouldnt happen talk",
            "Friday", "Track1", datetime.time(12, 0))
        self.assertEquals(
            "No such slot - accidentally supported but shouldnt happen talk",
            sched.get_assignment("Friday", "Track1", datetime.time(12, 0)))

        sched.assign_talk("Allan talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Allan talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(13, 0)))
Ejemplo n.º 8
0
    def get(self):
        conf_key = self.get_crrt_conference_key()

        self.write_page(
            'schedule_lib/elementspage.html', {
                "elements":
                schedelement.retreieve_elements(
                    schedule.get_conference_schedule(conf_key)),
            })
Ejemplo n.º 9
0
    def get(self):
        conf_key = self.get_crrt_conference_key()
        sched = schedule.get_conference_schedule(conf_key).get()

        selected_day = self.selected_day(sched)

        self.write_page('schedule_lib/scheduleconfigpage.html', {
            "sched": sched,
            "selectedDay": selected_day,
        })
Ejemplo n.º 10
0
    def test_schedule_to_excel(self, mock_storage_open, mock_sheet_write,
                               mock_merge):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()

        sched.add_day("Monday")
        sched.add_track("Monday", "Software")
        sched.add_track("Monday", "Hardware")

        sched.add_slot(
            "Monday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 30), "Tracks"))
        sched.add_slot(
            "Monday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30),
                          "Plenary"))

        t = talk.mk_talk(None, "Random talk")
        sub = submissionrecord.make_submission(t, self.c.key, "Track1",
                                               "FormatX")
        sched.assign_talk(sub.urlsafe(), "Monday", "Hardware",
                          datetime.time(9, 0))

        self.assertEquals(0, mock_storage_open.call_count)
        url = schedexport.schedule_to_excel(sched)
        self.assertEquals(1, mock_storage_open.call_count)
        self.assertEquals(8, mock_sheet_write.call_count)
        self.assertEquals(1, mock_merge.call_count)

        self.assertEquals(
            "https:///mimas-aotb.appspot.com.storage.googleapis.com/Schedule",
            url[0:63])
        self.assertEquals(".xlsx", url[len(url) - 5:])

        self.assertEquals((0, 2, "Software"),
                          mock_sheet_write.mock_calls[0][1][1:])
        self.assertEquals((0, 3, "Hardware"),
                          mock_sheet_write.mock_calls[1][1][1:])

        self.assertEquals((1, 0, "09:00"),
                          mock_sheet_write.mock_calls[2][1][1:])
        self.assertEquals((1, 1, "09:30"),
                          mock_sheet_write.mock_calls[3][1][1:])
        self.assertEquals((1, 2, "Empty"),
                          mock_sheet_write.mock_calls[4][1][1:])
        self.assertEquals((1, 3, "Random talk"),
                          mock_sheet_write.mock_calls[5][1][1:])

        self.assertEquals((2, 0, "10:00"),
                          mock_sheet_write.mock_calls[6][1][1:])
        self.assertEquals((2, 1, "10:30"),
                          mock_sheet_write.mock_calls[7][1][1:])
        self.assertEquals((2, 2, 2, 3, "Empty"),
                          mock_merge.mock_calls[0][1][1:])
Ejemplo n.º 11
0
    def testTracks(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Thursday")

        self.assertEquals([], sched.tracks("Thursday"))
        sched.add_track("Thursday", "Software")
        self.assertEquals(["Software"], sched.tracks("Thursday"))
        sched.add_track("Thursday", "Hardware")
        self.assertEquals(["Software", "Hardware"], sched.tracks("Thursday"))

        sched.del_track("Thursday", "Software")
        self.assertEquals(["Hardware"], sched.tracks("Thursday"))
Ejemplo n.º 12
0
    def testMakeRetrieve(self):
        sched_key = schedule.get_conference_schedule(self.c.key)

        self.assertEquals([], schedelement.retreieve_elements(sched_key))

        element_key = schedelement.mk_element(sched_key, "Coffee")
        element = element_key.get()
        self.assertEquals("Coffee", element.title())
        self.assertEquals([element], schedelement.retreieve_elements(sched_key))

        element_key2 = schedelement.mk_element(sched_key, "Lunch")
        element2 = element_key2.get()
        self.assertEquals("Lunch", element2.title())
        elements = schedelement.retreieve_elements(sched_key)
        sorted_elements = sorted(elements, key=(lambda t: t.title_db))
        self.assertEquals([element, element2], sorted_elements)
Ejemplo n.º 13
0
    def show_schedule_page(self, crrt_conference):
        sched = schedule.get_conference_schedule(crrt_conference.key).get()
        accepted_subs = submissions_aux.retrieve_by_final_decision_track_ordered(
            crrt_conference.key, "Accept")
        submissions = self.remove_scheduled(accepted_subs,
                                            sched.get_assigned_submissions())

        tracks = crrt_conference.track_options()
        self.write_page(
            'schedule_lib/schedulepage.html', {
                "sched": sched,
                "selectedDay": self.selectedDay(),
                "conf_tracks": tracks,
                "track_count": len(tracks),
                "elements": schedelement.retreieve_elements(sched.key),
                "submissions": submissions,
                "crrt_conference": crrt_conference,
                "talkTitle": schedule.talkTitle,
            })
Ejemplo n.º 14
0
    def testClearAssignments(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.assign_talk("Random talk", "Friday", "Track1",
                          datetime.time(9, 0))
        self.assertEquals(
            "Random talk",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))

        sched.clear_talk("Friday", "Track1", datetime.time(9, 0))
        self.assertEquals(
            "Empty",
            sched.get_assignment("Friday", "Track1", datetime.time(9, 0)))
Ejemplo n.º 15
0
    def testSlots(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        sched.add_day("Friday")

        self.assertEquals({}, sched.slots("Friday"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 30), "Tracks"))
        self.assertEquals(1, len(sched.slots("Friday")))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 0)))
        first_slot = sched.slots("Friday")[datetime.time(9, 0)]
        self.assertEquals(datetime.time(9, 0), first_slot.start_time)
        self.assertEquals(datetime.time(9, 30), first_slot.end_time)
        self.assertEquals("Tracks", first_slot.slot_type)

        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 30), datetime.time(10, 30),
                          "Plenary"))
        self.assertEquals(2, len(sched.slots("Friday")))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 30)))
        second_slot = sched.slots("Friday")[datetime.time(9, 30)]
        self.assertEquals(datetime.time(9, 30), second_slot.start_time)
        self.assertEquals(datetime.time(10, 30), second_slot.end_time)
        self.assertEquals("Plenary", second_slot.slot_type)

        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(14, 0), datetime.time(15, 0),
                          "Plenary"))
        self.assertEquals(3, len(sched.slots("Friday")))
        sched.delete_slot_by_start_time("Friday", datetime.time(9, 30))
        self.assertEquals(2, len(sched.slots("Friday")))

        self.assertFalse(sched.slots("Friday").has_key(datetime.time(9, 30)))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(9, 0)))
        self.assertTrue(sched.slots("Friday").has_key(datetime.time(14, 0)))
Ejemplo n.º 16
0
    def testScheduleDays(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        self.assertEquals([], sched.day_names())

        sched.add_day("Thursday")
        self.assertEquals(["Thursday"], sched.day_names())

        sched.add_day("Friday")
        expected_days = ["Thursday", "Friday"]
        expected_days.sort()
        retrieved_days = sched.day_names()
        retrieved_days.sort()
        self.assertEquals(expected_days, retrieved_days)

        thursday = sched.get_day("Thursday")
        self.assertEquals([], sched.tracks("Thursday"))

        sched.delete_day("Thursday")
        self.assertEquals(["Friday"], sched.day_names())

        sched.delete_day("Monday")
        self.assertEquals(["Friday"], sched.day_names())
Ejemplo n.º 17
0
    def testListAssignedSubmissions(self):
        sched_key = schedule.get_conference_schedule(self.c.key)
        sched = sched_key.get()
        self.assertEquals([], sched.get_assigned_submissions())
        sched.add_day("Friday")
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(9, 0), datetime.time(9, 0), "Nine"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(10, 0), datetime.time(10, 30), "Ten"))
        sched.add_slot(
            "Friday",
            schedule.Slot(datetime.time(11, 0), datetime.time(11, 30),
                          "Elevent"))

        sched.assign_talk("Talk1", "Friday", "Track1", datetime.time(9, 0))
        sched.assign_talk("Talk2", "Friday", "Track1", datetime.time(10, 0))
        sched.assign_talk("Talk3", "Friday", "Track1", datetime.time(11, 0))

        assigned_talks = sched.get_assigned_submissions()
        assigned_talks.sort()
        self.assertEquals(["Talk1", "Talk2", "Talk3"], assigned_talks)
Ejemplo n.º 18
0
 def addNewElement(self):
     schedelement.mk_element(
         schedule.get_conference_schedule(self.get_crrt_conference_key()),
         self.request.get("newElement"))
Ejemplo n.º 19
0
 def addCommonElements(self):
     sched_key = schedule.get_conference_schedule(
         self.get_crrt_conference_key())
     schedelement.mk_element(sched_key, "Coffee")
     schedelement.mk_element(sched_key, "Lunch")