Skip to content

Commit aa70cff

Browse files
committed
Rewrite draft and RFC tabs in terms of the new schema, porting
write-up and history tabs as well - Legacy-Id: 5214
1 parent 321f646 commit aa70cff

13 files changed

Lines changed: 751 additions & 89 deletions

ietf/doc/utils.py

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import os
1+
import os, re, urllib
22
from django.conf import settings
33

44
# Should this move from idrfc to doc?
@@ -145,6 +145,37 @@ def augment_events_with_revision(doc, events):
145145

146146
e.rev = cur_rev
147147

148+
def add_links_in_new_revision_events(doc, events, diff_revisions):
149+
"""Add direct .txt links and diff links to new_revision events."""
150+
prev = None
151+
152+
diff_urls = dict(((name, revision), url) for name, revision, time, url in diff_revisions)
153+
154+
for e in sorted(events, key=lambda e: (e.time, e.id)):
155+
if not e.type == "new_revision":
156+
continue
157+
158+
if not (e.doc.name, e.rev) in diff_urls:
159+
continue
160+
161+
full_url = diff_url = diff_urls[(e.doc.name, e.rev)]
162+
163+
if doc.type_id in "draft": # work around special diff url for drafts
164+
full_url = "http://tools.ietf.org/id/" + diff_url + ".txt"
165+
166+
# build links
167+
links = r'<a href="%s">\1</a>' % full_url
168+
if prev:
169+
links += ""
170+
171+
if prev != None:
172+
links += ' (<a href="http:%s?url1=%s&url2=%s">diff from previous</a>)' % (settings.RFCDIFF_PREFIX, urllib.quote(diff_url, safe="~"), urllib.quote(prev, safe="~"))
173+
174+
# replace the bold filename part
175+
e.desc = re.sub(r"<b>(.+-[0-9][0-9].txt)</b>", links, e.desc)
176+
177+
prev = diff_url
178+
148179

149180
def get_document_content(key, filename, split=True, markup=True):
150181
f = None
@@ -153,15 +184,12 @@ def get_document_content(key, filename, split=True, markup=True):
153184
raw_content = f.read()
154185
except IOError:
155186
error = "Error; cannot read ("+key+")"
156-
if split:
157-
return (error, "")
158-
else:
159-
return error
187+
return error
160188
finally:
161189
if f:
162190
f.close()
163191
if markup:
164-
return markup_txt.markup(raw_content,split)
192+
return markup_txt.markup(raw_content, split)
165193
else:
166194
return raw_content
167195

ietf/idrfc/markup_txt.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ def markup(content, split=True):
6666
if split:
6767
n = content.find("\n", 5000)
6868
content1 = "<pre>"+content[:n+1]+"</pre>\n"
69-
content2 = "<pre>"+content[n+1:]+"</pre>\n"
70-
return (content1, content2)
69+
return content1
70+
#content2 = "<pre>"+content[n+1:]+"</pre>\n"
71+
#return (content1, content2)
7172
else:
7273
return "<pre>" + content + "</pre>\n"

ietf/idrfc/utils.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from ietf.idtracker.models import InternetDraft, DocumentComment, BallotInfo, IESGLogin
44
from ietf.idrfc.mails import *
5-
from ietf.ietfauth.decorators import has_role
5+
from ietf.ietfauth.utils import has_role, is_authorized_in_doc_stream
66

77
def add_document_comment(request, doc, text, ballot=None):
88
if request:
@@ -177,17 +177,13 @@ def update_telechatREDESIGN(request, doc, by, new_telechat_date, new_returning_i
177177
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
178178
update_telechat = update_telechatREDESIGN
179179

180-
def can_edit_intended_std_level(doc, user):
180+
def can_edit_intended_std_level(user, doc):
181181
return user.is_authenticated() and (
182-
has_role(user, ["Secretariat", "Area Director"]) or
183-
doc.group.role_set.filter(name__in=("chair", "auth", "delegate"), person__user=user)
184-
)
182+
has_role(user, ["Secretariat", "Area Director"]) or is_authorized_in_doc_stream(user, doc))
185183

186-
def can_edit_consensus(doc, user):
184+
def can_edit_consensus(user, doc):
187185
return user.is_authenticated() and (
188-
has_role(user, ["Secretariat", "Area Director"]) or
189-
doc.group.role_set.filter(name__in=("chair", "auth", "delegate"), person__user=user)
190-
)
186+
has_role(user, ["Secretariat", "Area Director"]) or is_authorized_in_doc_stream(user, doc))
191187

192188
def nice_consensus(consensus):
193189
mapping = {

0 commit comments

Comments
 (0)