Skip to content

Commit b82697e

Browse files
committed
Merged in changes from Pasi.
- Legacy-Id: 1550
1 parent 49bd3da commit b82697e

6 files changed

Lines changed: 65 additions & 36 deletions

File tree

changelog

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
ietfdb (2.28)
2+
3+
* Show full name in document comment log. From Pasi.
4+
5+
* Optimize meeting agenda page to use less SQL queries. From Pasi.
6+
7+
* Include version in iesg/agenda/documents.txt. From Pasi.
8+
9+
-- Henrik Levkowetz <henrik@levkowetz.com> 25 Jul 2009 14:38:41 +0200
10+
111
ietfdb (2.27)
212

313
* Add support for an iPhone specific agenda format. Going to the html

ietf/idrfc/views_doc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def document_comments(request, name):
148148
info['by'] = m.group(2)
149149
else:
150150
info['text'] = comment.comment_text
151-
info['by'] = comment.get_username()
151+
info['by'] = comment.get_fullname()
152152
info['textSnippet'] = truncatewords_html(format_textarea(fill(info['text'], 80)), 25)
153153
info['snipped'] = info['textSnippet'][-3:] == "..."
154154
info['commentNumber'] = commentNumber

ietf/meeting/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ def get_plenary_agenda(meeting_num, id):
5858
def agenda_info(num=None):
5959
if not num:
6060
num = list(Meeting.objects.all())[-1].meeting_num
61-
timeslots = MeetingTime.objects.filter(meeting=num).order_by("day_id", "time_desc")
61+
timeslots = MeetingTime.objects.select_related().filter(meeting=num).order_by("day_id", "time_desc")
6262
update = get_object_or_404(Switches,id=1)
6363
meeting=get_object_or_404(Meeting, meeting_num=num)
6464
venue = get_object_or_404(MeetingVenue, meeting_num=num)
65-
ads = list(IESGHistory.objects.filter(meeting=num))
65+
ads = list(IESGHistory.objects.select_related().filter(meeting=num))
6666
if not ads:
67-
ads = list(IESGHistory.objects.filter(meeting=str(int(num)-1)))
67+
ads = list(IESGHistory.objects.select_related().filter(meeting=str(int(num)-1)))
6868
ads.sort(key=(lambda item: item.area.area_acronym.acronym))
6969
plenaryw_agenda = get_plenary_agenda(num, -1)
7070
plenaryt_agenda = get_plenary_agenda(num, -2)
@@ -92,4 +92,4 @@ def text_agenda(request, num=None):
9292
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
9393
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
9494
RequestContext(request)), mimetype="text/plain")
95-
95+

ietf/proceedings/models.py

Lines changed: 47 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,40 @@
1313
# an interim attribute first)
1414
class ResolveAcronym(object):
1515
def acronym(self):
16+
if hasattr(self, '_acronym_acronym'):
17+
return self._acronym_acronym
1618
try:
1719
interim = self.interim
1820
except AttributeError:
1921
interim = False
2022
if self.irtf:
21-
acronym = IRTF.objects.get(pk=self.group_acronym_id).acronym
23+
o = IRTF.objects.get(pk=self.group_acronym_id)
2224
else:
23-
acronym = Acronym.objects.get(pk=self.group_acronym_id).acronym
25+
o = Acronym.objects.get(pk=self.group_acronym_id)
26+
self._acronym_acronym = o.acronym
27+
self._acronym_name = o.name
28+
acronym = self._acronym_acronym
2429
if interim:
2530
return "i" + acronym
26-
return acronym
31+
else:
32+
return acronym
2733
def acronym_lower(self):
2834
return self.acronym().lower()
2935
def acronym_name(self):
36+
if not hasattr(self, '_acronym_name'):
37+
self.acronym()
3038
try:
3139
interim = self.interim
3240
except AttributeError:
3341
interim = False
34-
if self.irtf:
35-
acronym_name = IRTF.objects.get(pk=self.group_acronym_id).name
36-
else:
37-
acronym_name = Acronym.objects.get(pk=self.group_acronym_id).name
42+
acronym_name = self._acronym_name
3843
if interim:
3944
return acronym_name + " (interim)"
40-
return acronym_name
45+
else:
46+
return acronym_name
4147
def area(self):
48+
if hasattr(self, '_area'):
49+
return self._area
4250
if self.irtf:
4351
area = "irtf"
4452
elif self.group_acronym_id < 0 and self.group_acronym_id > -3:
@@ -47,9 +55,10 @@ def area(self):
4755
area = ""
4856
else:
4957
try:
50-
area = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.acronym
58+
area = AreaGroup.objects.select_related().get(group=self.group_acronym_id).area.area_acronym.acronym
5159
except AreaGroup.DoesNotExist:
5260
area = ""
61+
self._area = area
5362
return area
5463
def area_name(self):
5564
if self.irtf:
@@ -67,28 +76,27 @@ def area_name(self):
6776
def isWG(self):
6877
if self.irtf:
6978
return False
70-
else:
79+
if not hasattr(self,'_ietfwg'):
7180
try:
72-
g_type_id = IETFWG.objects.get(pk=self.group_acronym_id).group_type_id == 1
73-
if g_type_id == 1:
74-
return True
75-
else:
76-
return False
81+
self._ietfwg = IETFWG.objects.get(pk=self.group_acronym_id)
7782
except IETFWG.DoesNotExist:
78-
return False
83+
self._ietfwg = None
84+
if self._ietfwg and self._ietfwg.group_type_id == 1:
85+
return True
86+
else:
87+
return False
7988
def group_type_str(self):
8089
if self.irtf:
81-
return ""
90+
return ""
8291
else:
83-
try:
84-
g_type_id = IETFWG.objects.get(pk=self.group_acronym_id).group_type_id
85-
if g_type_id == 1:
86-
return "WG"
87-
elif g_type_id == 3:
88-
return "BOF"
89-
else:
90-
return ""
91-
except IETFWG.DoesNotExist:
92+
self.isWG()
93+
if not self._ietfwg:
94+
return ""
95+
elif self._ietfwg.group_type_id == 1:
96+
return "WG"
97+
elif self._ietfwg.group_type_id == 3:
98+
return "BOF"
99+
else:
92100
return ""
93101

