def setUp(self): weekly = Rule(frequency="WEEKLY") weekly.save() daily = Rule(frequency="DAILY") daily.save() cal = Calendar(name="MyCal") cal.save() self.event1 = Event( **{ 'title': 'Weekly Event', 'start': datetime.datetime(2009, 4, 1, 8, 0), 'end': datetime.datetime(2009, 4, 1, 9, 0), 'end_recurring_period': datetime.datetime(2009, 10, 5, 0, 0), 'rule': weekly, 'calendar': cal }) self.event1.save() self.event2 = Event( **{ 'title': 'Recent Event', 'start': datetime.datetime(2008, 1, 5, 9, 0), 'end': datetime.datetime(2008, 1, 5, 10, 0), 'end_recurring_period': datetime.datetime(2009, 5, 5, 0, 0), 'rule': daily, 'calendar': cal }) self.event2.save()
def setUp(self): weekly = Rule(frequency="WEEKLY") weekly.save() daily = Rule(frequency="DAILY") daily.save() cal = Calendar(name="MyCal") cal.save() self.event1 = Event(**{ 'title': 'Weekly Event', 'start': datetime.datetime(2009, 4, 1, 8, 0), 'end': datetime.datetime(2009, 4, 1, 9, 0), 'end_recurring_period': datetime.datetime(2009, 10, 5, 0, 0), 'rule': weekly, 'calendar': cal }) self.event1.save() self.event2 = Event(**{ 'title': 'Recent Event', 'start': datetime.datetime(2008, 1, 5, 9, 0), 'end': datetime.datetime(2008, 1, 5, 10, 0), 'end_recurring_period': datetime.datetime(2009, 5, 5, 0, 0), 'rule': daily, 'calendar': cal }) self.event2.save()
def setUp(self): rule = Rule(frequency="WEEKLY") rule.save() cal = Calendar(name="MyCal") cal.save() data = { 'title': 'Recent Event', 'start': datetime.datetime(2008, 1, 5, 8, 0), 'end': datetime.datetime(2008, 1, 5, 9, 0), 'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0), 'rule': rule, 'calendar': cal } self.recurring_event = Event(**data) self.recurring_event.save()
def setUp(self): rule = Rule(frequency="WEEKLY") rule.save() cal = Calendar(name="MyCal") cal.save() data = { 'title': 'Recent Event', 'start': datetime.datetime(2008, 1, 5, 8, 0), 'end': datetime.datetime(2008, 1, 5, 9, 0), 'end_recurring_period': datetime.datetime(2008, 5, 5, 0, 0), 'rule': rule, 'calendar': cal } recurring_event = Event(**data) recurring_event.save() self.month = Month(events=Event.objects.all(), date=datetime.datetime(2008, 2, 7, 9, 0))
def handle_noargs(self, **options): print "Checking for users ..." users = User.objects.all() if not users: print "It doesn't look like you've added any users. To add at least one super user run, django-admin.py createsuperuser" sys.exit(1) print "Checking for existing data ..." try: cal = Calendar.objects.get(name="Example Calendar") print "It looks like you already have loaded this sample data, quitting." sys.exit(1) except Calendar.DoesNotExist: pass print "Creating Example Calendar ..." cal = Calendar(name="Example Calendar", slug="example") cal.save() try: rule = Rule.objects.get(name="Daily") except Rule.DoesNotExist: print "Adding the basic recurring rules ..." rule = Rule(frequency="YEARLY", name="Yearly", description="will recur once every Year") rule.save() print "Yearly recurrence created." rule = Rule(frequency="MONTHLY", name="Monthly", description="will recur once every Month") rule.save() print "Monthly recurrence created." rule = Rule(frequency="WEEKLY", name="Weekly", description="will recur once every Week") rule.save() print "Weekly recurrence created." rule = Rule(frequency="DAILY", name="Daily", description="will recur once every Day") rule.save() print "Daily recurrence created." print "Adding some example events ..." WEEKLY_RULE = Rule.objects.get(frequency="WEEKLY") MONTHLY_RULE = Rule.objects.get(frequency="MONTHLY") YEARLY_RULE = Rule.objects.get(frequency="YEARLY") Event.objects.create( **{ "creator": users[0], "title": "Exercise", "start": datetime.datetime(2008, 11, 3, 9, 0), "end": datetime.datetime(2008, 11, 3, 10, 0), "rule": WEEKLY_RULE, "calendar": cal, } ) Event.objects.create( **{ "creator": users[0], "title": "Exercise", "start": datetime.datetime(2008, 11, 5, 15, 0), "end": datetime.datetime(2008, 11, 5, 16, 30), "rule": WEEKLY_RULE, "calendar": cal, } ) Event.objects.create( **{ "creator": users[0], "title": "Exercise", "start": datetime.datetime(2008, 11, 7, 9, 0), "end": datetime.datetime(2008, 11, 7, 10, 0), "rule": WEEKLY_RULE, "calendar": cal, } ) Event.objects.create( **{ "creator": users[0], "title": "Pay Mortgage", "start": datetime.datetime(2008, 11, 1, 14, 0), "end": datetime.datetime(2008, 11, 1, 14, 30), "rule": MONTHLY_RULE, "calendar": cal, } ) Event.objects.create( **{ "creator": users[0], "title": "Rock's Birthday Party", "start": datetime.datetime(2008, 12, 11, 19, 0), "end": datetime.datetime(2008, 12, 11, 23, 59), "rule": YEARLY_RULE, "calendar": cal, } ) Event.objects.create( **{ "creator": users[0], "title": "Christmas Party", "start": datetime.datetime(2008, 12, 25, 19, 30), "end": datetime.datetime(2008, 12, 25, 23, 59), "rule": YEARLY_RULE, "calendar": cal, } )
def handle_noargs(self, **options): print "Checking for users ..." users = User.objects.all() if not users: print "It doesn't look like you've added any users. To add at least one super user run, django-admin.py createsuperuser" sys.exit(1) print "Checking for existing data ..." try: cal = Calendar.objects.get(name="Example Calendar") print "It looks like you already have loaded this sample data, quitting." sys.exit(1) except Calendar.DoesNotExist: pass print "Creating Example Calendar ..." cal = Calendar(name="Example Calendar", slug="example") cal.save() try: rule = Rule.objects.get(name="Daily") except Rule.DoesNotExist: print "Adding the basic recurring rules ..." rule = Rule(frequency="YEARLY", name="Yearly", description="will recur once every Year") rule.save() print "Yearly recurrence created." rule = Rule(frequency="MONTHLY", name="Monthly", description="will recur once every Month") rule.save() print "Monthly recurrence created." rule = Rule(frequency="WEEKLY", name="Weekly", description="will recur once every Week") rule.save() print "Weekly recurrence created." rule = Rule(frequency="DAILY", name="Daily", description="will recur once every Day") rule.save() print "Daily recurrence created." print "Adding some example events ..." WEEKLY_RULE = Rule.objects.get(frequency="WEEKLY") MONTHLY_RULE = Rule.objects.get(frequency="MONTHLY") YEARLY_RULE = Rule.objects.get(frequency="YEARLY") Event.objects.create( **{ 'creator': users[0], 'title': 'Exercise', 'start': datetime.datetime(2008, 11, 3, 9, 0), 'end': datetime.datetime(2008, 11, 3, 10, 0), 'rule': WEEKLY_RULE, 'calendar': cal }) Event.objects.create( **{ 'creator': users[0], 'title': 'Exercise', 'start': datetime.datetime(2008, 11, 5, 15, 0), 'end': datetime.datetime(2008, 11, 5, 16, 30), 'rule': WEEKLY_RULE, 'calendar': cal }) Event.objects.create( **{ 'creator': users[0], 'title': 'Exercise', 'start': datetime.datetime(2008, 11, 7, 9, 0), 'end': datetime.datetime(2008, 11, 7, 10, 0), 'rule': WEEKLY_RULE, 'calendar': cal }) Event.objects.create( **{ 'creator': users[0], 'title': 'Pay Mortgage', 'start': datetime.datetime(2008, 11, 1, 14, 0), 'end': datetime.datetime(2008, 11, 1, 14, 30), 'rule': MONTHLY_RULE, 'calendar': cal }) Event.objects.create( **{ 'creator': users[0], 'title': "Rock's Birthday Party", 'start': datetime.datetime(2008, 12, 11, 19, 0), 'end': datetime.datetime(2008, 12, 11, 23, 59), 'rule': YEARLY_RULE, 'calendar': cal }) Event.objects.create( **{ 'creator': users[0], 'title': 'Christmas Party', 'start': datetime.datetime(2008, 12, 25, 19, 30), 'end': datetime.datetime(2008, 12, 25, 23, 59), 'rule': YEARLY_RULE, 'calendar': cal })
def handle(self, *args, **options): self.create_categories() self.create_locations() old_calendars = UNLCalendar.objects.all() for old_calendar in old_calendars: # Check if the old calendar creator exists in our DB calendar_creator = self.get_create_user(str(old_calendar.uidcreated)) if calendar_creator is not None: new_calendar = Calendar(title=old_calendar.name, owner=calendar_creator) new_calendar.pk = old_calendar.id try: new_calendar.save() except Exception, e: logging.error('Unable to save calendar `%s`: %s' % (old_calendar.name, str(e))) else: # Editors # Assume if they had any permissions at all, they are an editor # (unless they are the calendar owner or a superuser) for uid in UNLUserHasPermission.objects.filter(calendar_id=old_calendar.id).values_list('user_uid').distinct(): uid = uid[0] editor = self.get_create_user(str(uid)) if editor is not None and editor != calendar_creator and not editor.is_superuser: new_calendar.editors.add(editor) # Events for old_calendar_event in UNLCalendarHasEvent.objects.filter(calendar_id = old_calendar.id): try: old_event = UNLEvent.objects.get(id=old_calendar_event.event_id) except UNLEvent.DoesNotExist: logging.error('Has event missing %d' % old_calendar_event.event_id) old_title = old_event.title if len(old_title) > 255: old_title = old_title[0:254] elif old_event.subtitle is not None and len(old_event.title + ' - ' + old_event.subtitle) < 255: old_title += ' - ' + old_event.subtitle old_contact_name = old_event.listingcontactname if not old_contact_name: old_contact_name = calendar_creator.first_name old_contact_name = remove_html(old_contact_name) # Clean before checking length # check to see if the contact name is too long if len(old_contact_name) > 64: old_contact_name = old_contact_name[0:63] old_contact_email = remove_html(old_event.listingcontactemail) old_contact_phone = remove_html(old_event.listingcontactphone) if not old_event.description: old_event.description = settings.FALLBACK_EVENT_DESCRIPTION new_event = Event(title=old_title, description=old_event.description, calendar=new_calendar, contact_name=old_contact_name, contact_email=old_contact_email, contact_phone=old_contact_phone) # Statuses: pending, posted, archived state = None if old_calendar_event.status == 'pending': new_event.state = State.pending elif old_calendar_event.status == 'posted' or old_calendar_event.status == 'archived': new_event.state = State.posted else: logging.error('Unknown old event status `%s`' % old_calendar_event.status) continue event_creator = self.get_create_user(str(old_event.uidcreated)) if event_creator is not None: new_event.creator = event_creator # Event Type -> Category category = self.get_event_category(old_event) if category is not None: new_event.category = category try: new_event.save() except Exception, e: logging.error('Unable to save new event `%s`: %s' % (new_event.title,str(e))) continue else: # Instances for old_instance in UNLEventdatetime.objects.filter(event_id=old_event.id): new_instance = EventInstance(event=new_event, unl_eventdatetime_id=old_instance.id) old_start_time = old_instance.starttime old_end_time = old_instance.endtime # Validate start/end datetimes (UNL event times can be invalid and/or empty) if not old_end_time: new_instance.start = old_start_time new_instance.end = old_start_time + timedelta(hours=1) logging.error('Invalid event instance datetimes: No end datetime available. Setting new end datetime to 1 hour after the given start datetime value `%s`. (Event: `%s`)' % (old_start_time, old_title)) elif old_start_time > old_end_time: new_instance.start = old_start_time new_instance.end = old_start_time + timedelta(hours=1) logging.error('Invalid event instance datetimes: End datetime `%s` occurs before start datetime `%s`. Setting new end datetime value. (Event: `%s`)' % (old_end_time, old_start_time, old_title)) else: new_instance.start = old_start_time new_instance.end = old_end_time # Location old_location_id = old_instance.location_id if not old_location_id: old_location_id = 1 try: old_location = UNLLocation.objects.get(id=old_location_id) except UNLLocation.DoesNotExist: logging.info('UNL event instance location not in UNL Location table: %d' % old_location_id) else: if old_location.name: # check to see if the location name is too long old_location_name = old_location.name if len(old_location_name) > 256: old_location_name = old_location_name[0:256] try: new_instance.location = Location.objects.get(title__iexact=old_location_name) except Location.DoesNotExist: logging.error('No Location for UNL Location %s' % old_location_name) try: new_instance.save() except Exception, e: logging.error('Unable to save event instance for event `%s`: %s' % (new_event.title,str(e)))