示例#1
0
class NewActivityAjaxView(BaseFormView):
    """
    View for adding activities through ajax calls
    Simply returns a message
    """
    add_template_vars = ()
    schema = NewActivitySchema()
    use_ajax = True
    buttons = (NEW_ACTIVITY_BUTTON,)

    @property
    def form_options(self):
        form_options = _get_next_activity_form_options(self.request)
        return form_options

    def submit_success(self, appstruct):
        activity = new_activity(self.request, appstruct)
        activity_url = self.request.route_path(
                        "activity",
                        id=activity.id,
                        _query=dict(action="edit")
                        )
        form = self._get_form()
        form.set_appstruct(_get_appstruct_from_activity(activity))
        return dict(
                message=ACTIVITY_SUCCESS_MSG.format(activity_url),
                form=form.render()
                )
示例#2
0
class NewActivityView(BaseFormView):
    """
    View for new activity creation
    Only accessible with manage rights
    """
    title = u"Créer un nouveau rendez-vous"
    schema = NewActivitySchema()

    def before(self, form):
        """
        By default the activity is filled with the current user as conseiller
        """
        auto_need(form)
        timepicker_fr.need()
        come_from = self.request.referrer
        current_user = self.request.user
        appstruct = {
            'conseillers': [current_user.id],
            'come_from': come_from,
        }
        if 'user_id' in self.request.GET:
            appstruct['participants'] = [self.request.GET['user_id']]

        form.set_appstruct(appstruct)

    def submit_success(self, appstruct):
        """
        Create the new activity object
        """
        come_from = appstruct.pop('come_from')
        now = appstruct.pop('now', False)

        activity = new_activity(self.request, appstruct)

        activity_url = self.request.route_path("activity",
                                               id=activity.id,
                                               _query=dict(action="edit"))

        if now or not come_from:
            redirect = activity_url
        else:
            msg = ACTIVITY_SUCCESS_MSG.format(activity_url)
            self.session.flash(msg)

            redirect = come_from
        return HTTPFound(redirect)