94102
TIME_ZONE_CHOICES = (
@@ -234,7 +242,7 @@ class MeetingTime(models.Model):
234242
time_desc = models.CharField(maxlength=100)
235243
meeting = models.ForeignKey(Meeting, db_column='meeting_num', unique=True)
236244
day_id = models.IntegerField()
237-
session_name = models.ForeignKey(SessionName)
245+
session_name = models.ForeignKey(SessionName,null=True)
238246
def __str__(self):
239247
return "[%d] |%s| %s" % (self.meeting_id, (self.meeting.start_date + datetime.timedelta(self.day_id)).strftime('%A'), self.time_desc)
240248
def sessions(self):
@@ -266,8 +274,11 @@ def sessions_by_area(self):
266274
def meeting_date(self):
267275
return self.meeting.get_meeting_date(self.day_id)
268276
def registration(self):
277+
if hasattr(self, '_reg_info'):
278+
return self._reg_info
269279
reg = NonSession.objects.get(meeting=self.meeting, day_id=self.day_id, non_session_ref=1)
270280
reg.name = reg.non_session_ref.name
281+
self._reg_info = reg
271282
return reg
272283
def reg_info(self):
273284
reg_info = self.registration()
@@ -341,6 +352,8 @@ class WgMeetingSession(models.Model, ResolveAcronym):
341352
def __str__(self):
342353
return "%s at %s" % (self.acronym(), self.meeting)
343354
def agenda_file(self,interimvar=0):
355+
if hasattr(self, '_agenda_file'):
356+
return self._agenda_file
344357
irtfvar = 0
345358
if self.irtf:
346359
irtfvar = self.group_acronym_id
@@ -352,10 +365,15 @@ def agenda_file(self,interimvar=0):
352365
interimvar = 0
353366
try:
354367
filename = WgAgenda.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).filename
355-
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
368+
if self.meeting_id in WgMeetingSession._dirs:
369+
dir = WgMeetingSession._dirs[self.meeting_id]
370+
else:
371+
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
372+
WgMeetingSession._dirs[self.meeting_id]=dir
356373
retvar = "%s/agenda/%s" % (dir,filename)
357374
except WgAgenda.DoesNotExist:
358375
retvar = ""
376+
self._agenda_file = retvar
359377
return retvar
360378
def minute_file(self,interimvar=0):
361379
irtfvar = 0
@@ -402,6 +420,7 @@ class Meta:
402420
db_table = 'wg_meeting_sessions'
403421
class Admin:
404422
pass
423+
_dirs = {}
405424

406425
class WgAgenda(models.Model, ResolveAcronym):
407426
meeting = models.ForeignKey(Meeting, db_column='meeting_num')

ietf/templates/idrfc/search_result_row.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
{% else %}<a href="/doc/{{doc.id.draft_name}}/">{{doc.id.draft_name_and_revision}}</a>{% endif %}</td>
4242
<td class="title">{{ doc.title|escape }}</td>
4343
<td class="date">{{ doc.publication_date }}
44-
{% if doc.publication_date|timesince_days|less_than:"14" %}<br/><span style="padding:0 2px;background:yellow;font-size:85%;">new</span>{%endif%}
44+
{% if doc.publication_date|timesince_days|less_than:"14" %}<br/><span style="padding:0 2px;background:yellow;font-size:85%;">{% if not doc.rfc%}<a href="http://tools.ietf.org/rfcdiff?url2={{doc.id.draft_name_and_revision}}">new</a>{%else%}new{%endif%}</span>{%endif%}
4545
{% if doc.id and doc.id.expected_expiration_date and doc.id.expected_expiration_date|timesince_days|greater_than:"-14" %}<br/><span style="padding:0 2px;font-size:85%;background:yellow;">expires soon</span>{%endif%}
4646
</td>
4747

ietf/templates/iesg/agenda_documents.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3030
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3131
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3232
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33-
{% endcomment %}# Fields: telechat date, filename (draft-foo-bar or rfc1234), intended status, rfc editor submission flag (0=no, 1=yes), area acronym, AD name{% for doc in docs %}
34-
{{ doc.telechat_date }} {{ doc.document.filename }} {{ doc.document.intended_status }} {{doc.via_rfc_editor}} {{doc.area_acronym|lower}} {{doc.token_name }}{% endfor %}
33+
{% endcomment %}# Fields: telechat date, filename (draft-foo-bar or rfc1234), intended status, rfc editor submission flag (0=no, 1=yes), area acronym, AD name, version{% for doc in docs %}
34+
{{ doc.telechat_date }} {{ doc.document.filename }} {{ doc.document.intended_status }} {{doc.via_rfc_editor}} {{doc.area_acronym|lower}} {{doc.token_name }} {{doc.document.revision}}{% endfor %}

0 commit comments

Comments
 (0)