summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--postgresqleu/confreg/backendforms.py2
-rw-r--r--postgresqleu/confreg/models.py6
-rw-r--r--postgresqleu/membership/models.py4
-rw-r--r--postgresqleu/util/backendviews.py6
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',