Merged in [14062] from housley@vigilsec.com:
Show which RFC was in force when the IPR disclosure was submitted. Fixes #2309.
- Legacy-Id: 14070
Note: SVN reference [14062] has been migrated to Git commit 6d616855bc
This commit is contained in:
commit
f8581f7fc7
|
@ -102,7 +102,12 @@ class IprDisclosureBase(models.Model):
|
|||
for disc in unseen:
|
||||
disc_set.update(disc.recursively_updates(disc_set))
|
||||
return disc_set
|
||||
|
||||
|
||||
def is_thirdparty(self):
|
||||
"""Returns True if this disclosure is a Third Party disclosure"""
|
||||
ipr = self.get_child() if self.__class__ is IprDisclosureBase else self
|
||||
return ipr.__class__ is ThirdPartyIprDisclosure
|
||||
|
||||
|
||||
class HolderIprDisclosure(IprDisclosureBase):
|
||||
ietfer_name = models.CharField(max_length=255, blank=True) # "Whose Personal Belief Triggered..."
|
||||
|
|
|
@ -132,6 +132,44 @@ def set_disclosure_title(disclosure):
|
|||
title = title[:252] + "..."
|
||||
disclosure.title = title
|
||||
|
||||
def ipr_rfc_number(disclosureDate, thirdPartyDisclosureFlag):
|
||||
"""Return the RFC as a string that was in force when the disclosure was made."""
|
||||
|
||||
# This works because the oldest IPR disclosure in the database was
|
||||
# made on 1993-07-23, which is more than a year after RFC 1310.
|
||||
|
||||
# RFC publication date comes from the RFC Editor announcement
|
||||
# TODO: These times are tzinfo=pytz.utc, but disclosure times are offset-naive
|
||||
ipr_rfc_pub_datetime = {
|
||||
1310 : datetime.datetime(1992, 3, 13, 0, 0),
|
||||
1802 : datetime.datetime(1994, 3, 23, 0, 0),
|
||||
2026 : datetime.datetime(1996, 10, 29, 0, 0),
|
||||
3668 : datetime.datetime(2004, 2, 18, 0, 0),
|
||||
3979 : datetime.datetime(2005, 3, 2, 2, 23),
|
||||
4879 : datetime.datetime(2007, 4, 10, 18, 21),
|
||||
8179 : datetime.datetime(2017, 5, 31, 23, 1),
|
||||
}
|
||||
|
||||
if disclosureDate < ipr_rfc_pub_datetime[1310]:
|
||||
rfcnum = "Error!"
|
||||
elif disclosureDate < ipr_rfc_pub_datetime[1802]:
|
||||
rfcnum = "RFC 1310"
|
||||
elif disclosureDate < ipr_rfc_pub_datetime[2026]:
|
||||
rfcnum = "RFC 1802"
|
||||
elif disclosureDate < ipr_rfc_pub_datetime[3668]:
|
||||
rfcnum = "RFC 2026"
|
||||
elif disclosureDate < ipr_rfc_pub_datetime[3979]:
|
||||
rfcnum = "RFC 3668"
|
||||
elif disclosureDate < ipr_rfc_pub_datetime[8179]:
|
||||
rfcnum = "RFC 3979"
|
||||
else:
|
||||
rfcnum = "RFC 8179"
|
||||
|
||||
if (thirdPartyDisclosureFlag) and (rfcnum == "RFC 3979") and \
|
||||
(disclosureDate > ipr_rfc_pub_datetime[4879]):
|
||||
rfcnum = rfcnum + " as updated by RFC 4879"
|
||||
|
||||
return rfcnum
|
||||
# ----------------------------------------------------------------
|
||||
# Ajax Views
|
||||
# ----------------------------------------------------------------
|
||||
|
@ -719,6 +757,7 @@ def show(request, id):
|
|||
|
||||
return render(request, "ipr/details_view.html", {
|
||||
'ipr': ipr,
|
||||
'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(),
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{# Copyright The IETF Trust 2015, 2017. All Rights Reserved. #}
|
||||
{% load origin %}
|
||||
|
||||
{% load ietf_filters ipr_filters %}
|
||||
|
@ -40,9 +40,13 @@
|
|||
</div>
|
||||
|
||||
{% if not ipr.compliant %}
|
||||
<p class="alert alert-danger">This IPR disclosure does not comply with the formal requirements of Section 5,
|
||||
"IPR Disclosures," of <a href="https://www.ietf.org/rfc/rfc8179.txt">RFC 8179</a>, "Intellectual Property Rights in IETF Technology."
|
||||
</p>
|
||||
{% if in_force_ipr_rfc == 'RFC 8179' %}
|
||||
<p class="alert alert-danger">This IPR disclosure does not comply with the formal requirements of Section 5,
|
||||
"IPR Disclosures," of <a href="https://www.rfc-editor.org/rfc/rfc8179.txt">RFC 8179</a>, "Intellectual Property Rights in IETF Technology."</p>
|
||||
{% else %}
|
||||
<p class="alert alert-danger">This IPR disclosure does not comply with the formal requirements of Section 6,
|
||||
"IPR Disclosures," of <a href="https://www.rfc-editor.org/rfc/rfc3979.txt">RFC 3979</a>, "Intellectual Property Rights in IETF Technology."</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if ipr.has_legacy_event %}
|
||||
|
@ -51,7 +55,7 @@
|
|||
|
||||
<div>
|
||||
<strong>Submitted:</strong>
|
||||
{{ ipr.time|date:"F j, Y" }}
|
||||
{{ ipr.time|date:"F j, Y" }} under the rules in {{ in_force_ipr_rfc }}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
@ -171,7 +175,7 @@
|
|||
{% endif %}
|
||||
|
||||
{% if ipr.patent_info or ipr.has_patent_pending %}
|
||||
<h2>{% cycle section %}. Disclosure of Patent Information <small>i.e., patents or patent applications required to be disclosed by Section 6 of RFC 8179</small></h2>
|
||||
<h2>{% cycle section %}. Disclosure of Patent Information <small>i.e., patents or patent applications required to be disclosed by {{ in_force_ipr_rfc }}</small></h2>
|
||||
|
||||
<p>A. For granted patents or published pending patent applications, please provide the following information:</p>
|
||||
|
||||
|
|
Loading…
Reference in a new issue