Example #1
0
 def test_get_number_of_days_with_end_date_within_24_hours(self):
     event = Event(date_time_begin = datetime.datetime(2012, 1, 1, 19, 0, 0, 0, timezone.utc),
                   date_time_end = datetime.datetime(2012, 1, 1, 22, 0, 0, 0, timezone.utc))
     self.assertEqual(0, event.get_number_of_days())
     event = Event(date_time_begin = datetime.datetime(2012, 1, 1, 19, 0, 0, 0, timezone.utc),
                   date_time_end = datetime.datetime(2012, 1, 2, 18, 30, 0, 0, timezone.utc))
     self.assertEqual(0, event.get_number_of_days())
Example #2
0
def __create_or_update_event_with_location (form, user, event):
    "Creates or updates an Event from the submitted EventForm. If the given Event is None a new Event is created."
    if event == None:
        event = Event()
    
    event.title = form.cleaned_data['title']
    event.date_time_begin = form.cleaned_data['date_time_begin']
    event.date_time_end = form.cleaned_data['date_time_end']
    event.url = form.cleaned_data['url']
    event.description = form.cleaned_data['description']
    event.location = __get_and_update_or_create_location(form)
    
    # Only when a new event is created
    if event.id == None:
        # auto-publish for staff users
        event.published = user.is_staff
        # link event to user
        if user.is_authenticated():
            event.user = user
    
    # Event must be persisted before tags can be set (many-to-may relationship)
    #if event.id == None:
    #    event.save()
    
    event.tags = form.cleaned_data['tags']
    #event.save()
    
    return event
Example #3
0
 def test_event_versioning(self):
     now = timezone.now().replace(microsecond=0)
     tomorrow = now + datetime.timedelta(days=1)
     
     event = Event(title=u'Test', description='Test', url='http://www.example.com',
                   date_time_begin=now)
     event.save()
     
     version_list = reversion.get_for_object(event)
     self.assertEqual(1, len(version_list))
     
     event.date_time_begin=tomorrow
     event.save()
     
     version_list = reversion.get_for_object(event)
     self.assertEqual(2, len(version_list))
     self.assertEqual(now, version_list[1].field_dict['date_time_begin'])
     self.assertEqual(tomorrow, version_list[0].field_dict['date_time_begin'])
Example #4
0
 def test_get_number_of_days_with_no_end_date(self):
     event = Event(date_time_begin = datetime.datetime(2012, 1, 1, 19, 0, 0, 0, timezone.utc))
     self.assertEqual(0, event.get_number_of_days())
Example #5
0
 def test_event_versioning(self):
     
     now = timezone.now()
     t1 = now + datetime.timedelta(days=3)
     t2 = now + datetime.timedelta(days=5)
     
     # just created event, empty prefix expected
     event = Event(title=u'Test', description='Test', url='http://www.example.com', date_time_begin=t1)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertFalse(changed)
     self.assertEqual("", prefix)
     
     # date updated, prefix expected
     now = timezone.now()
     event.date_time_begin = t2
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Update][Datum] ", prefix)
     
     # location added, no update expected
     now = timezone.now()
     event.location = Location.objects.get(id=1)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertFalse(changed)
     self.assertEqual("", prefix)
     
     # location updated, prefix expected
     now = timezone.now()
     event.location = Location.objects.get(id=2)
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Update][Ort] ", prefix)
     
     # canceled, prefix expected
     now = timezone.now()
     event.canceled = True;
     event.save()
     
     changed, prefix = utils.get_changed_and_change_prefix(event, now)
     self.assertTrue(changed)
     self.assertEqual("[Abgesagt] ", prefix)
Example #6
0
def save_event_from_json(event_as_json, user):
    ev = json.loads(event_as_json)
    
    event = Event()
    event.user = user
    if 'id' in ev:
        event.id = ev['id']
    
    event.title = ev['title']
    
    if 'date_time_begin' in ev:
        event.date_time_begin = __json_string_to_date_time(ev['date_time_begin'])
    if 'date_time_end' in ev:
        event.date_time_end = __json_string_to_date_time(ev['date_time_end'])

    if 'url' in ev:
        event.url = ev['url']
    if 'description' in ev:
        event.description = ev['description']
    if 'canceled' in ev:
        event.canceled = ev['canceled']

    event.save()

    if 'tags' in ev:
        tags = convert_to_event_tags(ev['tags'])
        event.tags = tags
        event.save()

    # TODO: location
    
    return event