* More logic moved to ipr/views.py.
* Added InternationalPhoneNumberField to ipr/models.py Probably should be moved to a common model class file. - Legacy-Id: 106
This commit is contained in:
parent
e8980df65f
commit
26a97835a5
|
@ -1,7 +1,38 @@
|
|||
import re
|
||||
from django.db import models
|
||||
from django.template.defaultfilters import capfirst
|
||||
from django import oldforms
|
||||
from django import newforms as forms
|
||||
from ietf.idtracker.views import InternetDraft
|
||||
from ietf.idtracker.models import Rfc
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# New field classes
|
||||
|
||||
phone_re = re.compile(r'^\+?[0-9 ]*(\([0-9]+\))?[0-9 -]+$')
|
||||
class InternationalPhoneNumberField(models.PhoneNumberField):
|
||||
error_message = 'Phone numbers may have a leading "+", and otherwise only contain numbers [0-9], dash, space, and parentheses. '
|
||||
def validate(self, field_data, all_data):
|
||||
if not phone_re.search(field_data):
|
||||
raise ValidationError, self.error_message + ' "%s" is invalid.' % field_data
|
||||
|
||||
def clean(self, value):
|
||||
if value in EMPTY_VALUES:
|
||||
return u''
|
||||
self.validate(value, {})
|
||||
return smart_unicode(value)
|
||||
|
||||
def formfield(self, **kwargs):
|
||||
defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name),
|
||||
'help_text': self.help_text,
|
||||
'error_message': self.error_message + "Enter a valid phone number."}
|
||||
defaults.update(kwargs)
|
||||
return forms.RegexField(phone_re, **defaults)
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# Models
|
||||
|
||||
LICENSE_CHOICES = (
|
||||
(1, 'No License Required for Implementers.'),
|
||||
(2, 'Royalty-Free, Reasonable and Non-Discriminatory License to All Implementers.'),
|
||||
|
@ -126,8 +157,8 @@ class IprContact(models.Model):
|
|||
department = models.CharField(blank=True, maxlength=255)
|
||||
address1 = models.CharField(blank=True, maxlength=255)
|
||||
address2 = models.CharField(blank=True, maxlength=255)
|
||||
telephone = models.CharField(maxlength=25)
|
||||
fax = models.CharField(blank=True, maxlength=25)
|
||||
telephone = InternationalPhoneNumberField(maxlength=25)
|
||||
fax = InternationalPhoneNumberField(blank=True, maxlength=25)
|
||||
email = models.EmailField(maxlength=255)
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
|
@ -83,7 +83,11 @@ def show(request, ipr_id=None):
|
|||
ipr.discloser_identify = linebreaks(escape(ipr.discloser_identify))
|
||||
ipr.comments = linebreaks(escape(ipr.comments))
|
||||
ipr.other_notes = linebreaks(escape(ipr.other_notes))
|
||||
|
||||
opt = ipr.licensing_option
|
||||
ipr.licensing_option = dict(models.LICENSE_CHOICES)[ipr.licensing_option]
|
||||
ipr.selecttype = dict(models.SELECT_CHOICES)[ipr.selecttype]
|
||||
if ipr.selectowned:
|
||||
ipr.selectowned = dict(models.SELECT_CHOICES)[ipr.selectowned]
|
||||
return render("ipr/details.html", {"ipr": ipr, "section_list": section_list})
|
||||
|
||||
def update(request, ipr_id=None):
|
||||
|
|
|
@ -253,7 +253,7 @@
|
|||
<td colspan="2"><i>
|
||||
B. Does this disclosure relate to an unpublished pending patent
|
||||
application?: </i>
|
||||
<b>{{ ipr.get_selecttype_display }}</b>
|
||||
<b>{{ ipr.selecttype }}</b>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><i>
|
||||
|
@ -299,7 +299,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td> </td><td>
|
||||
<b>{{ ipr.get_licensing_option_display }}<br/>
|
||||
<b>{{ ipr.licensing_option }}<br/>
|
||||
{{ ipr.get_lic_opt_a_sub_display }}
|
||||
{{ ipr.get_lic_opt_b_sub_display }}
|
||||
{{ ipr.get_lic_opt_c_sub_display }}</b>
|
||||
|
|
Loading…
Reference in a new issue