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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.holder_legal_name }}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 %} + + {% endif %} -
Holder contact email
-
{{ ipr.holder_contact_email }}
+ + {% if prev %}{% endif %} + + + -
Holder contact info
-
{{ ipr.holder_contact_info|linebreaks }}
- - {% endif %} + + {% if prev %}{% endif %} + + + + + + {% if prev %}{% endif %} + + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.holder_contact_name }}Holder contact name{{ ipr.holder_contact_name }}
{{ prev.holder_contact_email }}Holder contact email{{ ipr.holder_contact_email }}
{{ prev.holder_contact_info|linebreaks }}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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + -
Email
-
{{ ipr.ietfer_contact_email }}
+ + {% if prev %}{% endif %} + + + -
Other info
-
{{ ipr.ietfer_contact_info|linebreaks }}
- + + {% if prev %}{% endif %} + + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.ietfer_name }}Name{{ ipr.ietfer_name }}
{{ prev.ietfer_contact_email }}Email{{ ipr.ietfer_contact_email }}
{{ prev.ietfer_contact_info|linebreaks }}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 %} + + {% endif %} + - {% if iprdocrel.revisions %} -
Revisions: {{ iprdocrel.revisions }}
- {% endif %} + {% if prev %} + + {% endif %} + + + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
+ {% 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 %} +
+ {% 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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.patent_info|linebreaks }}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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.has_patent_pending|yesno:"Yes,No" }}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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{% if prev.licensing.slug == "provided-later" %}{{ prev.licensing.desc|slice:"2:"|slice:":117" }}){% else %}{{ prev.licensing.desc|slice:"2:" }}{% endif %}Licensing{% if ipr.licensing.slug == "provided-later" %}{{ ipr.licensing.desc|slice:"2:"|slice:":117" }}){% else %}{{ ipr.licensing.desc|slice:"2:" }}{% endif %}
{{ prev.licensing_comments|default:"(No information submitted)"|linebreaks }}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 %} + + {% endif %} + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.statement|linebreaks }}Statement{{ ipr.statement|linebreaks }}
{% endif %}

{% cycle section %}. Contact Information of Submitter of this Form

-
-
Submitter name
-
{{ ipr.submitter_name }}
+ + {% if prev %} + + {% endif %} + + {% if prev %}{% endif %} + + + -
Submitter email
-
{{ ipr.submitter_email }}
- + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.submitter_name }}Submitter name{{ ipr.submitter_name }}
{{ prev.submitter_email }}Submitter email{{ ipr.submitter_email }}
{% if ipr.notes %}

{% cycle section %}. Other Notes

-
-
Additional notes
-
{{ ipr.notes|linebreaks }}
-
+ + {% if prev %} + + {% endif %} + + {% if prev %}{% endif %} + + + +
Previous (#{{prev.id}})This (#{{ipr.id}})
{{ prev.notes|linebreaks }}Additional notes{{ ipr.notes|linebreaks }}
+ {% endif %}

Only those sections of the relevant entry form where the submitter provided information are displayed.

- {% endblock content %}