Exemple #1
0
    def edit(self, id, errors=None, format=u'html'):
        badge = self._get_badge_or_redirect(id)
        data = {
            'badge_type': self._get_badge_type(badge),
            'badge_thumbnail': (
                h.badge_helper.generate_thumbnail_tag(badge)
                if getattr(badge, "thumbnail", None)
                else None
            ),
            'form_type': 'update',
            'return_url': self.base_url,
            'sorting_orders': PROPOSAL_SORTS,
        }
        self._set_parent_categories(exclude=badge)

        # Plug in current values
        instance_default = badge.instance.key if badge.instance else ''
        defaults = dict(
            title=badge.title,
            description=badge.description,
            color=badge.color,
            visible=badge.visible,
            display_group=badge.display_group,
            impact=badge.impact,
            instance=instance_default,
            behavior_proposal_sort_order=badge.behavior_proposal_sort_order)
        if isinstance(badge, UserBadge):
            c.groups = Group.all_instance()
            defaults['group'] = badge.group and badge.group.code or ''
        if isinstance(badge, CategoryBadge):
            defaults['parent'] = badge.parent and badge.parent.id or ''
            defaults['select_child_description'] =\
                badge.select_child_description

        return htmlfill.render(render(self.form_template, data,
                                      overlay=format == u'overlay'),
                               errors=errors,
                               defaults=defaults,
                               force_defaults=False)
Exemple #2
0
    def add(self, badge_type=None, errors=None, format=u''):
        data = {
            'form_type': 'add',
            'groups': Group.all_instance(),
            'sorting_orders': PROPOSAL_SORTS,
        }
        if badge_type is not None:
            data['badge_type'] = badge_type

        defaults = {'visible': True,
                    'select_child_description': '',
                    'impact': 0,
                    }
        defaults.update(dict(request.params))

        self._set_parent_categories()

        html = render(self.form_template, data, overlay=format == u'overlay')
        return htmlfill.render(html,
                               defaults=defaults,
                               errors=errors,
                               force_defaults=False)