예제 #1
0
    def __init__(self, *args, **kwargs):
        request = kwargs.pop('request', None)
        page_id = kwargs.pop('page_id', None)
        region_name = kwargs.pop('region', None)
        feincms_cls_name = kwargs.pop('cls_name', None)
        self.next_view = kwargs.pop('next_view', None)

        module, cls = feincms_cls_name.split('.')
        ObjectCls = apps.get_model(module, cls)
        feincms_object = ObjectCls.objects.get(id=page_id)

        super(WidgetSelectForm, self).__init__(*args, **kwargs)

        self.fields['page_id'].initial = feincms_object.id
        self.fields['region'].initial = region_name

        # load template regions
        self.fields['region'].choices = \
            [(str(region.key),
              '%s%s' % (
                str(region.title),
                _(' - Inherited') if region.inherited else ''))
             for region in feincms_object.template.regions]

        if region_name:
            self.fields['ordering'].initial = \
                len(getattr(feincms_object.content, region_name, [])) + 1

        self.fields['parent'].initial = feincms_object.id

        choices, grouped, ungrouped = get_grouped_widgets(
            feincms_object, request)

        # reduce choices for validation
        self.fields['cls_name'].choices = [(str(choice[0]), str(choice[1]))
                                           for choice in choices]

        # for now ungrouped to grouped
        grouped['Web'] = ungrouped + grouped.get('Web', [])

        self.helper.layout = Layout(
            Field('parent'),
            Field('page_id'),
            Field('ordering'),
            'cls_name',
            Field('region'),
            Field('first'),
        )
예제 #2
0
    def __init__(self, *args, **kwargs):
        request = kwargs.pop('request', None)
        page_id = kwargs.pop('page_id', None)
        region_name = kwargs.pop('region', None)
        feincms_cls_name = kwargs.pop('cls_name', None)
        self.next_view = kwargs.pop('next_view', None)

        module, cls = feincms_cls_name.split('.')
        ObjectCls = apps.get_model(module, cls)
        feincms_object = ObjectCls.objects.get(id=page_id)

        super(WidgetSelectForm, self).__init__(*args, **kwargs)

        self.fields['page_id'].initial = feincms_object.id
        self.fields['region'].initial = region_name

        # load template regions
        self.fields['region'].choices = \
            [(str(region.key),
              '%s%s' % (
                str(region.title),
                ' - Inherited' if region.inherited else ''))
             for region in feincms_object.template.regions]

        if region_name:
            self.fields['ordering'].initial = \
                len(getattr(feincms_object.content, region_name, [])) + 1

        self.fields['parent'].initial = feincms_object.id

        choices, grouped, ungrouped = get_grouped_widgets(
            feincms_object, request)

        # reduce choices for validation
        self.fields['cls_name'].choices = [(str(choice[0]), str(choice[1]))
                                           for choice in choices]

        # for now ungrouped to grouped
        grouped['Web'] = ungrouped + grouped.get('Web', [])

        self.helper.layout = Layout(
            Field('parent'),
            Field('page_id'),
            Field('ordering'),
            'cls_name',
            Field('region'),
            Field('first'),
        )