Revision caf70869 snf-astakos-app/astakos/im/forms.py

b/snf-astakos-app/astakos/im/forms.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.
33 33
from urlparse import urljoin
34
from random import random
34 35

  
35 36
from django import forms
36 37
from django.utils.translation import ugettext as _
......
47 48
from django.conf import settings
48 49
from django.forms.models import fields_for_model
49 50
from django.db import transaction
51
from django.utils.encoding import smart_unicode
52
from django.core import validators
50 53

  
51 54
from astakos.im.models import (
52 55
    AstakosUser, EmailChange, AstakosGroup, Invitation, GroupKind,
......
68 71
import logging
69 72
import hashlib
70 73
import recaptcha.client.captcha as captcha
71
from random import random
74
import re
72 75

  
73 76
logger = logging.getLogger(__name__)
74 77

  
75
class StoreUserMixin(object):
78
DOMAIN_VALUE_REGEX = re.compile(
79
    r'^(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.){0,126}(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?))$',
80
    re.IGNORECASE
81
)
76 82

  
83
class StoreUserMixin(object):
77 84
    @transaction.commit_on_success
78 85
    def store_user(self, user, request):
79 86
        user.save()
......
592 599
        label="",
593 600
        widget=forms.HiddenInput()
594 601
    )
595
    name = forms.URLField(widget=forms.TextInput(attrs={'placeholder': 'eg. foo.ece.ntua.gr'}), help_text="Name should be in the form of dns",)
602
    name = forms.CharField(
603
        validators=[validators.RegexValidator(
604
            DOMAIN_VALUE_REGEX,
605
            _(astakos_messages.DOMAIN_VALUE_ERR), 'invalid'
606
        )],
607
        widget=forms.TextInput(attrs={'placeholder': 'eg. foo.ece.ntua.gr'}),
608
        help_text="Name should be in the form of dns"
609
    )
596 610
    moderation_enabled = forms.BooleanField(
597 611
        help_text="Check if you want to approve members participation manually",
598 612
        required=False,
......
611 625
        qd = args.pop(0).copy()
612 626
        members_unlimited = qd.pop('members_unlimited', False)
613 627
        members_uplimit = qd.pop('members_uplimit', None)
614
#         max_participants = None if members_unlimited else members_uplimit
615
#         qd['max_participants']= max_participants.pop(0) if max_participants else None
616 628

  
617 629
        #substitue QueryDict
618 630
        args.insert(0, qd)
619 631

  
620 632
        super(AstakosGroupCreationForm, self).__init__(*args, **kwargs)
633
        
621 634
        self.fields.keyOrder = ['kind', 'name', 'homepage', 'desc',
622 635
                                'issue_date', 'expiration_date',
623 636
                                'moderation_enabled', 'max_participants']
......
666 679
        label="",
667 680
        widget=forms.HiddenInput()
668 681
    )
669
    name = forms.URLField()
682
    name = forms.CharField(
683
        widget=forms.TextInput(attrs={'placeholder': 'eg. foo.ece.ntua.gr'}),
684
        help_text="Name should be in the form of dns"
685
    )
670 686
    moderation_enabled = forms.BooleanField(
671 687
        help_text="Check if you want to approve members participation manually",
672 688
        required=False,
......
685 701
        qd = args.pop(0).copy()
686 702
        members_unlimited = qd.pop('members_unlimited', False)
687 703
        members_uplimit = qd.pop('members_uplimit', None)
688
#         max_participants = None if members_unlimited else members_uplimit
689
#         qd['max_participants']= max_participants.pop(0) if max_participants else None
690 704

  
691 705
        #substitue QueryDict
692 706
        args.insert(0, qd)

Also available in: Unified diff