diff options
| -rw-r--r-- | postgresqleu/confreg/backendforms.py | 2 | ||||
| -rw-r--r-- | postgresqleu/confreg/models.py | 6 | ||||
| -rw-r--r-- | postgresqleu/membership/models.py | 4 | ||||
| -rw-r--r-- | postgresqleu/util/backendviews.py | 6 |
4 files changed, 10 insertions, 8 deletions
diff --git a/postgresqleu/confreg/backendforms.py b/postgresqleu/confreg/backendforms.py index 3c2b22ed..30a4f292 100644 --- a/postgresqleu/confreg/backendforms.py +++ b/postgresqleu/confreg/backendforms.py @@ -991,7 +991,7 @@ class BackendConferenceSpeakerForm(BackendGlobalSpeakerForm): self.fields['user'].widget = StaticTextWidget() def fix_fields(self): - self.initial['user'] = escape(self.instance._display_user()) + self.initial['user'] = escape(self.instance._display_user({})) def post_save(self): if self.newformdata: diff --git a/postgresqleu/confreg/models.py b/postgresqleu/confreg/models.py index 812332e7..975289bf 100644 --- a/postgresqleu/confreg/models.py +++ b/postgresqleu/confreg/models.py @@ -973,7 +973,7 @@ class Speaker(models.Model): else: return None - def _display_user(self): + def _display_user(self, cache): if self.user: if self.user.email: return "{0} <{1}>".format(self.user.username, self.user.email) @@ -1239,7 +1239,7 @@ class VolunteerSlot(models.Model): def __str__(self): return self._display_timerange() - def _display_timerange(self): + def _display_timerange(self, cache): start = timezone.localtime(self.timerange.lower) end = timezone.localtime(self.timerange.upper) if start.date() == end.date(): @@ -1435,7 +1435,7 @@ class AccessToken(models.Model): def __str__(self): return self.token - def _display_permissions(self): + def _display_permissions(self, cache): return ", ".join(self.permissions) diff --git a/postgresqleu/membership/models.py b/postgresqleu/membership/models.py index 03f85838..edd6cc03 100644 --- a/postgresqleu/membership/models.py +++ b/postgresqleu/membership/models.py @@ -151,11 +151,11 @@ class Meeting(models.Model): return None @property - def _display_meetingtype(self): + def _display_meetingtype(self, cache): return MeetingType.CHOICES.get(self.meetingtype, 'Unknown') @property - def _display_state(self): + def _display_state(self, cache): if self.meetingtype == MeetingType.WEB: return STATE_CHOICES.get(self.state, 'Unknown') else: diff --git a/postgresqleu/util/backendviews.py b/postgresqleu/util/backendviews.py index 685320d9..621d39eb 100644 --- a/postgresqleu/util/backendviews.py +++ b/postgresqleu/util/backendviews.py @@ -285,9 +285,10 @@ def backend_list_editor(request, urlname, formclass, resturl, allow_new=True, al else: raise Http404() + cache = {} values = [{ 'id': o.pk, - 'vals': [getattr(o, '_display_{0}'.format(f), getattr(o, f)) for f in formclass.list_fields], + 'vals': [getattr(o, '_display_{0}'.format(f))(cache) if hasattr(o, '_display_{0}'.format(f)) else getattr(o, f) for f in formclass.list_fields], 'rowclass': formclass.get_rowclass(o), } for o in objects] @@ -466,7 +467,8 @@ def backend_handle_copy_previous(request, formclass, restpieces, conference): objects = formclass.Meta.model.objects.filter(conference=sourceconf) if formclass.queryset_extra_fields: objects = objects.extra(select=formclass.queryset_extra_fields) - values = [{'id': o.pk, 'vals': [getattr(o, '_display_{0}'.format(f), getattr(o, f)) for f in formclass.list_fields]} for o in objects] + cache = {} + values = [{'id': o.pk, 'vals': [getattr(o, '_display_{0}'.format(f))(cache) if hasattr(o, '_display_{0}'.format(f)) else getattr(o, f) for f in formclass.list_fields]} for o in objects] return render(request, 'confreg/admin_backend_list.html', { 'conference': conference, 'basetemplate': 'confreg/confadmin_base.html', |
