def form_field(self, catalog, user=None): args = {} from base_code import BaseCode from translation import DataTranslation objs = BaseCode.objects.filter(content='%s.%s' % (self.app_label, self.name)) if objs.count() > 0: f = forms.fields.ChoiceField args['choices'] = [(o.value, DataTranslation.get_obj_display2(o, 'display')) for o in objs] else: try: f = getattr(forms, self.type or "CharField") except: f = forms.CharField if self.widget: args['widget'] = getattr(forms.widgets, self.widget) args['required'] = self.required args['label'] = _(self.verbose_name or self.name) args['initial'] = self.default if user: try: p = PersonalOption.objects.get(option=self, user=user) args['initial'] = p.value except: pass if catalog == SYSPARAM: try: p = SystemOption.objects.get(option=self) args['initial'] = p.value except: pass if self.help_text: args['help_text'] = _(self.help_text) return f(**args)
def display_label(self): return DataTranslation.get_field_display(BaseCode, "display", self.display)