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'), )
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'), )