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