Esempio n. 1
0
 def __init__(self, user, ratings_required, ratings_range, num_rating_choices):
     AuthenticationForm.__init__(self)
     self.ratings_range, self.num_rating_choices = ratings_range, num_rating_choices
     choices = [(c, c) for c in ratings_range]
     def get_validator_list(rating_num):
         if rating_num <= num_rating_choices:
             return [validators.RequiredIfOtherFieldsGiven(['rating%d' % i for i in range(1, 9) if i != rating_num], "This rating is required because you've entered at least one other rating.")]
         else:
             return []
     self.fields.extend([
         formfields.LargeTextField(field_name="comment", maxlength=3000, is_required=True,
             validator_list=[self.hasNoProfanities]),
         formfields.RadioSelectField(field_name="rating1", choices=choices,
             is_required=ratings_required and num_rating_choices > 0,
             validator_list=get_validator_list(1),
         ),
         formfields.RadioSelectField(field_name="rating2", choices=choices,
             is_required=ratings_required and num_rating_choices > 1,
             validator_list=get_validator_list(2),
         ),
         formfields.RadioSelectField(field_name="rating3", choices=choices,
             is_required=ratings_required and num_rating_choices > 2,
             validator_list=get_validator_list(3),
         ),
         formfields.RadioSelectField(field_name="rating4", choices=choices,
             is_required=ratings_required and num_rating_choices > 3,
             validator_list=get_validator_list(4),
         ),
         formfields.RadioSelectField(field_name="rating5", choices=choices,
             is_required=ratings_required and num_rating_choices > 4,
             validator_list=get_validator_list(5),
         ),
         formfields.RadioSelectField(field_name="rating6", choices=choices,
             is_required=ratings_required and num_rating_choices > 5,
             validator_list=get_validator_list(6),
         ),
         formfields.RadioSelectField(field_name="rating7", choices=choices,
             is_required=ratings_required and num_rating_choices > 6,
             validator_list=get_validator_list(7),
         ),
         formfields.RadioSelectField(field_name="rating8", choices=choices,
             is_required=ratings_required and num_rating_choices > 7,
             validator_list=get_validator_list(8),
         ),
     ])
     if not user.is_anonymous():
         self["username"].is_required = False
         self["username"].validator_list = []
         self["password"].is_required = False
         self["password"].validator_list = []
         self.user_cache = user
Esempio n. 2
0
def login(request):
    "Displays the login form and handles the login action."
    manipulator = AuthenticationForm(request)
    redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '')
    if request.POST:
        errors = manipulator.get_validation_errors(request.POST)
        if not errors:
            # Light security check -- make sure redirect_to isn't garbage.
            if not redirect_to or '://' in redirect_to or ' ' in redirect_to:
                redirect_to = '/accounts/profile/'
            request.session[users.SESSION_KEY] = manipulator.get_user_id()
            request.session.delete_test_cookie()
            return HttpResponseRedirect(redirect_to)
    else:
        errors = {}
    request.session.set_test_cookie()
    return render_to_response('registration/login', {
        'form': formfields.FormWrapper(manipulator, request.POST, errors),
        REDIRECT_FIELD_NAME: redirect_to,
        'site_name': sites.get_current().name,
    }, context_instance=DjangoContext(request))
Esempio n. 3
0
 def __init__(self, request):
     AuthenticationForm.__init__(self, request)
     self.fields.append(
         formfields.CheckboxField(field_name="remember"))