Example #1
0
    def create_single_event(klass, form, creator):
        """Creates a non-recurring Mongoengine and Google Calendar event from
        form data.

        :param form: The WTForms form.
        :type form: :class:`CreateEventForm` or a subclass.
        :param creator: The user that is currently logged in.
        :type creator: :class:`~app.models.User`

        :raises: :class:`GoogleCalendarAPIError` and it's subclasses

        :returns: Response from the Google Calendar API.
        :rtype: dict
        """

        # Generate the event and date data
        event_and_date_data = DataBuilder.event_and_date_data_from_form(
            form, creator=creator)
        event_and_date_data = klass._remove_none_fields(event_and_date_data)

        event = Event(**event_and_date_data)
        event.save()

        # Return the Google Calendar response
        return gcal_client.create_event(event)
Example #2
0
    def create_single_event(cls, form, creator):
        """Creates a non-recurring Mongoengine and Google Calendar event from
        form data.

        :param form: The WTForms form.
        :type form: :class:`CreateEventForm` or a subclass.
        :param creator: The user that is currently logged in.
        :type creator: :class:`~app.models.User`

        :raises: :class:`GoogleCalendarAPIError` and it's subclasses

        :returns: Response from the Google Calendar API.
        :rtype: dict
        """

        # Generate the event and date data
        event_and_date_data = DataBuilder.event_and_date_data_from_form(
            form,
            creator=creator
        )
        event_and_date_data = cls._remove_none_fields(event_and_date_data)

        event = Event(**event_and_date_data)
        event.save()

        # Return the Google Calendar response
        return gcal_client.create_event(event)
Example #3
0
    def create_single_event(klass, form, creator):
        """"""
        # Generate the event and date data
        event_and_date_data = DataBuilder.event_and_date_data_from_form(form, creator=creator)
        event_and_date_data = klass._remove_none_fields(event_and_date_data)

        event = Event(**event_and_date_data)
        event.save()

        # Return the Google Calendar response
        return gcal_client.create_event(event)
Example #4
0
    def create_single_event(klass, form, creator):
        """"""
        # Generate the event and date data
        event_and_date_data = DataBuilder.event_and_date_data_from_form(
            form, creator=creator)
        event_and_date_data = klass._remove_none_fields(event_and_date_data)

        event = Event(**event_and_date_data)
        event.save()

        # Return the Google Calendar response
        return gcal_client.create_event(event)
Example #5
0
    def create_series(klass, form, creator):
        """"""
        event_data = DataBuilder.event_data_from_form(form, creator=creator)
        date_data = DataBuilder.date_data_from_form(form)

        # Make the parent series
        series = klass._make_series(form)

        # Update event_data with the parent series
        event_data['parent_series'] = series

        # Make the individual Event objects in the series
        while klass._more_events(series, date_data):
            ev = klass._make_event(event_data, date_data)
            series.events.append(ev)
            klass._increment_date_data(series, date_data)

        series.save()

        # Return the Google Calendar response
        return gcal_client.create_event(series.events[0])
Example #6
0
    def create_series(klass, form, creator):
        """"""
        event_data = DataBuilder.event_data_from_form(form, creator=creator)
        date_data = DataBuilder.date_data_from_form(form)

        # Make the parent series
        series = klass._make_series(form)

        # Update event_data with the parent series
        event_data['parent_series'] = series

        # Make the individual Event objects in the series
        while klass._more_events(series, date_data):
            ev = klass._make_event(event_data, date_data)
            series.events.append(ev)
            klass._increment_date_data(series, date_data)

        series.save()

        # Return the Google Calendar response
        return gcal_client.create_event(series.events[0])
Example #7
0
    def create_series(cls, form, creator):
        """Creates a recurring Mongoengine and Google Calendar event from
        form data.

        Creates both a :class:`EventSeries` and its associated
        :class:`Event` s.

        :param form: The WTForms form.
        :type form: :class:`CreateEventForm` or a subclass.
        :param creator: The user that is currently logged in.
        :type creator: :class:`~app.models.User`

        :raises: :class:`GoogleCalendarAPIError` and it's subclasses

        :returns: Response from the Google Calendar API.
        :rtype: dict
        """

        event_data = DataBuilder.event_data_from_form(form, creator=creator)
        date_data = DataBuilder.date_data_from_form(form)

        # Make the parent series
        series = cls._make_series(form)

        # Update event_data with the parent series
        event_data['parent_series'] = series

        # Make the individual Event objects in the series
        while cls._more_events(series, date_data):
            ev = cls._make_event(event_data, date_data)
            series.events.append(ev)
            cls._increment_date_data(series, date_data)

        series.save()

        # Return the Google Calendar response
        return gcal_client.create_event(series.events[0])
Example #8
0
    def create_series(cls, form, creator):
        """Creates a recurring Mongoengine and Google Calendar event from
        form data.

        Creates both a :class:`EventSeries` and its associated
        :class:`Event` s.

        :param form: The WTForms form.
        :type form: :class:`CreateEventForm` or a subclass.
        :param creator: The user that is currently logged in.
        :type creator: :class:`~app.models.User`

        :raises: :class:`GoogleCalendarAPIError` and it's subclasses

        :returns: Response from the Google Calendar API.
        :rtype: dict
        """

        event_data = DataBuilder.event_data_from_form(form, creator=creator)
        date_data = DataBuilder.date_data_from_form(form)

        # Make the parent series
        series = cls._make_series(form)

        # Update event_data with the parent series
        event_data['parent_series'] = series

        # Make the individual Event objects in the series
        while cls._more_events(series, date_data):
            ev = cls._make_event(event_data, date_data)
            series.events.append(ev)
            cls._increment_date_data(series, date_data)

        series.save()

        # Return the Google Calendar response
        return gcal_client.create_event(series.events[0])