Revision 8e45d6fd snf-astakos-app/astakos/im/forms.py
b/snf-astakos-app/astakos/im/forms.py | ||
---|---|---|
46 | 46 |
from django.utils.safestring import mark_safe |
47 | 47 |
from django.contrib import messages |
48 | 48 |
from django.utils.encoding import smart_str |
49 |
from django.forms.extras.widgets import SelectDateWidget |
|
50 |
from django.db.models import Q |
|
49 | 51 |
|
50 |
from astakos.im.models import AstakosUser, Invitation, get_latest_terms, EmailChange
|
|
52 |
from astakos.im.models import *
|
|
51 | 53 |
from astakos.im.settings import INVITATIONS_PER_LEVEL, DEFAULT_FROM_EMAIL, \ |
52 | 54 |
BASEURL, SITENAME, RECAPTCHA_PRIVATE_KEY, DEFAULT_CONTACT_EMAIL, \ |
53 | 55 |
RECAPTCHA_ENABLED, LOGGING_LEVEL |
... | ... | |
484 | 486 |
user.renew_token() |
485 | 487 |
if commit: |
486 | 488 |
user.save() |
487 |
return user |
|
489 |
return user |
|
490 |
|
|
491 |
def get_astakos_group_creation_form(request): |
|
492 |
class AstakosGroupCreationForm(forms.ModelForm): |
|
493 |
issue_date = forms.DateField(widget=SelectDateWidget()) |
|
494 |
expiration_date = forms.DateField(widget=SelectDateWidget()) |
|
495 |
kind = forms.ModelChoiceField(queryset=GroupKind.objects.all(), empty_label=None) |
|
496 |
|
|
497 |
class Meta: |
|
498 |
model = AstakosGroup |
|
499 |
|
|
500 |
def __init__(self, *args, **kwargs): |
|
501 |
super(AstakosGroupCreationForm, self).__init__(*args, **kwargs) |
|
502 |
self.fields.keyOrder = ['kind', 'name', 'identifier', 'desc', 'issue_date', |
|
503 |
'expiration_date', 'estimated_participants', |
|
504 |
'moderatation_enabled'] |
|
505 |
|
|
506 |
def save(self, commit=True): |
|
507 |
g = super(AstakosGroupCreationForm, self).save(commit=False) |
|
508 |
if commit: |
|
509 |
g.save() |
|
510 |
g.owner = [request.user] |
|
511 |
return g |
|
512 |
|
|
513 |
return AstakosGroupCreationForm |
|
514 |
|
|
515 |
def get_astakos_group_policy_creation_form(group): |
|
516 |
class AstakosGroupPolicyCreationForm(forms.ModelForm): |
|
517 |
choices = Resource.objects.filter(~Q(astakosgroup=group)) |
|
518 |
resource = forms.ModelChoiceField(queryset=choices, empty_label=None) |
|
519 |
|
|
520 |
class Meta: |
|
521 |
model = AstakosGroupQuota |
|
522 |
|
|
523 |
def __init__(self, *args, **kwargs): |
|
524 |
if not args: |
|
525 |
args = ({'group':group},) |
|
526 |
super(AstakosGroupPolicyCreationForm, self).__init__(*args, **kwargs) |
|
527 |
self.fields['group'].widget.attrs['disabled'] = True |
|
528 |
|
|
529 |
return AstakosGroupPolicyCreationForm |
Also available in: Unified diff