diff --git a/ietf/doc/proxy.py b/ietf/doc/proxy.py
index 6b2fbe15c..c302bd268 100644
--- a/ietf/doc/proxy.py
+++ b/ietf/doc/proxy.py
@@ -714,7 +714,6 @@ class InternetDraft(Document):
@property
def ipr(self):
- from ietf.ipr.models import IprDraftProxy
return IprDraftProxy.objects.filter(doc_alias__document=self.pk)
class Meta:
@@ -888,7 +887,6 @@ class DraftLikeDocAlias(DocAlias):
@property
def ipr(self):
- from ietf.ipr.models import IprDraftProxy
return IprDraftProxy.objects.filter(doc_alias=self.pk)
class Meta:
@@ -996,3 +994,47 @@ class IDState(State):
proxy = True
+
+
+# proxy stuff for ipr
+from ietf.ipr.models import IprDocAlias
+
+class IprDraftProxy(IprDocAlias):
+ objects = TranslatingManager(dict(document="doc_alias__name"))
+
+ # document = models.ForeignKey(InternetDraft, db_column='id_document_tag', "ipr")
+ # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr")
+ @property
+ def document(self):
+ from ietf.doc.proxy import DraftLikeDocAlias
+ return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id)
+
+ #revision = models.CharField(max_length=2)
+ @property
+ def revision(self):
+ return self.rev
+
+ class Meta:
+ proxy = True
+
+IprDraft = IprDraftProxy
+
+class IprRfcProxy(IprDocAlias):
+ objects = TranslatingManager(dict(document=lambda v: ("doc_alias__name", "rfc%s" % v)))
+
+ # document = models.ForeignKey(InternetDraft, db_column='id_document_tag', "ipr")
+ # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr")
+ @property
+ def document(self):
+ from ietf.doc.proxy import DraftLikeDocAlias
+ return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id)
+
+ #revision = models.CharField(max_length=2)
+ @property
+ def revision(self):
+ return self.rev
+
+ class Meta:
+ proxy = True
+
+IprRfc = IprRfcProxy
diff --git a/ietf/ipr/__init__.py b/ietf/ipr/__init__.py
index a4b306690..8b1378917 100644
--- a/ietf/ipr/__init__.py
+++ b/ietf/ipr/__init__.py
@@ -1,2 +1 @@
-# Copyright The IETF Trust 2007, All Rights Reserved
diff --git a/ietf/ipr/admin.py b/ietf/ipr/admin.py
index ca96d2b09..8cc9c81e3 100644
--- a/ietf/ipr/admin.py
+++ b/ietf/ipr/admin.py
@@ -8,8 +8,20 @@ class IprContactAdmin(admin.ModelAdmin):
admin.site.register(IprContact, IprContactAdmin)
class IprDetailAdmin(admin.ModelAdmin):
- list_display = ['title', 'submitted_date', 'docs', ]
- search_fields = ['title', 'legal_name', ]
+ list_display = ['title', 'submitted_date', 'docs', 'status']
+ search_fields = ['title', 'legal_name']
+
+ def docs(self, ipr):
+ res = []
+ for iprdocalias in IprDocAlias.objects.filter(ipr=ipr).order_by("id").select_related("doc_alias"):
+ if iprdocalias.doc_alias.name.startswith("rfc"):
+ n = iprdocalias.doc_alias.name.upper()
+ elif iprdocalias.rev:
+ n = iprdocalias.doc_alias.name + iprdocalias.rev
+ else:
+ n = iprdocalias.doc_alias.name
+ res.append(n)
+ return u", ".join(res)
admin.site.register(IprDetail, IprDetailAdmin)
class IprLicensingAdmin(admin.ModelAdmin):
diff --git a/ietf/ipr/feeds.py b/ietf/ipr/feeds.py
index b92a98a99..3afac4b13 100644
--- a/ietf/ipr/feeds.py
+++ b/ietf/ipr/feeds.py
@@ -22,7 +22,7 @@ class LatestIprDisclosures(Feed):
# though the database has only date, not time
return datetime.combine(item.submitted_date, time(0,0,0))
def item_author_name(self, item):
- s = item.get_submitter()
+ s = item.get_submitter()
if s:
return s.name
return None
diff --git a/ietf/ipr/models.py b/ietf/ipr/models.py
index 9b84a3a24..30e0c6941 100644
--- a/ietf/ipr/models.py
+++ b/ietf/ipr/models.py
@@ -1,11 +1,9 @@
# Copyright The IETF Trust 2007, All Rights Reserved
from django.db import models
-from django.conf import settings
-from ietf.utils.lazy import reverse_lazy
-# ------------------------------------------------------------------------
-# Models
+from ietf.doc.models import DocAlias
+
LICENSE_CHOICES = (
(1, 'a) No License Required for Implementers.'),
@@ -42,20 +40,14 @@ class IprSelecttype(models.Model):
type_id = models.AutoField(primary_key=True)
is_pending = models.IntegerField(unique=True, db_column="selecttype")
type_display = models.CharField(blank=True, max_length=15)
- def __str__(self):
+ def __unicode__(self):
return self.type_display
- class Meta:
- if not settings.USE_DB_REDESIGN_PROXY_CLASSES:
- db_table = 'ipr_selecttype'
class IprLicensing(models.Model):
licensing_option = models.AutoField(primary_key=True)
value = models.CharField(max_length=255, db_column='licensing_option_value')
- def __str__(self):
+ def __unicode__(self):
return self.value;
- class Meta:
- if not settings.USE_DB_REDESIGN_PROXY_CLASSES:
- db_table = 'ipr_licensing'
class IprDetail(models.Model):
@@ -115,17 +107,8 @@ class IprDetail(models.Model):
submitted_date = models.DateField(blank=True)
update_notified_date = models.DateField(null=True, blank=True)
- def __str__(self):
- return self.title
def __unicode__(self):
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- # the latin-1 decode doesn't seem necessary anymore
- return self.title
- return self.title.decode("latin-1", 'replace')
- def docs(self):
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- return list(IprDraftProxy.objects.filter(ipr=self))
- return list(self.drafts.all()) + list(self.rfcs.all())
+ return self.title
@models.permalink
def get_absolute_url(self):
return ('ietf.ipr.views.show', [str(self.ipr_id)])
@@ -173,8 +156,6 @@ class IprUpdate(models.Model):
processed = models.IntegerField(null=True, blank=True)
-from ietf.doc.models import DocAlias
-
class IprDocAlias(models.Model):
ipr = models.ForeignKey(IprDetail, related_name='documents')
doc_alias = models.ForeignKey(DocAlias)
@@ -189,46 +170,3 @@ class IprDocAlias(models.Model):
verbose_name = "IPR document alias"
verbose_name_plural = "IPR document aliases"
-# proxy stuff
-
-from ietf.utils.proxy import TranslatingManager
-
-class IprDraftProxy(IprDocAlias):
- objects = TranslatingManager(dict(document="doc_alias__name"))
-
- # document = models.ForeignKey(InternetDraft, db_column='id_document_tag', "ipr")
- # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr")
- @property
- def document(self):
- from ietf.doc.proxy import DraftLikeDocAlias
- return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id)
-
- #revision = models.CharField(max_length=2)
- @property
- def revision(self):
- return self.rev
-
- class Meta:
- proxy = True
-
-IprDraft = IprDraftProxy
-
-class IprRfcProxy(IprDocAlias):
- objects = TranslatingManager(dict(document=lambda v: ("doc_alias__name", "rfc%s" % v)))
-
- # document = models.ForeignKey(InternetDraft, db_column='id_document_tag', "ipr")
- # document = models.ForeignKey(Rfc, db_column='rfc_number', related_name="ipr")
- @property
- def document(self):
- from ietf.doc.proxy import DraftLikeDocAlias
- return DraftLikeDocAlias.objects.get(pk=self.doc_alias_id)
-
- #revision = models.CharField(max_length=2)
- @property
- def revision(self):
- return self.rev
-
- class Meta:
- proxy = True
-
-IprRfc = IprRfcProxy
diff --git a/ietf/ipr/new.py b/ietf/ipr/new.py
index 0aae2ed91..a1524898b 100644
--- a/ietf/ipr/new.py
+++ b/ietf/ipr/new.py
@@ -1,19 +1,17 @@
# Copyright The IETF Trust 2007, All Rights Reserved
import re
-import models
-import ietf.utils
-from django import forms
-from datetime import datetime
from django.shortcuts import render_to_response as render, get_object_or_404
from django.template import RequestContext
from django.http import Http404
from django.conf import settings
+from django import forms
+
from ietf.utils import log
from ietf.utils.mail import send_mail
+from ietf.ipr.models import IprDetail, IprDocAlias, IprContact, LICENSE_CHOICES, IprUpdate
from ietf.ipr.view_sections import section_table
-from ietf.idtracker.models import Rfc, InternetDraft
# ----------------------------------------------------------------
# Create base forms from models
@@ -22,21 +20,19 @@ from ietf.idtracker.models import Rfc, InternetDraft
phone_re = re.compile(r'^\+?[0-9 ]*(\([0-9]+\))?[0-9 -]+( ?x ?[0-9]+)?$')
phone_error_message = """Phone numbers may have a leading "+", and otherwise only contain numbers [0-9]; dash, period or space; parentheses, and an optional extension number indicated by 'x'."""
-from django.forms import ModelForm
-
-class BaseIprForm(ModelForm):
- licensing_option = forms.IntegerField(widget=forms.RadioSelect(choices=models.LICENSE_CHOICES), required=False)
+class BaseIprForm(forms.ModelForm):
+ licensing_option = forms.IntegerField(widget=forms.RadioSelect(choices=LICENSE_CHOICES), required=False)
is_pending = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "YES"), (2, "NO"))), required=False)
applies_to_all = forms.IntegerField(widget=forms.RadioSelect(choices=((1, "YES"), (2, "NO"))), required=False)
class Meta:
- model = models.IprDetail
+ model = IprDetail
exclude = ('rfc_document', 'id_document_tag') # 'legacy_url_0','legacy_url_1','legacy_title_1','legacy_url_2','legacy_title_2')
-class BaseContactForm(ModelForm):
+class BaseContactForm(forms.ModelForm):
telephone = forms.RegexField(phone_re, error_message=phone_error_message)
fax = forms.RegexField(phone_re, error_message=phone_error_message, required=False)
class Meta:
- model = models.IprContact
+ model = IprContact
exclude = ('ipr', 'contact_type')
# Some subclassing:
@@ -102,19 +98,11 @@ def new(request, type, update=None, submitter=None):
setattr(self, contact, ContactForm(prefix=contact[:4], initial=contact_initial.get(contact, {}), *args, **kwnoinit))
rfclist_initial = ""
if update:
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- from ietf.ipr.models import IprDocAlias
- rfclist_initial = " ".join(a.doc_alias.name.upper() for a in IprDocAlias.objects.filter(doc_alias__name__startswith="rfc", ipr=update))
- else:
- rfclist_initial = " ".join(["RFC%d" % rfc.document_id for rfc in update.rfcs.all()])
+ rfclist_initial = " ".join(a.doc_alias.name.upper() for a in IprDocAlias.objects.filter(doc_alias__name__startswith="rfc", ipr=update))
self.base_fields["rfclist"] = forms.CharField(required=False, initial=rfclist_initial)
draftlist_initial = ""
if update:
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- from ietf.ipr.models import IprDocAlias
- draftlist_initial = " ".join(a.doc_alias.name + ("-%s" % a.rev if a.rev else "") for a in IprDocAlias.objects.filter(ipr=update).exclude(doc_alias__name__startswith="rfc"))
- else:
- draftlist_initial = " ".join([draft.document.filename + (draft.revision and "-%s" % draft.revision or "") for draft in update.drafts.all()])
+ draftlist_initial = " ".join(a.doc_alias.name + ("-%s" % a.rev if a.rev else "") for a in IprDocAlias.objects.filter(ipr=update).exclude(doc_alias__name__startswith="rfc"))
self.base_fields["draftlist"] = forms.CharField(required=False, initial=draftlist_initial)
if section_list.get("holder_contact", False):
self.base_fields["hold_contact_is_submitter"] = forms.BooleanField(required=False)
@@ -142,11 +130,7 @@ def new(request, type, update=None, submitter=None):
rfclist = rfclist.strip().split()
for rfc in rfclist:
try:
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- from ietf.doc.models import DocAlias
- DocAlias.objects.get(name="rfc%s" % int(rfc))
- else:
- Rfc.objects.get(rfc_number=int(rfc))
+ DocAlias.objects.get(name="rfc%s" % int(rfc))
except:
raise forms.ValidationError("Unknown RFC number: %s - please correct this." % rfc)
rfclist = " ".join(rfclist)
@@ -167,19 +151,13 @@ def new(request, type, update=None, submitter=None):
filename = draft
rev = None
try:
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- from ietf.doc.models import DocAlias
- id = DocAlias.objects.get(name=filename)
- # proxy attribute for code below
- id.revision = id.document.rev
- else:
- id = InternetDraft.objects.get(filename=filename)
- except Exception, e:
+ doc = Document.objects.get(docalias__name=filename)
+ except Exception as e:
log("Exception: %s" % e)
raise forms.ValidationError("Unknown Internet-Draft: %s - please correct this." % filename)
- if rev and id.revision != rev:
+ if rev and doc.rev != rev:
raise forms.ValidationError("Unexpected revision '%s' for draft %s - the current revision is %s. Please check this." % (rev, filename, id.revision))
- drafts.append("%s-%s" % (filename, id.revision))
+ drafts.append("%s-%s" % (filename, doc.rev))
return " ".join(drafts)
return ""
def clean_licensing_option(self):
@@ -205,7 +183,7 @@ def new(request, type, update=None, submitter=None):
data = request.POST.copy()
else:
data = request.GET.copy()
- data["submitted_date"] = datetime.now().strftime("%Y-%m-%d")
+ data["submitted_date"] = datetime.datetime.now().strftime("%Y-%m-%d")
data["third_party"] = section_list["third_party"]
data["generic"] = section_list["generic"]
data["status"] = "0"
@@ -222,7 +200,7 @@ def new(request, type, update=None, submitter=None):
form = IprForm(data)
if form.is_valid():
# Save data :
- # IprDetail, IprUpdate, IprContact+, IprDraft+, IprRfc+, IprNotification
+ # IprDetail, IprUpdate, IprContact+, IprDocAlias+, IprNotification
# Save IprDetail
instance = form.save(commit=False)
@@ -248,7 +226,7 @@ def new(request, type, update=None, submitter=None):
instance.save()
if update:
- updater = models.IprUpdate(ipr=instance, updated=update, status_to_be=1, processed=0)
+ updater = IprUpdate(ipr=instance, updated=update, status_to_be=1, processed=0)
updater.save()
contact_type = {"hold":1, "ietf":2, "subm": 3}
@@ -263,7 +241,7 @@ def new(request, type, update=None, submitter=None):
del cdata["contact_is_submitter"]
except KeyError:
pass
- contact = models.IprContact(**dict([(str(a),b) for a,b in cdata.items()]))
+ contact = IprContact(**dict([(str(a),b) for a,b in cdata.items()]))
contact.save()
# store this contact in the instance for the email
# similar to what views.show() does
@@ -279,34 +257,21 @@ def new(request, type, update=None, submitter=None):
# else:
# log("Invalid contact: %s" % contact)
- # Save IprDraft(s)
+ # Save draft links
for draft in form.cleaned_data["draftlist"].split():
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- name = draft[:-3]
- rev = draft[-2:]
-
- from ietf.doc.models import DocAlias
- models.IprDocAlias.objects.create(
- doc_alias=DocAlias.objects.get(name=name),
- ipr=instance,
- rev=rev)
- else:
- id = InternetDraft.objects.get(filename=draft[:-3])
- iprdraft = models.IprDraft(document=id, ipr=instance, revision=draft[-2:])
- iprdraft.save()
+ name = draft[:-3]
+ rev = draft[-2:]
+
+ IprDocAlias.objects.create(
+ doc_alias=DocAlias.objects.get(name=name),
+ ipr=instance,
+ rev=rev)
- # Save IprRfc(s)
for rfcnum in form.cleaned_data["rfclist"].split():
- if settings.USE_DB_REDESIGN_PROXY_CLASSES:
- from ietf.doc.models import DocAlias
- models.IprDocAlias.objects.create(
- doc_alias=DocAlias.objects.get(name="rfc%s" % int(rfcnum)),
- ipr=instance,
- rev="")
- else:
- rfc = Rfc.objects.get(rfc_number=int(rfcnum))
- iprrfc = models.IprRfc(document=rfc, ipr=instance)
- iprrfc.save()
+ IprDocAlias.objects.create(
+ doc_alias=DocAlias.objects.get(name="rfc%s" % int(rfcnum)),
+ ipr=instance,
+ rev="")
send_mail(request, settings.IPR_EMAIL_TO, ('IPR Submitter App', 'ietf-ipr@ietf.org'), 'New IPR Submission Notification', "ipr/new_update_email.txt", {"ipr": instance, "update": update})
return render("ipr/submitted.html", {"update": update}, context_instance=RequestContext(request))
@@ -328,12 +293,12 @@ def new(request, type, update=None, submitter=None):
form = IprForm()
form.unbound_form = True
- # ietf.utils.log(dir(form.ietf_contact_is_submitter))
+ # log(dir(form.ietf_contact_is_submitter))
return render("ipr/details_edit.html", {"ipr": form, "section_list":section_list, "debug": debug}, context_instance=RequestContext(request))
def update(request, ipr_id=None):
"""Update a specific IPR disclosure"""
- ipr = get_object_or_404(models.IprDetail, ipr_id=ipr_id)
+ ipr = get_object_or_404(IprDetail, ipr_id=ipr_id)
if not ipr.status in [1,3]:
raise Http404
type = "specific"
@@ -386,6 +351,3 @@ def get_ipr_summary(data):
ipr = ", ".join(ipr[:-1]) + ", and " + ipr[-1]
return ipr
-
-# changes done by convert-096.py:changed newforms to forms
-# cleaned_data
diff --git a/ietf/ipr/search.py b/ietf/ipr/search.py
index 9ea73a09c..68fe4315b 100644
--- a/ietf/ipr/search.py
+++ b/ietf/ipr/search.py
@@ -3,28 +3,21 @@
import codecs
import re
import os.path
+
from django.http import HttpResponseRedirect, Http404
from django.shortcuts import render_to_response as render
from django.template import RequestContext
from django.conf import settings
-from ietf.ipr.models import IprDraft, IprDetail
+
+from ietf.ipr.models import IprDocAlias, IprDetail
from ietf.ipr.related import related_docs
from ietf.utils import log, normalize_draftname
from ietf.group.models import Group
from ietf.doc.models import DocAlias
-
-def mark_last_doc(iprs):
- for item in iprs:
- docs = item.docs()
- count = len(docs)
- if count > 1:
- item.last_draft = docs[count-1]
-
def iprs_from_docs(docs):
iprs = []
for doc in docs:
- from ietf.ipr.models import IprDocAlias
disclosures = [ x.ipr for x in IprDocAlias.objects.filter(doc_alias=doc, ipr__status__in=[1,3]) ]
doc.iprs = None
if disclosures:
@@ -57,7 +50,7 @@ def search(request, type="", q="", id=""):
q = value
if re.match(".*id", key):
id = value
- if type and q or id:
+ if (type and q) or id:
#log("Got query: type=%s, q=%s, id=%s" % (type, q, id))
# Search by RFC number or draft-identifier
@@ -82,14 +75,14 @@ def search(request, type="", q="", id=""):
doc = str(first)
docs = related_docs(first)
iprs, docs = iprs_from_docs(docs)
- iprs.sort(key=lambda x:(x.submitted_date,x.ipr_id))
- return render("ipr/search_doc_result.html", {"q": q, "first": first, "iprs": iprs, "docs": docs, "doc": doc },
+ iprs.sort(key=lambda x: (x.submitted_date, x.ipr_id))
+ return render("ipr/search_doc_result.html", {"q": q, "iprs": iprs, "docs": docs, "doc": doc },
context_instance=RequestContext(request) )
elif start.count():
return render("ipr/search_doc_list.html", {"q": q, "docs": start },
context_instance=RequestContext(request) )
else:
- return render("ipr/search_doc_result.html", {"q": q, "first": {}, "iprs": {}, "docs": {}, "doc": doc },
+ return render("ipr/search_doc_result.html", {"q": q, "iprs": {}, "docs": {}, "doc": doc },
context_instance=RequestContext(request) )
# Search by legal name
@@ -98,9 +91,6 @@ def search(request, type="", q="", id=""):
iprs = IprDetail.objects.filter(legal_name__icontains=q, status__in=[1,3]).order_by("-submitted_date", "-ipr_id")
count = iprs.count()
iprs = [ ipr for ipr in iprs if not ipr.updated_by.all() ]
- # Some extra information, to help us render 'and' between the
- # last two documents in a sequence
- mark_last_doc(iprs)
return render("ipr/search_holder_result.html", {"q": q, "iprs": iprs, "count": count },
context_instance=RequestContext(request) )
@@ -123,10 +113,7 @@ def search(request, type="", q="", id=""):
iprs.append(ipr)
count = len(iprs)
iprs = [ ipr for ipr in iprs if not ipr.updated_by.all() ]
- # Some extra information, to help us render 'and' between the
- # last two documents in a sequence
- iprs.sort(key=lambda x: x.ipr_id, reverse=True) # Reverse sort
- mark_last_doc(iprs)
+ iprs.sort(key=lambda x: x.ipr_id, reverse=True)
return render("ipr/search_patent_result.html", {"q": q, "iprs": iprs, "count": count },
context_instance=RequestContext(request) )
@@ -170,9 +157,6 @@ def search(request, type="", q="", id=""):
iprs = IprDetail.objects.filter(title__icontains=q, status__in=[1,3]).order_by("-submitted_date", "-ipr_id")
count = iprs.count()
iprs = [ ipr for ipr in iprs if not ipr.updated_by.all() ]
- # Some extra information, to help us render 'and' between the
- # last two documents in a sequence
- mark_last_doc(iprs)
return render("ipr/search_iprtitle_result.html", {"q": q, "iprs": iprs, "count": count },
context_instance=RequestContext(request) )
diff --git a/ietf/ipr/urls.py b/ietf/ipr/urls.py
index 43ad3749f..554215b0b 100644
--- a/ietf/ipr/urls.py
+++ b/ietf/ipr/urls.py
@@ -7,8 +7,8 @@ from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
url(r'^$', views.showlist, name='ipr_showlist'),
- (r'^about/$', views.default),
- (r'^by-draft/$', views.list_drafts),
+ (r'^about/$', views.about),
+ (r'^by-draft/$', views.iprs_for_drafts_txt),
url(r'^(?P
{% else %}
- {% for doc in ipr.rfcs.all %}
- RFC Numbers: {{ ipr.rfclist }}
+ {% for iprdocalias in ipr.rfcs %}
+ RFC {{ doc.document.rfc_number }}: "{{ doc.document.title }}"
{% endfor %}
{% endif %}
{% if ipr.draftlist %}
RFC {{ iprdocalias.doc_alias.document.rfc_number }}: "{{ iprdocalias.doc_alias.document.title }}"
{% else %}
- {% for doc in ipr.drafts.all %}
- I-D Filenames (draft-...): {{ ipr.draftlist }}
+ {% for iprdocalias in ipr.drafts %}
+ Internet-Draft: "{{ doc.document.title }}"
({{ doc.document.filename }}{% if doc.revision %}-{{ doc.revision }}{% endif %})
{% endfor %}
{% endif %}
{% if ipr.other_designations %}
diff --git a/ietf/templates/ipr/drafts.html b/ietf/templates/ipr/drafts.html
deleted file mode 100644
index 07ca916ee..000000000
--- a/ietf/templates/ipr/drafts.html
+++ /dev/null
@@ -1,3 +0,0 @@
-# Machine-readable list of ipr disclosures by draft name
-{% for doc in docs %}{{doc.name}}{% for num in doc.iprs %} {{ num }}{% endfor %}
-{% endfor %}
\ No newline at end of file
diff --git a/ietf/templates/ipr/list.html b/ietf/templates/ipr/list.html
index 7b9ebc6d2..a96f2bfa7 100644
--- a/ietf/templates/ipr/list.html
+++ b/ietf/templates/ipr/list.html
@@ -12,7 +12,7 @@ The IETF takes no position regarding the validity or scope of any
intellectual property rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in any IETF documents or the extent to
which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights.Internet-Draft: "{{ iprdocalias.doc_alias.document.title }}"
({{ iprdocalias.doc_alias.name }}{% if iprdocalias.rev %}-{{ iprdocalias.rev }}{% endif %})
Click here to submit an IPR disclosure
+Click here to submit an IPR disclosure
Search the IPR Disclosures diff --git a/ietf/templates/ipr/list_item.html b/ietf/templates/ipr/list_item.html index 65d82183c..4f916ff68 100644 --- a/ietf/templates/ipr/list_item.html +++ b/ietf/templates/ipr/list_item.html @@ -3,17 +3,17 @@