Revision 45f8d9ff

b/snf-astakos-app/astakos/im/forms.py
47 47

  
48 48
from astakos.im.models import AstakosUser, Invitation, get_latest_terms
49 49
from astakos.im.settings import INVITATIONS_PER_LEVEL, DEFAULT_FROM_EMAIL, SITENAME, RECAPTCHA_PRIVATE_KEY, DEFAULT_CONTACT_EMAIL, RECAPTCHA_ENABLED
50
from astakos.im.widgets import DummyWidget, RecaptchaWidget, ApprovalTermsWidget
50
from astakos.im.widgets import DummyWidget, RecaptchaWidget
51 51

  
52 52
# since Django 1.4 use django.core.urlresolvers.reverse_lazy instead
53 53
from astakos.im.util import reverse_lazy, reserved_email, get_query
......
70 70

  
71 71
    class Meta:
72 72
        model = AstakosUser
73
        fields = ("email", "first_name", "last_name", "has_signed_terms")
74
        widgets = {"has_signed_terms":ApprovalTermsWidget(terms_uri=reverse_lazy('latest_terms'))}
73
        fields = ("email", "first_name", "last_name", "has_signed_terms", "has_signed_terms")
75 74

  
76 75
    def __init__(self, *args, **kwargs):
77 76
        """
......
150 149
    class Meta:
151 150
        model = AstakosUser
152 151
        fields = ("email", "first_name", "last_name", "has_signed_terms")
153
        widgets = {"has_signed_terms":ApprovalTermsWidget(terms_uri=reverse_lazy('latest_terms'))}
154 152

  
155 153
    def __init__(self, *args, **kwargs):
156 154
        """
......
177 175
class ThirdPartyUserCreationForm(forms.ModelForm):
178 176
    class Meta:
179 177
        model = AstakosUser
180
        fields = ("email", "first_name", "last_name", "third_party_identifier")
181
        widgets = {"has_signed_terms":ApprovalTermsWidget(terms_uri=reverse_lazy('latest_terms'))}
178
        fields = ("email", "first_name", "last_name", "third_party_identifier", "has_signed_terms")
182 179
    
183 180
    def __init__(self, *args, **kwargs):
184 181
        """
b/snf-astakos-app/astakos/im/widgets.py
62 62
    is_hidden=True
63 63
    def render(self, *args, **kwargs):
64 64
        return ''
65

  
66
class ApprovalTermsWidget(forms.CheckboxInput):
67
    """
68
    A CheckboxInput class with a link to the approval terms.
69
    """
70
    def __init__(self, attrs=None, check_test=bool, terms_uri='', terms_label=_('Read the terms')):
71
        super(ApprovalTermsWidget, self).__init__(attrs, check_test)
72
        self.uri = terms_uri
73
        self.label = terms_label
74

  
75
    def render(self, name, value, attrs=None):
76
        html = super(ApprovalTermsWidget, self).render(name, value, attrs)
77
        return html

Also available in: Unified diff