diff options
Diffstat (limited to 'ishtar_common/models_common.py')
| -rw-r--r-- | ishtar_common/models_common.py | 43 | 
1 files changed, 41 insertions, 2 deletions
diff --git a/ishtar_common/models_common.py b/ishtar_common/models_common.py index 9ad73f314..613c54fac 100644 --- a/ishtar_common/models_common.py +++ b/ishtar_common/models_common.py @@ -844,8 +844,8 @@ class TemplateItem:          return templates -class SheetFilter(models.Model): -    key = models.CharField(_("Key"), max_length=200) +class BaseSheetFilter(models.Model): +    key = models.TextField(_("Key"), default="-")      class Meta:          abstract = True @@ -873,6 +873,45 @@ class SheetFilter(models.Model):          return sorted(set(keys)) +class SheetFilter(BaseSheetFilter): +    content_type = models.ForeignKey( +        ContentType, related_name="content_type_sheetfilter", on_delete=models.CASCADE +    ) +    exclude_or_include = models.CharField( +        _("Exclude or include"), +        default="E", +        max_length=1, +        choices=(("E", _("exclude")), ("I", _("Include"))) +    ) + +    class Meta: +        verbose_name = _("Sheet filter") +        verbose_name_plural = _("Sheet filters") +    ADMIN_SECTION = _("Account") + +    def get_template(self): +        ct = self.content_type +        model = apps.get_model(ct.app_label, ct.model) +        tpl = loader.get_template(f"ishtar/sheet_{model.SLUG}.html") +        return tpl.template.origin.name + + +class FilteredSheet(models.Model): +    name = models.CharField(_("Name"), max_length=200) +    content_type = models.ForeignKey( +        ContentType, related_name="content_type_filteredsheet", on_delete=models.CASCADE +    ) +    filters = models.ManyToManyField( +        SheetFilter, blank=True, verbose_name=_("Filters"), +        related_name="filtered_sheet" +    ) + +    class Meta: +        verbose_name = _("Filtered sheet") +        verbose_name_plural = _("Filtered sheets") +    ADMIN_SECTION = _("Account") + +  class FullSearch(models.Model):      search_vector = SearchVectorField(          _("Search vector"), blank=True, null=True, help_text=_("Auto filled at save")  | 
