from django import forms
from django.core.exceptions import ValidationError
-from django.core.validators import RegexValidator
from django.utils.http import urlquote
from filex.models import Favorite
-
-
-msg = u'Invalid value'
-host_validator = RegexValidator(r'^(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+'
- r'(?:[a-zA-Z]{2,6}\.?|[a-zA-Z0-9-]{2,}(?<!-)\.?))(?::\d+)?$', msg)
-path_validator = RegexValidator(r'^~?(?:/[^/\0]*)*$', msg)
-name_validator = RegexValidator(r'^[^/\0]+$', msg)
+from filex.validators import host_validator, path_validator, name_validator
def clean_path(path):
fields = ('owner', 'host', 'path')
widgets = {'owner': forms.HiddenInput()}
+ def clean_path(self):
+ return os.path.normpath(self.cleaned_data['path'])
+
class HostForm(forms.Form):
host = forms.CharField(label=u'Host', max_length=256, validators=[host_validator], widget=forms.HiddenInput())
--- /dev/null
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import django.core.validators
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('filex', '0003_auto_20150420_1646'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='favorite',
+ name='host',
+ field=models.CharField(max_length=256, verbose_name='Host', validators=[django.core.validators.RegexValidator(b'^(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+(?:[a-zA-Z]{2,6}\\.?|[a-zA-Z0-9-]{2,}(?<!-)\\.?))(?::\\d+)?$', 'Invalid value')]),
+ preserve_default=True,
+ ),
+ migrations.AlterField(
+ model_name='favorite',
+ name='path',
+ field=models.CharField(default=b'~', max_length=1024, verbose_name='\u015acie\u017cka', validators=[django.core.validators.RegexValidator(b'^~?(?:/[^/\\0]*)*$', 'Invalid value')]),
+ preserve_default=True,
+ ),
+ ]
from django.conf import settings
from django.db import models
+from filex.validators import host_validator, path_validator
+
class Favorite(models.Model):
owner = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u"Właściciel", related_name='favorites')
- host = models.CharField(u"Host", max_length=256)
- path = models.CharField(u"Ścieżka", max_length=1024, default='~')
+ host = models.CharField(u"Host", max_length=256, validators=[host_validator])
+ path = models.CharField(u"Ścieżka", max_length=1024, default='~', validators=[path_validator])
created = models.DateTimeField(u"Utworzono", auto_now_add=True)
updated = models.DateTimeField(u"Uaktualniono", auto_now=True)
unique_together = ('owner', 'host', 'path')
def __unicode__(self):
- return u'{}{} ({})'.format(self.host, self.path, self.owner)
+ return u'{}/{} ({})'.format(self.host, self.path, self.owner)
--- /dev/null
+from django.core.validators import RegexValidator
+
+msg = u'Invalid value'
+host_validator = RegexValidator(r'^(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+'
+ r'(?:[a-zA-Z]{2,6}\.?|[a-zA-Z0-9-]{2,}(?<!-)\.?))(?::\d+)?$', msg)
+path_validator = RegexValidator(r'^~?(?:/[^/\0]*)*$', msg)
+name_validator = RegexValidator(r'^[^/\0]+$', msg)