From 1f89ddb66bf3b5ee815b057e21c9834706ee0970 Mon Sep 17 00:00:00 2001 From: LongHairedHacker Date: Wed, 24 May 2017 21:39:54 +0200 Subject: [PATCH] Added missing validators for twitter/github usernames Fixed urls --- roms/migrations/0007_auto_20170524_2138.py | 28 +++++++++++++++++++++ roms/templates/roms/details.html | 4 +-- users/admin.py | 2 +- users/migrations/0004_auto_20170524_2138.py | 26 +++++++++++++++++++ users/models.py | 8 ++++-- users/templates/users/signup.html | 3 ++- users/templates/users/user_update.html | 6 +++++ 7 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 roms/migrations/0007_auto_20170524_2138.py create mode 100644 users/migrations/0004_auto_20170524_2138.py diff --git a/roms/migrations/0007_auto_20170524_2138.py b/roms/migrations/0007_auto_20170524_2138.py new file mode 100644 index 0000000..2d9d37d --- /dev/null +++ b/roms/migrations/0007_auto_20170524_2138.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-05-24 19:38 +from __future__ import unicode_literals + +from django.db import migrations, models +import roms.models +import stdimage.models +import stdimage.validators + + +class Migration(migrations.Migration): + + dependencies = [ + ('roms', '0006_auto_20170513_2344'), + ] + + operations = [ + migrations.AlterField( + model_name='rom', + name='cover', + field=stdimage.models.StdImageField(upload_to=roms.models.upload_cover_to, validators=[stdimage.validators.MinSizeValidator(300, 300)], verbose_name='cover-Bild'), + ), + migrations.AlterField( + model_name='rom', + name='description', + field=models.TextField(verbose_name='Beschreibung'), + ), + ] diff --git a/roms/templates/roms/details.html b/roms/templates/roms/details.html index 9827091..c06933f 100644 --- a/roms/templates/roms/details.html +++ b/roms/templates/roms/details.html @@ -24,10 +24,10 @@
hochgeladen von {{rom.user.username}} {% if rom.user.twitter %} - + {% endif %} {% if rom.user.github %} - + {% endif %} am {{rom.creation_time}}. Zuletzt geupdated am {{rom.edit_time}}
diff --git a/users/admin.py b/users/admin.py index 5992031..067e21d 100644 --- a/users/admin.py +++ b/users/admin.py @@ -12,7 +12,7 @@ class CustomUserAdmin(UserAdmin): form = CustomUserChangeForm fieldsets = UserAdmin.fieldsets + ( - ('Additional Attributes', {'fields': ('github',)}), + ('Additional Attributes', {'fields': ('github', 'twitter')}), ) diff --git a/users/migrations/0004_auto_20170524_2138.py b/users/migrations/0004_auto_20170524_2138.py new file mode 100644 index 0000000..fdd34eb --- /dev/null +++ b/users/migrations/0004_auto_20170524_2138.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-05-24 19:38 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0003_auto_20170506_2044'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='github', + field=models.CharField(blank=True, max_length=38, validators=[django.core.validators.RegexValidator(message='Bitte nur den Benutzername, nicht die Profil-Url.', regex='^[a-z\\d](?:[a-z\\d]|-(?=[a-z\\d]))*$')], verbose_name='Github Benutzername'), + ), + migrations.AlterField( + model_name='user', + name='twitter', + field=models.CharField(blank=True, max_length=15, validators=[django.core.validators.RegexValidator(message='Bitte nur den Benutzername, ohne führendes @.', regex='^[a-zA-Z0-9_]+$')], verbose_name='Twitter Benutzername'), + ), + ] diff --git a/users/models.py b/users/models.py index 0814550..6fc62db 100644 --- a/users/models.py +++ b/users/models.py @@ -1,6 +1,10 @@ from django.db import models from django.contrib.auth.models import AbstractUser +from django.core.validators import RegexValidator + +twitter_validator = RegexValidator(regex=r'^[a-zA-Z0-9_]+$', message='Bitte nur den Benutzername, ohne führendes @.') +github_validator = RegexValidator(regex=r'^[a-z\d](?:[a-z\d]|-(?=[a-z\d]))*$', message='Bitte nur den Benutzername, nicht die Profil-Url.') class User(AbstractUser): - github = models.CharField('github', max_length=128, blank=True) - twitter = models.CharField('twitter', max_length=128, blank=True) + github = models.CharField('Github Benutzername', max_length=38, blank=True, validators=[github_validator]) + twitter = models.CharField('Twitter Benutzername', max_length=15, blank=True, validators=[twitter_validator]) diff --git a/users/templates/users/signup.html b/users/templates/users/signup.html index 71cd197..04ac434 100644 --- a/users/templates/users/signup.html +++ b/users/templates/users/signup.html @@ -133,7 +133,8 @@
Twitter und Github-Benutzername sind optionale Angaben.
- Sie werden zusammen mit deinem Benutzername auf Details-Seite zu deinen Roms angezeigt. + Sie werden zusammen mit deinem Benutzername auf Details-Seite zu deinen Roms angezeigt.
+ Bitte nur die Benutzernamen, nicht die Urls und bei Twitter das @ weglassen.
diff --git a/users/templates/users/user_update.html b/users/templates/users/user_update.html index ae68d37..f2c7b0a 100644 --- a/users/templates/users/user_update.html +++ b/users/templates/users/user_update.html @@ -126,6 +126,12 @@
+
+ Twitter und Github-Benutzername sind optionale Angaben.
+ Sie werden zusammen mit deinem Benutzername auf Details-Seite zu deinen Roms angezeigt.
+ Bitte nur die Benutzernamen, nicht die Urls und bei Twitter das @ weglassen. +
+