From 46472401ad490daf6f35f4cb24203c15aaaa77f9 Mon Sep 17 00:00:00 2001
From: Henrik Levkowetz
Date: Sat, 27 Jan 2018 21:34:52 +0000
Subject: [PATCH] Changed the IPR disclosure page for IPR disclosure updates to
show both the previous and current disclosure details side-by-side. Fixes
issue #2414. - Legacy-Id: 14581
---
ietf/ipr/views.py | 7 +-
ietf/static/ietf/css/ietf.css | 17 ++
ietf/templates/ipr/details_view.html | 283 +++++++++++++++++++--------
3 files changed, 221 insertions(+), 86 deletions(-)
diff --git a/ietf/ipr/views.py b/ietf/ipr/views.py
index 526536d80..5fb61770a 100644
--- a/ietf/ipr/views.py
+++ b/ietf/ipr/views.py
@@ -769,12 +769,17 @@ def show(request, id):
elif ipr.state.slug != 'posted':
raise Http404
+ updates_iprs = ipr.relatedipr_source_set.all().order_by('source__time')
+ prev_rel = updates_iprs.last()
+ prev = prev_rel.target.get_child() if prev_rel else None
+
return render(request, "ipr/details_view.html", {
'ipr': ipr,
+ 'prev': prev,
'in_force_ipr_rfc': ipr_rfc_number(ipr.time, ipr.is_thirdparty),
'tabs': get_details_tabs(ipr, 'Disclosure'),
'choices_abc': [ i.desc for i in IprLicenseTypeName.objects.filter(slug__in=['no-license', 'royalty-free', 'reasonable', ]) ],
- 'updates_iprs': ipr.relatedipr_source_set.all().order_by('source__time'),
+ 'updates_iprs': updates_iprs,
'updated_by_iprs': ipr.relatedipr_target_set.filter(source__state="posted").order_by('target__time')
})
diff --git a/ietf/static/ietf/css/ietf.css b/ietf/static/ietf/css/ietf.css
index 1d9903eb9..b0e9ba386 100644
--- a/ietf/static/ietf/css/ietf.css
+++ b/ietf/static/ietf/css/ietf.css
@@ -753,6 +753,23 @@ blockquote {
}
+.table-condensed th.ipr-label {
+ overflow: hidden;
+ clear: left;
+ text-align: right;
+ text-overflow: ellipsis;
+ padding-right: 1em;
+ vertical-align: top;
+}
+.table-condensed .ipr-prev {
+ color: #777;
+ background-color: #f0f0f0;
+ vertical-align: top;
+}
+.table-condensed .ipr-this {
+ vertical-align: top;
+}
+
.rfcmarkup div {
margin-top: 1em;
}
diff --git a/ietf/templates/ipr/details_view.html b/ietf/templates/ipr/details_view.html
index a41ec7526..89d8d1cfa 100644
--- a/ietf/templates/ipr/details_view.html
+++ b/ietf/templates/ipr/details_view.html
@@ -73,20 +73,27 @@
of the original IPR disclosure.
{% endif %}
- {% if updated_by_iprs %}
- Updated by
-
- {% for item in updated_by_iprs %}
-
- This IPR disclosure has been updated by IPR disclosure ID #{{ item.source.id }},
- "{{ item.source.title }}".
-
- {% endfor %}
- {% endif %}
-
- {% if updates_iprs %}
+ {% if updates_iprs or updated_by_iprs%}
Updates
+ {% if updated_by_iprs %}
+
+ - Updated by
+ -
+ {% for item in updated_by_iprs %}
+
+ IPR Disclosure ID #{{ item.source.id }},
+ {% if item.source.state.slug == "removed" %}
+ "{{ item.source.title }}" (which was removed at the request of the submitter)
+ {% else %}
+ "
{{ item.source.title }}"
+ {% endif %}
+
+ {% endfor %}
+
+ {% endif %}
+
+ {% if updates_iprs %}
- Updates
-
@@ -101,6 +108,7 @@
{% endfor %}
+ {% endif %}
{% endif %}
{% if user|has_role:"Secretariat" and ipr.update_notified_date %}
@@ -113,65 +121,128 @@
{% if ipr|to_class_name == "ThirdPartyIprDisclosure" %}Possible{% endif %}
Patent Holder/Applicant ("Patent Holder")
-
- - Holder legal name
- - {{ ipr.holder_legal_name }}
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.holder_legal_name }} | {% endif %}
+ Holder legal name |
+ {{ ipr.holder_legal_name }} |
+
+
{% if ipr.holder_contact_name or ipr.holder_contact_info %}
- {% cycle section %}. Patent Holder's Contact for License Application
+ {% cycle section %}. Patent Holder's Contact for Licence Application
-
- - Holder contact name
- - {{ ipr.holder_contact_name }}
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
- - Holder contact email
- - {{ ipr.holder_contact_email }}
+
+ {% if prev %}{{ prev.holder_contact_name }} | {% endif %}
+ Holder contact name |
+ {{ ipr.holder_contact_name }} |
+
- - Holder contact info
- - {{ ipr.holder_contact_info|linebreaks }}
-
- {% endif %}
+
+ {% if prev %}{{ prev.holder_contact_email }} | {% endif %}
+ Holder contact email |
+ {{ ipr.holder_contact_email }} |
+
+
+
+ {% if prev %}{{ prev.holder_contact_info|linebreaks }} | {% endif %}
+ Holder contact info |
+ {{ ipr.holder_contact_info|linebreaks }} |
+
+
+
+ {% endif %}
{% if ipr.ietfer_name or ipr.ietfer_contact_email or ipr.ietfer_contact_info %}
{% cycle section %}. Contact Information for the IETF Participant Whose Personal Belief Triggered this Disclosure
-
- - Name
- - {{ ipr.ietfer_name }}
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.ietfer_name }} | {% endif %}
+ Name |
+ {{ ipr.ietfer_name }} |
+
- - Email
- - {{ ipr.ietfer_contact_email }}
+
+ {% if prev %}{{ prev.ietfer_contact_email }} | {% endif %}
+ Email |
+ {{ ipr.ietfer_contact_email }} |
+
- - Other info
- - {{ ipr.ietfer_contact_info|linebreaks }}
-
+
+ {% if prev %}{{ prev.ietfer_contact_info|linebreaks }} | {% endif %}
+ Other info |
+ {{ ipr.ietfer_contact_info|linebreaks }} |
+
+
+
{% endif %}
{% if ipr.iprdocrel_set.all or ipr.other_designations %}
{% cycle section %}. IETF Document or Other Contribution to Which this IPR Disclosure Relates
-
- {% for iprdocrel in ipr.iprdocrel_set.all %}
- - {{ iprdocrel.doc_type }}
- -
-
{{ iprdocrel.formatted_name }} ("{{ iprdocrel.document.document.title }}")
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
- {% if iprdocrel.revisions %}
- Revisions: {{ iprdocrel.revisions }}
- {% endif %}
+ {% if prev %}
+
+ {% for iprdocrel in prev.iprdocrel_set.all %}
+ {{ iprdocrel.doc_type }}:
+ {{ iprdocrel.formatted_name }} ("{{ iprdocrel.document.document.title }}")
- {% if iprdocrel.sections %}
- Sections: {{ iprdocrel.sections }}
- {% endif %}
-
- {% endfor %}
+ {% if iprdocrel.revisions %}
+ Revisions: {{ iprdocrel.revisions }}
+ {% endif %}
- {% if ipr.other_designations %}
- - Designations for Other Contributions
- - {{ ipr.other_designations }}
- {% endif %}
-
+ {% if iprdocrel.sections %}
+ Sections: {{ iprdocrel.sections }}
+ {% endif %}
+ {% endfor %}
+
+ {% if prev.other_designations %}
+ Designations for Other Contributions
+ {{ prev.other_designations }}
+ {% endif %}
+ |
+ {% endif %}
+
+ |
+
+
+ {% for iprdocrel in ipr.iprdocrel_set.all %}
+ {{ iprdocrel.doc_type }}:
+ {{ iprdocrel.formatted_name }} ("{{ iprdocrel.document.document.title }}")
+
+ {% if iprdocrel.revisions %}
+ Revisions: {{ iprdocrel.revisions }}
+ {% endif %}
+
+ {% if iprdocrel.sections %}
+ Sections: {{ iprdocrel.sections }}
+ {% endif %}
+ {% endfor %}
+
+ {% if ipr.other_designations %}
+ - Designations for Other Contributions
+ - {{ ipr.other_designations }}
+ {% endif %}
+ |
+
+
{% endif %}
{% if ipr.patent_info or ipr.has_patent_pending %}
@@ -179,17 +250,29 @@
A. For granted patents or published pending patent applications, please provide the following information:
-
- - Patent, Serial, Publication, Registration, or Application/File number(s)
- - {{ ipr.patent_info|linebreaks }}
-
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.patent_info|linebreaks }} | {% endif %}
+ Patent, Serial, Publication, Registration, or Application/File number(s) |
+ {{ ipr.patent_info|linebreaks }} |
+
+
+
B. Does this disclosure relate to an unpublished pending patent application?:
-
- - Has patent pending
- - {{ ipr.has_patent_pending|yesno:"Yes,No" }}
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.has_patent_pending|yesno:"Yes,No" }} | {% endif %}
+ Has patent pending |
+ {{ ipr.has_patent_pending|yesno:"Yes,No" }} |
+
+
{% endif %}
{% if ipr.licensing %}
@@ -204,23 +287,32 @@
specification, is as follows(select one licensing declaration option only):
- {% if ipr.licensing.slug == "provided-later" %}
+ {% if prev.licensing.slug == "provided-later" or ipr.licensing.slug == "provided-later" %}
- Possible licencing choices a), b), and c) when Licencing Declaration to be Provided Later:
+ Possible licensing choices a), b), and c) when Licensing Declaration to be Provided Later:
{% for desc in choices_abc %}
- {{ desc}}
{% endfor %}
-
+
{% endif %}
-
- - Licensing
- - {% if ipr.licensing.slug == "provided-later" %}{{ ipr.licensing.desc|slice:"2:"|slice:":117" }}){% else %}{{ ipr.licensing.desc|slice:"2:" }}{% endif %}
- - Licensing information, comments, notes, or URL for further information
- - {{ ipr.licensing_comments|default:"(No information submitted)"|linebreaks }}
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{% if prev.licensing.slug == "provided-later" %}{{ prev.licensing.desc|slice:"2:"|slice:":117" }}){% else %}{{ prev.licensing.desc|slice:"2:" }}{% endif %} | {% endif %}
+ Licensing |
+ {% if ipr.licensing.slug == "provided-later" %}{{ ipr.licensing.desc|slice:"2:"|slice:":117" }}){% else %}{{ ipr.licensing.desc|slice:"2:" }}{% endif %} |
+
+
+ {% if prev %}{{ prev.licensing_comments|default:"(No information submitted)"|linebreaks }} | {% endif %}
+ Licensing information, comments, notes, or URL for further information |
+ {{ ipr.licensing_comments|default:"(No information submitted)"|linebreaks }} |
+
+
Note: The individual submitting this template represents and warrants
that he or she is authorized by the Patent Holder to agree to the
@@ -229,33 +321,54 @@
{% elif ipr.statement %}
{% cycle section %}. Statement
-
- - Statement
- - {{ ipr.statement|linebreaks }}
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.statement|linebreaks }} | {% endif %}
+ Statement |
+ {{ ipr.statement|linebreaks }} |
+
+
{% endif %}
{% cycle section %}. Contact Information of Submitter of this Form
-
- - Submitter name
- - {{ ipr.submitter_name }}
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.submitter_name }} | {% endif %}
+ Submitter name |
+ {{ ipr.submitter_name }} |
+
- - Submitter email
- - {{ ipr.submitter_email }}
-
+
+ {% if prev %}{{ prev.submitter_email }} | {% endif %}
+ Submitter email |
+ {{ ipr.submitter_email }} |
+
+
{% if ipr.notes %}
{% cycle section %}. Other Notes
-
- - Additional notes
- - {{ ipr.notes|linebreaks }}
-
+
+ {% if prev %}
+ Previous (#{{prev.id}}) | | This (#{{ipr.id}}) |
+ {% endif %}
+
+ {% if prev %}{{ prev.notes|linebreaks }} | {% endif %}
+ Additional notes |
+ {{ ipr.notes|linebreaks }} |
+
+
+
{% endif %}
Only those sections of the relevant entry form where the submitter provided information are displayed.
-
{% endblock content %}