Skip to content
Snippets Groups Projects
Verified Commit 871a619b authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Add lazy-wrapped syncable fields retriever

parent 03d83a6a
No related branches found
No related tags found
1 merge request!248Resolve "Allow matching primary groups on arbitrary field"
Pipeline #1944 passed with warnings
...@@ -7,6 +7,7 @@ from django.contrib.sites.models import Site ...@@ -7,6 +7,7 @@ from django.contrib.sites.models import Site
from django.db import models from django.db import models
from django.db.models import QuerySet from django.db.models import QuerySet
from django.forms.models import ModelForm, ModelFormMetaclass from django.forms.models import ModelForm, ModelFormMetaclass
from django.utils.functional import lazy
import reversion import reversion
from easyaudit.models import CRUDEvent from easyaudit.models import CRUDEvent
...@@ -196,6 +197,12 @@ class ExtensibleModel(models.Model): ...@@ -196,6 +197,12 @@ class ExtensibleModel(models.Model):
[(field.name, field.verbose_name or field.name) for field in cls.syncable_fields()] [(field.name, field.verbose_name or field.name) for field in cls.syncable_fields()]
) )
@classmethod
def syncable_fields_choices_lazy(cls) -> callable[[], Tuple[Tuple[str, str]]]:
""" Collect all fields that can be synced on a model """
return lazy(cls.syncable_field_choices, tuple)
class Meta: class Meta:
abstract = True abstract = True
......
...@@ -157,7 +157,7 @@ class PrimaryGroupField(ChoicePreference): ...@@ -157,7 +157,7 @@ class PrimaryGroupField(ChoicePreference):
section = account section = account
name = "primary_group_field" name = "primary_group_field"
default = "name" default = "name"
choices = Person.syncable_fields_choices() choices = Person.syncable_fields_choices_lazy()
required = False required = False
verbose_name = _("Field on person to match primary group against") verbose_name = _("Field on person to match primary group against")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment