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()
Esempio n. 2
0
    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()
Esempio n. 3
0
 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()
Esempio n. 4
0
 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()
Esempio n. 5
0
 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))
Esempio n. 6
0
 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,
            }
        )
Esempio n. 8
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
            })
Esempio n. 9
0
    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)))