def user_settings_profile(request): try: form = FormsForm.objects.get(slug=settings.ZORNA_USER_PROFILE_FORM) try: entry = form.entries.get(account=request.user) except FormsFormEntry.DoesNotExist: entry = None args = (form, request.POST or None, request.FILES or None) form_for_form = FormForForm(*args, instance=entry or None) if form.bind_to_account: if not form_for_form.instance.id: del form_for_form.fields['zorna_owner'] del form_for_form.fields['zorna_owner-id'] form_for_form.fields['zorna_owner-id'] = forms.CharField( widget=forms.HiddenInput(), initial=request.user.pk) else: del form_for_form.fields['zorna_owner'] except: form_for_form = None form = None if form_for_form and request.method == 'POST' and form_for_form.is_valid(): form_for_form.save(request=request) return user_settings(request) extra_context = user_settings_intialize(request) extra_context['form_for_form'] = form_for_form extra_context['form'] = form context = RequestContext(request) return render_to_response('account/user_profile.html', extra_context, context_instance=context)
def register(request, admin_origin=False, is_active=False, success_url=None, template="account/registration_form.html"): register_complete_url = reverse('user_register_complete_email') if not admin_origin: try: reg = SiteRegistration.objects.get(site=Site.objects.get_current()) if not reg.allow_registration: return HttpResponseForbidden() if reg.validation_type == REGISTRATION_ADMIN_VALIDATION: register_complete_url = reverse( 'user_register_complete_noemail') elif reg.validation_type == REGISTRATION_NO_VALIDATION: register_complete_url = reverse( 'user_register_complete_novalidation') except SiteRegistration.DoesNotExist: return HttpResponseForbidden() form = AccountRegistrationForm(data=request.POST or None) try: f = FormsForm.objects.get(slug=settings.ZORNA_USER_PROFILE_FORM) args = (f, request.POST or None, request.FILES or None) form_for_form = FormForForm(*args, instance=None) if f.bind_to_account: del form_for_form.fields['zorna_owner'] del form_for_form.fields['zorna_owner-id'] form_for_form.fields['zorna_owner-id'] = forms.CharField( widget=forms.HiddenInput(), required=False) lform = form_for_form except Exception as e: form_for_form = None lform = form if request.user.is_anonymous(): lform.fields['REMOTE_ADDR'] = forms.CharField( widget=forms.HiddenInput(), initial=request.META['REMOTE_ADDR']) lform.fields['REMOTE_ADDR'] = forms.CharField( widget=forms.HiddenInput(), initial=request.META['REMOTE_ADDR']) lform.fields['captcha'] = ReCaptchaField(label='Captcha', required=True, widget=ReCaptchaWidget()) if request.method == 'POST': if form.is_valid(): if not form_for_form or form_for_form.is_valid(): new_user = form.save(request, admin_origin, is_active) if form_for_form: form_for_form.cleaned_data['zorna_owner-id'] = new_user.pk form_for_form.save(request=request) return HttpResponseRedirect(success_url or register_complete_url) context = RequestContext(request) return render_to_response(template, { 'form': form, 'form_profile': form_for_form }, context_instance=context)
def forms_get_form_add_entry(request, form_slug, **kwargs): form = forms_get_form(form_slug) if form: kwargs['rget'] = request.GET # {'lot.designation': '110'} args = (form, request.POST or None, request.FILES or None) form_for_form = FormForForm(*args, **kwargs) return form_for_form else: return None
def forms_get_form_edit_entry(request, entry): try: entry = FormsFormEntry.objects.get(pk=entry) form = entry.form except: return None rget = request.GET # {'lot.designation': '110'} args = (form, request.POST or None, request.FILES or None) form_for_form = FormForForm(*args, instance=entry, rget=rget) return form_for_form
def edit_user(request, user): baccess = SiteOptions.objects.is_access_valid( request.user, 'zorna_validate_registration') if request.user.is_superuser or baccess: try: form = FormsForm.objects.get(slug=settings.ZORNA_USER_PROFILE_FORM) try: entry = form.entries.get(account=user) except FormsFormEntry.DoesNotExist: entry = None args = (form, request.POST or None, request.FILES or None) form_for_form = FormForForm(*args, instance=entry or None) if form.bind_to_account: if not form_for_form.instance.id: del form_for_form.fields['zorna_owner'] del form_for_form.fields['zorna_owner-id'] form_for_form.fields['zorna_owner-id'] = forms.CharField( widget=forms.HiddenInput(), initial=user) else: del form_for_form.fields['zorna_owner'] except: form_for_form = None user = User.objects.get(pk=user) form = AccountEditProfileForm(user, data=request.POST or None) if request.method == 'POST': if form.is_valid(): if not form_for_form or form_for_form.is_valid(): user.username = form.cleaned_data['username'] user.first_name = form.cleaned_data['firstname'] user.last_name = form.cleaned_data['lastname'] user.email = form.cleaned_data['email'] user.is_active = form.cleaned_data['is_active'] user.save() try: cal = Calendar.objects.get_calendar_for_object( user, 'owner') cal.name = user.get_full_name() cal.slug = slugify(cal.name) cal.save() except Calendar.DoesNotExist: pass if form_for_form: form_for_form.save(request=request) return HttpResponseRedirect(reverse('list_users')) context = RequestContext(request) return render_to_response("account/edit_user.html", { 'form': form, 'curuser': user, 'form_profile': form_for_form }, context_instance=context) else: return HttpResponseRedirect('/')