From d438c7b16a188933a2b4d042baeafd8416619fb9 Mon Sep 17 00:00:00 2001 From: Aarni Date: Wed, 13 Sep 2017 18:44:17 +0300 Subject: [PATCH] Use more appropriate fields instead of TextFields Fix issue #72 --- .../migrations/0005_auto_20170913_1841.py | 25 +++++++++++++ infoscreen/models.py | 4 +-- requirements.txt | 1 + sikweb/settings-sample.py | 3 +- webapp/migrations/0011_auto_20170913_1841.py | 36 +++++++++++++++++++ webapp/models.py | 9 ++--- 6 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 infoscreen/migrations/0005_auto_20170913_1841.py create mode 100644 webapp/migrations/0011_auto_20170913_1841.py diff --git a/infoscreen/migrations/0005_auto_20170913_1841.py b/infoscreen/migrations/0005_auto_20170913_1841.py new file mode 100644 index 0000000..d23b561 --- /dev/null +++ b/infoscreen/migrations/0005_auto_20170913_1841.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-09-13 15:41 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('infoscreen', '0004_videoinfoitem'), + ] + + operations = [ + migrations.AlterField( + model_name='externalimageinfoitem', + name='url', + field=models.URLField(), + ), + migrations.AlterField( + model_name='externalwebsiteinfoitem', + name='url', + field=models.URLField(), + ), + ] diff --git a/infoscreen/models.py b/infoscreen/models.py index def1096..5f47cc5 100644 --- a/infoscreen/models.py +++ b/infoscreen/models.py @@ -97,7 +97,7 @@ class ApyInfoItem(InfoItem): class ExternalWebsiteInfoItem(InfoItem): display_name = _("External website") - url = models.TextField() + url = models.URLField() def get_template_url(self): return "/static/html/external_website.html?url={}".format(self.name) @@ -213,7 +213,7 @@ class HslInfoItem(InfoItem): class ExternalImageInfoItem(InfoItem): display_name = _("External image") - url = models.TextField() + url = models.URLField() def get_template_url(self): return "/static/html/generic_image.html?img={}".format(self.name) diff --git a/requirements.txt b/requirements.txt index 72e3e6d..434a845 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,3 +25,4 @@ pep8==1.7.0 dealer==2.0.5 django-modeltranslation==0.12.1 django-auditlog==0.4.3 +django-phonenumber-field==1.3.0 diff --git a/sikweb/settings-sample.py b/sikweb/settings-sample.py index d775560..a7fe312 100644 --- a/sikweb/settings-sample.py +++ b/sikweb/settings-sample.py @@ -50,7 +50,8 @@ INSTALLED_APPS = [ 'django_nose', 'bootstrap3', 'django_tables2', - 'auditlog' + 'auditlog', + 'phonenumber_field', ] TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' diff --git a/webapp/migrations/0011_auto_20170913_1841.py b/webapp/migrations/0011_auto_20170913_1841.py new file mode 100644 index 0000000..74d06f5 --- /dev/null +++ b/webapp/migrations/0011_auto_20170913_1841.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-09-13 15:41 +from __future__ import unicode_literals + +from django.db import migrations, models +import phonenumber_field.modelfields + + +class Migration(migrations.Migration): + + dependencies = [ + ('webapp', '0010_auto_20170608_0924'), + ] + + operations = [ + migrations.AlterField( + model_name='baserole', + name='name', + field=models.CharField(max_length=256, verbose_name='Name'), + ), + migrations.AlterField( + model_name='kaehmyform', + name='name', + field=models.CharField(max_length=256, verbose_name='Name'), + ), + migrations.AlterField( + model_name='kaehmymessage', + name='name', + field=models.CharField(max_length=256, verbose_name='Name'), + ), + migrations.AlterField( + model_name='official', + name='phone_number', + field=phonenumber_field.modelfields.PhoneNumberField(max_length=128, verbose_name='Phone number'), + ), + ] diff --git a/webapp/models.py b/webapp/models.py index b7ac62f..993702d 100644 --- a/webapp/models.py +++ b/webapp/models.py @@ -6,6 +6,7 @@ from webapp.utils import month_from_now from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import User from auditlog.registry import auditlog +from phonenumber_field.modelfields import PhoneNumberField class Tag(models.Model): @@ -40,7 +41,7 @@ class BaseRole(models.Model): ''' Base model for occupations/roles ''' - name = models.TextField(_('Name')) + name = models.CharField(_('Name'), max_length=256) is_board = models.BooleanField(_('Board member')) @@ -72,7 +73,7 @@ class KaehmyMessage(MessageParent): Model representing a kaehmymessage. Every message relates to certain kaehmyform or parent message. ''' - name = models.TextField(_('Name')) + name = models.CharField(_('Name'), max_length=256) email = models.EmailField(_('Email')) message = models.TextField(_('Message')) parent = models.ForeignKey('MessageParent', related_name='messages') @@ -83,7 +84,7 @@ class KaehmyForm(MessageParent): Model representing a form for kaehmy. Allows user to choose from existing roles or to create custom ones. ''' - name = models.TextField(_('Name')) + name = models.CharField(_('Name'), max_length=256) email = models.EmailField(_('Email')) year = models.IntegerField(_('Year')) @@ -108,7 +109,7 @@ class Official(User): class Meta: verbose_name = _('Official') - phone_number = models.TextField(_('Phone number')) + phone_number = PhoneNumberField(_('Phone number')) auditlog.register(Tag)