diff options
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 29 | 
1 files changed, 27 insertions, 2 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index b4a385b4e..0900b2d9a 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1020,6 +1020,16 @@ class JsonDataSection(models.Model):          return u"{} - {}".format(self.content_type, self.name) +JSON_VALUE_TYPES = ( +    ('T', _(u"Text")), +    ('LT', _(u"Long text")), +    ('I', _(u"Integer")), +    ('F', _(u"Float")), +    ('D', _(u"Date")), +    ('C', _(u"Choices")), +) + +  class JsonDataField(models.Model):      name = models.CharField(_(u"Name"), max_length=200)      content_type = models.ForeignKey(ContentType) @@ -1030,8 +1040,12 @@ class JsonDataField(models.Model):                      u"'my_subkey' with data such as {'my_key': {'my_subkey': "                      u"'value'}}, its value will be reached with my_key__my_subkey."))      display = models.BooleanField(_(u"Display"), default=True) +    value_type = models.CharField(_(u"Type"), default="T", max_length=10, +                                  choices=JSON_VALUE_TYPES)      order = models.IntegerField(_(u"Order"), default=10)      section = models.ForeignKey(JsonDataSection, blank=True, null=True) +    custom_forms = models.ManyToManyField( +        "CustomForm", blank=True, through="CustomFormJsonField")      class Meta:          verbose_name = _(u"Json data - Field") @@ -1813,7 +1827,7 @@ class CustomForm(models.Model):          cls._register = {}          # ideally should be improved but only used in admin          from ishtar_common.admin import ISHTAR_FORMS -        from ishtar_common.forms import CustomForm +        from ishtar_common.forms import CustomForm as CustomFormForm          for app_form in ISHTAR_FORMS:              for form in dir(app_form): @@ -1822,7 +1836,7 @@ class CustomForm(models.Model):                      continue                  form = getattr(app_form, form)                  if not inspect.isclass(form) \ -                        or not issubclass(form, CustomForm) \ +                        or not issubclass(form, CustomFormForm) \                          or not getattr(form, 'form_slug', None):                      continue                  cls._register[form.form_slug] = form @@ -1844,6 +1858,17 @@ class ExcludedField(models.Model):          verbose_name_plural = _(u"Excluded fields") +class CustomFormJsonField(models.Model): +    custom_form = models.ForeignKey(CustomForm, related_name='json_fields') +    json_field = models.ForeignKey(JsonDataField, +                                   related_name='custom_form_details') +    order = models.IntegerField(verbose_name=_(u"Order"), default=1) + +    class Meta: +        verbose_name = _(u"Custom form - Json data field") +        verbose_name_plural = _(u"Custom form - Json data fields") + +  class GlobalVar(models.Model, Cached):      slug = models.SlugField(_(u"Variable name"), unique=True)      description = models.TextField(_(u"Description of the variable"), | 
