Added some caching to methods which are called very often when showing the meeting schedule edit view.
- Legacy-Id: 12133
This commit is contained in:
parent
fa94b93560
commit
de82a244fa
|
@ -632,11 +632,13 @@ class Schedule(models.Model):
|
|||
# return self.url_edit("")
|
||||
|
||||
def owner_email(self):
|
||||
emails = self.owner.email_set.all()
|
||||
if len(emails)>0:
|
||||
return emails[0].address
|
||||
if not hasattr(self, '_cached_owner_email'):
|
||||
email = self.owner.email_set.all().order_by('primary').first()
|
||||
if email:
|
||||
self._cached_owner_email = email.address
|
||||
else:
|
||||
return "noemail"
|
||||
self._cached_owner_email = "noemail"
|
||||
return self._cached_owner_email
|
||||
|
||||
@property
|
||||
def visible_token(self):
|
||||
|
@ -822,11 +824,15 @@ class SchedTimeSessAssignment(models.Model):
|
|||
return ""
|
||||
|
||||
def json_url(self):
|
||||
return "/meeting/%s/agenda/%s/%s/session/%u.json" % (self.schedule.meeting.number,
|
||||
if not hasattr(self, '_cached_json_url'):
|
||||
self._cached_json_url = "/meeting/%s/agenda/%s/%s/session/%u.json" % (
|
||||
self.schedule.meeting.number,
|
||||
self.schedule.owner_email(),
|
||||
self.schedule.name, self.id)
|
||||
self.schedule.name, self.id )
|
||||
return self._cached_json_url
|
||||
|
||||
def json_dict(self, host_scheme):
|
||||
if not hasattr(self, '_cached_json_dict'):
|
||||
ss = dict()
|
||||
ss['assignment_id'] = self.id
|
||||
ss['href'] = urljoin(host_scheme, self.json_url())
|
||||
|
@ -848,7 +854,8 @@ class SchedTimeSessAssignment(models.Model):
|
|||
if self.session:
|
||||
ss['session_id'] = self.session.id
|
||||
ss["pinned"] = self.pinned
|
||||
return ss
|
||||
self._cached_json_dict = ss
|
||||
return self._cached_json_dict
|
||||
|
||||
def slug(self):
|
||||
"""Return sensible id string for session, e.g. suitable for use as HTML anchor."""
|
||||
|
|
Loading…
Reference in a new issue