def login(request, template_name): if (request.method == 'POST'): # Default error_message error_message = "Password not valid" try: username = request.POST.get('username', '').strip() # Check if user entered email to login if email_re.search(username): # "username" is an email. Get his/her username. user = User.objects.get(email=username) else: # Get real username in case user entered ignore-case username user = User.objects.get(username__iexact=username) post_copy = request.POST.copy() post_copy['username'] = user.username request.POST = post_copy except User.DoesNotExist: error_message = "Username doesn't exist" response = auth_views.login(request, template_name) ip_address = request.META.get('REMOTE_ADDR') if (type(response) == HttpResponseRedirect): UserSession.objects.create(user=user, ip_address=ip_address) logger.info("%s - account-login: user '%s'" % (ip_address, username)) else: logger.error("%s - account-login: user '%s', error: '%s'" % (ip_address, username, error_message)) else: response = auth_views.login(request, template_name) return response
def password_change(request, pwdreset_key): user = PasswordReset.objects.is_valid(pwdreset_key) if not user: logger.error( "%s - account-pwdchange: key '%s', error: '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, 'Key not found')) return render_to_response('account/password_change_form.html', context_instance=RequestContext(request)) if request.method == 'POST': form = PasswordChangeForm(request.POST) if form.is_valid(): user.set_password(form.cleaned_data['new_password1']) user.save() PasswordReset.objects.expire_key(pwdreset_key) logger.info( "%s - account-pwdchange: key '%s', user '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, user.username)) return render_to_response('account/password_change_done.html', context_instance=RequestContext(request)) else: logger.error( "%s - account-pwdchange: key '%s', user '%s', error: '%s'" % (request.META.get('REMOTE_ADDR'), pwdreset_key, user.username, 'Password not valid')) else: form = PasswordChangeForm() return render_to_response('account/password_change_form.html', { 'form': form, 'user_cache': user }, context_instance=RequestContext(request))
def password_change(request, pwdreset_key): user = PasswordReset.objects.is_valid(pwdreset_key) if not user: logger.error( "%s - account-pwdchange: key '%s', error: '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, "Key not found") ) return render_to_response("account/password_change_form.html", context_instance=RequestContext(request)) if request.method == "POST": form = PasswordChangeForm(request.POST) if form.is_valid(): user.set_password(form.cleaned_data["new_password1"]) user.save() PasswordReset.objects.expire_key(pwdreset_key) logger.info( "%s - account-pwdchange: key '%s', user '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, user.username) ) return render_to_response("account/password_change_done.html", context_instance=RequestContext(request)) else: logger.error( "%s - account-pwdchange: key '%s', user '%s', error: '%s'" % (request.META.get("REMOTE_ADDR"), pwdreset_key, user.username, "Password not valid") ) else: form = PasswordChangeForm() return render_to_response( "account/password_change_form.html", {"form": form, "user_cache": user}, context_instance=RequestContext(request), )
def graduado(request, plancarrera): dict_data['list_carreras'] = request.session.get('list_carreras', list()) alumno = get_object_or_404(Alumno, user=request.user, plancarrera__short_name=plancarrera) if request.method == 'POST': form = forms.GraduadoForm(request.POST) if form.is_valid(): alumno.graduado_date = form.cleaned_data['graduado_date'] alumno.save() request.user.message_set.create(message=_(u'¡Felicitaciones!')) logger.info("%s - carreras-graduado: user '%s', plancarrera '%s'" % (request.META.get('REMOTE_ADDR'), request.user, alumno.plancarrera)) return HttpResponseRedirect(reverse('carreras-home')) else: # Initial data initial_data = {'plancarrera': alumno.plancarrera.short_name} if alumno.graduado_date: initial_data['month'] = alumno.graduado_date.month initial_data['year'] = alumno.graduado_date.year form = forms.GraduadoForm(initial=initial_data) dict_data['form'] = form dict_data['alumno'] = alumno return render_to_response('carreras/carrera_graduado_form.html', dict_data, context_instance=RequestContext(request))
def login(request, template_name): if request.method == "POST": # Default error_message error_message = "Password not valid" try: username = request.POST.get("username", "").strip() # Check if user entered email to login if email_re.search(username): # "username" is an email. Get his/her username. user = User.objects.get(email=username) else: # Get real username in case user entered ignore-case username user = User.objects.get(username__iexact=username) post_copy = request.POST.copy() post_copy["username"] = user.username request.POST = post_copy except User.DoesNotExist: error_message = "Username doesn't exist" response = auth_views.login(request, template_name) ip_address = request.META.get("REMOTE_ADDR") if type(response) == HttpResponseRedirect: UserSession.objects.create(user=user, ip_address=ip_address) logger.info("%s - account-login: user '%s'" % (ip_address, username)) else: logger.error("%s - account-login: user '%s', error: '%s'" % (ip_address, username, error_message)) else: response = auth_views.login(request, template_name) return response
def materia(request, codigo): dict_data['list_carreras'] = request.session.get('list_carreras', list()) materia = get_object_or_404(Materia, id=codigo) if request.method == 'POST': form = CursadaForm(request.POST) if form.is_valid(): form.save(request.user, materia) AlumnoMateria.objects.update_creditos(request.user, dict_data['list_carreras']) request.user.message_set.create(message=_('Cambios guardados.')) logger.info( "%s - facultadmateria: user '%s', materia '%s', state '%s', form %s" % (request.META.get('REMOTE_ADDR'), request.user, codigo, form.cleaned_data['state'], form.cleaned_data)) if request.session.has_key('plancarrera'): return HttpResponseRedirect( reverse('facultad-materias-carrera', args=[request.session.get('plancarrera')])) else: initial_data = AlumnoMateria.objects.get_initial_data( request.user, materia) form = CursadaForm(initial=initial_data) #request.session.set('redirect_url', request.META.get('HTTP_REFERER', '')) # form.fields['materia_curso'].choices = [('-', 'Curso')] + [(c.id, c.docentes) for c in MateriaCurso.objects.filter(pub_date='2008-03-01', materia=materia)] # print dir(form.fields['materia_curso']) #.fields['materia_curso'] # MATERIA_CURSOS = [('-', '-')] + [(c.id, c.docentes) for c in MateriaCurso.objects.filter(pub_date='2008-03-01', materia=)] dict_data.update({ 'form': form, 'materia': materia, }) return render_to_response('facultad/materia_form.html', dict_data, context_instance=RequestContext(request))
def parse_materias_aprobadas(paste, request): lines = paste.split("\n") materia_list = [] notfound_list = [] for l in lines: match = re_infoacad.match(l) if match: # Line matched regex dict_materia = match.groupdict() try: # Find materia cod_materia = dict_materia['cod_materia'] materia = Materia.objects.get(id=cod_materia) nota = dict_materia['nota'] day, month, year = dict_materia['final_date'].split('-') final_date = datetime.date(int(year), int(month), int(day)) al = AlumnoMateria.objects.create_or_update(request.user, materia, final_date, nota) logger.info("%s - cargar_materias: user '%s', materia '%s', fecha '%s', nota '%s'" % (request.META.get('REMOTE_ADDR'), request.user, materia.id, final_date, nota)) materia_list.append([materia, final_date, nota]) except: # Materia not found notfound_list.append(l) logger.error("%s - cargar_materias: user '%s', materia 'NOT FOUND', line '%s'" % (request.META.get('REMOTE_ADDR'), request.user, l)) else: # Not matched notfound_list.append(l) logger.error("%s - cargar_materias: user '%s', line NOT MATCH '%s'" % (request.META.get('REMOTE_ADDR'), request.user, l)) dict_result = { 'text_paste' : "\n".join(notfound_list), 'materia_list' : materia_list, 'materia_list_count' : len(materia_list), } return dict_result
def events_add(request, cod_materia): materia = _get_common_vars(cod_materia) #from event.forms import CreateEventForm if request.method == 'POST': form = CreateEventForm(request.POST) if form.is_valid(): title = form.cleaned_data['title'] where = form.cleaned_data['where'] description = form.cleaned_data['description'] date_event = form.cleaned_data['date_event'] event = Event.objects.create(title=title, where=where, description=description, date=date_event) EventMateria.objects.create(event=event, user=request.user, materia=materia) request.user.message_set.create(message=_('Fecha agregada')) logger.info("%s - materias-events_add: id %s, user '%s', materia '%s', '%s', '%s', '%s', '%s'" % (request.META.get('REMOTE_ADDR'), event.id, request.user, materia.id, title, where, date_event, description)) else: logger.error("%s - materias-events_add: user '%s', materia '%s', title '%s', where '%s', date_event '%s/%s/%s %s:%s', description '%s'" % (request.META.get('REMOTE_ADDR'), request.user, materia.id, form.data['title'], form.data['where'], form.data['date_day'], form.data['date_month'], form.data['date_year'], form.data['time_hour'], form.data['time_minute'], form.data['description'])) else: form = CreateEventForm() dict_data['form'] = form return render_to_response('materia_events_add.html', dict_data, context_instance=RequestContext(request))
def add(request): dict_data["list_carreras"] = request.session.get("list_carreras", list()) if request.method == "POST": form = forms.SelectCarreraForm(request.POST) if form.is_valid(): plancarrera = PlanCarrera.objects.get(id=form.cleaned_data["plancarrera"]) begin_date = form.cleaned_data["begin_date"] alumno = Alumno.objects.create( user=request.user, carrera=plancarrera.carrera, plancarrera=plancarrera, begin_date=begin_date ) if alumno: AlumnoMateria.objects.update_creditos(request.user, [alumno]) request.user.message_set.create(message=_("Carrera agregada.")) logger.info( "%s - carreras-add: user '%s', plancarrera '%s'" % (request.META.get("REMOTE_ADDR"), request.user, plancarrera.name) ) else: request.user.message_set.create(message=_(u"Ya cursás esa carrera.")) logger.error( "%s - carreras-add: user '%s', plancarrera '%s', \"Ya cursás esa carrera.\"" % (request.META.get("REMOTE_ADDR"), request.user, plancarrera.name) ) return HttpResponseRedirect(reverse("carreras-home")) else: logger.error( "%s - carreras-add: user '%s', plancarrera '%s', \"Form not valid.\"" % (request.META.get("REMOTE_ADDR"), request.user, form.cleaned_data["plancarrera"]) ) form = forms.SelectCarreraForm() dict_data["form"] = form return render_to_response("carreras/carrera_add_form.html", dict_data, context_instance=RequestContext(request))
def graduado(request, plancarrera): dict_data["list_carreras"] = request.session.get("list_carreras", list()) alumno = get_object_or_404(Alumno, user=request.user, plancarrera__short_name=plancarrera) if request.method == "POST": form = forms.GraduadoForm(request.POST) if form.is_valid(): alumno.graduado_date = form.cleaned_data["graduado_date"] alumno.save() request.user.message_set.create(message=_(u"¡Felicitaciones!")) logger.info( "%s - carreras-graduado: user '%s', plancarrera '%s'" % (request.META.get("REMOTE_ADDR"), request.user, alumno.plancarrera) ) return HttpResponseRedirect(reverse("carreras-home")) else: # Initial data initial_data = {"plancarrera": alumno.plancarrera.short_name} if alumno.graduado_date: initial_data["month"] = alumno.graduado_date.month initial_data["year"] = alumno.graduado_date.year form = forms.GraduadoForm(initial=initial_data) dict_data["form"] = form dict_data["alumno"] = alumno return render_to_response( "carreras/carrera_graduado_form.html", dict_data, context_instance=RequestContext(request) )
def events_delete(request, cod_materia, id_event): materia = _get_common_vars(cod_materia) event = get_object_or_404(EventMateria, id=id_event, user=request.user) logger.info("%s - materias-events_delete: id %s, user '%s'" % (request.META.get('REMOTE_ADDR'), event.id, request.user)) event.event.delete() event.delete() request.user.message_set.create(message=_('Fecha borrada')) return HttpResponseRedirect(materia.url_events())
def delete(request, plancarrera=None): if plancarrera: alumno = get_object_or_404(Alumno, user=request.user, plancarrera__short_name=plancarrera) alumno.delete() request.user.message_set.create(message=_('Carrera borrada.')) logger.info("%s - carreras-delete: user '%s', plancarrera '%s'" % (request.META.get('REMOTE_ADDR'), request.user, plancarrera)) return HttpResponseRedirect(reverse('carreras-home')) # Show list of carreras dict_data['list_carreras'] = request.session.get('list_carreras', list()) return render_to_response('carreras/carrera_delete.html', dict_data, context_instance=RequestContext(request))
def delete(request, plancarrera=None): if plancarrera: alumno = get_object_or_404(Alumno, user=request.user, plancarrera__short_name=plancarrera) alumno.delete() request.user.message_set.create(message=_('Carrera borrada.')) logger.info( "%s - carreras-delete: user '%s', plancarrera '%s'" % (request.META.get('REMOTE_ADDR'), request.user, plancarrera)) return HttpResponseRedirect(reverse('carreras-home')) # Show list of carreras dict_data['list_carreras'] = request.session.get('list_carreras', list()) return render_to_response('carreras/carrera_delete.html', dict_data, context_instance=RequestContext(request))
def edit(request): """ Edits profile data. """ profile = Profile.objects.get(user=request.user) if request.method == 'POST': form = ProfileForm(request.POST) if form.is_valid(): form.save(profile) logger.info("%s - profile-edit: user '%s', form %s" % (request.META.get('REMOTE_ADDR'), request.user, form.cleaned_data)) request.user.message_set.create(message=_('Profile updated.')) return HttpResponseRedirect(reverse('profile-show')) form = ProfileForm(profile.get_init_data()) dict_data['form'] = form return render_to_response('profiles/edit_form.html', dict_data, context_instance=RequestContext(request))
def photo_edit(request): # Upload a new photo if request.FILES: form = UploadPhotoForm(request.POST, request.FILES) if form.is_valid() and request.FILES.has_key('avatar'): if Photo.objects.upload_file(request.user, request.FILES['avatar']): request.user.message_set.create(message=_('Photo updated.')) else: request.user.message_set.create(message=_('Ocurrió un error.')) logger.info("%s - profile-photo_edit: user '%s', form %s" % (request.META.get('REMOTE_ADDR'), request.user, form.cleaned_data)) else: form = UploadPhotoForm() profile = Profile.objects.get(user=request.user) photo_list = Photo.objects.filter(user=request.user).order_by('id') dict_data.update({ 'form' : form, 'profile' : profile, 'photo_list' : photo_list }) return render_to_response('profiles/photo_form.html', dict_data, context_instance=RequestContext(request))
def password_reset(request, template_name, email_template_name): if request.method == 'POST': form = PasswordResetForm(request.POST) if form.is_valid(): "Generates a key and sends it to the user" from django.core.mail import send_mail pwdreset_key = PasswordReset.objects.create_key(form.user) pwdreset_key.send_mail(email_template_name) logger.info("%s - account-password_reset: email '%s'" % (request.META.get('REMOTE_ADDR'), form.user.email)) return HttpResponseRedirect('%sdone/' % request.path) else: logger.error("%s - account-password_reset: email '%s' not found" % (request.META.get('REMOTE_ADDR'), form.data['email'])) else: form = PasswordResetForm() return render_to_response(template_name, {'form': form}, context_instance=RequestContext(request))
def password_reset(request, template_name, email_template_name): if request.method == "POST": form = PasswordResetForm(request.POST) if form.is_valid(): "Generates a key and sends it to the user" from django.core.mail import send_mail pwdreset_key = PasswordReset.objects.create_key(form.user) pwdreset_key.send_mail(email_template_name) logger.info("%s - account-password_reset: email '%s'" % (request.META.get("REMOTE_ADDR"), form.user.email)) return HttpResponseRedirect("%sdone/" % request.path) else: logger.error( "%s - account-password_reset: email '%s' not found" % (request.META.get("REMOTE_ADDR"), form.data["email"]) ) else: form = PasswordResetForm() return render_to_response(template_name, {"form": form}, context_instance=RequestContext(request))
def parse_materias_aprobadas(paste, request): lines = paste.split("\n") materia_list = [] notfound_list = [] for l in lines: match = re_infoacad.match(l) if match: # Line matched regex dict_materia = match.groupdict() try: # Find materia cod_materia = dict_materia['cod_materia'] materia = Materia.objects.get(id=cod_materia) nota = dict_materia['nota'] day, month, year = dict_materia['final_date'].split('-') final_date = datetime.date(int(year), int(month), int(day)) al = AlumnoMateria.objects.create_or_update( request.user, materia, final_date, nota) logger.info( "%s - cargar_materias: user '%s', materia '%s', fecha '%s', nota '%s'" % (request.META.get('REMOTE_ADDR'), request.user, materia.id, final_date, nota)) materia_list.append([materia, final_date, nota]) except: # Materia not found notfound_list.append(l) logger.error( "%s - cargar_materias: user '%s', materia 'NOT FOUND', line '%s'" % (request.META.get('REMOTE_ADDR'), request.user, l)) else: # Not matched notfound_list.append(l) logger.error( "%s - cargar_materias: user '%s', line NOT MATCH '%s'" % (request.META.get('REMOTE_ADDR'), request.user, l)) dict_result = { 'text_paste': "\n".join(notfound_list), 'materia_list': materia_list, 'materia_list_count': len(materia_list), } return dict_result
def links(request, callback=None): if request.method == 'POST': form_name = request.POST.get('form_name', '') if form_name == 'sn_form': form = LinkSocialNetworkForm(request.POST) elif form_name == 'im_form': form = LinkInstantMessengerForm(request.POST) elif form_name == 'w_form': form = LinkWebsiteForm(request.POST) else: form = None if form and form.is_valid(): logger.info("%s - profile-links: user '%s', form %s" % (request.META.get('REMOTE_ADDR'), request.user, form.cleaned_data)) form.save(request.user) request.user.message_set.create(message=_('Profile added.')) dict_data.update({ 'sn_form' : LinkSocialNetworkForm(), 'im_form' : LinkInstantMessengerForm(), 'w_form' : LinkWebsiteForm(), }) return render_to_response('profiles/links_form.html', dict_data, context_instance=RequestContext(request))
def materia(request, codigo): dict_data['list_carreras'] = request.session.get('list_carreras', list()) materia = get_object_or_404(Materia, id=codigo) if request.method == 'POST': form = CursadaForm(request.POST) if form.is_valid(): form.save(request.user, materia) AlumnoMateria.objects.update_creditos(request.user, dict_data['list_carreras']) request.user.message_set.create(message=_('Cambios guardados.')) logger.info("%s - facultadmateria: user '%s', materia '%s', state '%s', form %s" % (request.META.get('REMOTE_ADDR'), request.user, codigo, form.cleaned_data['state'], form.cleaned_data)) if request.session.has_key('plancarrera'): return HttpResponseRedirect(reverse('facultad-materias-carrera', args=[request.session.get('plancarrera')])) else: initial_data = AlumnoMateria.objects.get_initial_data(request.user, materia) form = CursadaForm(initial=initial_data) #request.session.set('redirect_url', request.META.get('HTTP_REFERER', '')) # form.fields['materia_curso'].choices = [('-', 'Curso')] + [(c.id, c.docentes) for c in MateriaCurso.objects.filter(pub_date='2008-03-01', materia=materia)] # print dir(form.fields['materia_curso']) #.fields['materia_curso'] # MATERIA_CURSOS = [('-', '-')] + [(c.id, c.docentes) for c in MateriaCurso.objects.filter(pub_date='2008-03-01', materia=)] dict_data.update({ 'form' : form, 'materia' : materia, }) return render_to_response('facultad/materia_form.html', dict_data, context_instance=RequestContext(request))
def graduado(request, plancarrera): dict_data['list_carreras'] = request.session.get('list_carreras', list()) alumno = get_object_or_404(Alumno, user=request.user, plancarrera__short_name=plancarrera) if request.method == 'POST': form = forms.GraduadoForm(request.POST) if form.is_valid(): alumno.graduado_date = form.cleaned_data['graduado_date'] alumno.save() request.user.message_set.create(message=_(u'¡Felicitaciones!')) logger.info("%s - carreras-graduado: user '%s', plancarrera '%s'" % (request.META.get('REMOTE_ADDR'), request.user, alumno.plancarrera)) return HttpResponseRedirect(reverse('carreras-home')) else: # Initial data initial_data = { 'plancarrera' : alumno.plancarrera.short_name } if alumno.graduado_date: initial_data['month'] = alumno.graduado_date.month initial_data['year'] = alumno.graduado_date.year form = forms.GraduadoForm(initial=initial_data) dict_data['form'] = form dict_data['alumno'] = alumno return render_to_response('carreras/carrera_graduado_form.html', dict_data, context_instance=RequestContext(request))
def add(request): dict_data['list_carreras'] = request.session.get('list_carreras', list()) if request.method == 'POST': form = forms.SelectCarreraForm(request.POST) if form.is_valid(): plancarrera = PlanCarrera.objects.get( id=form.cleaned_data['plancarrera']) begin_date = form.cleaned_data['begin_date'] alumno = Alumno.objects.create(user=request.user, carrera=plancarrera.carrera, plancarrera=plancarrera, begin_date=begin_date) if alumno: AlumnoMateria.objects.update_creditos(request.user, [alumno]) request.user.message_set.create(message=_('Carrera agregada.')) logger.info("%s - carreras-add: user '%s', plancarrera '%s'" % (request.META.get('REMOTE_ADDR'), request.user, plancarrera.name)) else: request.user.message_set.create( message=_(u'Ya cursás esa carrera.')) logger.error( "%s - carreras-add: user '%s', plancarrera '%s', \"Ya cursás esa carrera.\"" % (request.META.get('REMOTE_ADDR'), request.user, plancarrera.name)) return HttpResponseRedirect(reverse('carreras-home')) else: logger.error( "%s - carreras-add: user '%s', plancarrera '%s', \"Form not valid.\"" % (request.META.get('REMOTE_ADDR'), request.user, form.cleaned_data['plancarrera'])) form = forms.SelectCarreraForm() dict_data['form'] = form return render_to_response('carreras/carrera_add_form.html', dict_data, context_instance=RequestContext(request))
def activate(request, activation_key, template_name="registration/activate.html"): """ Activates a ``User``'s account, if their key is valid and hasn't expired. By default, uses the template ``registration/activate.html``; to change this, pass the name of a template as the keyword argument ``template_name``. **Context:** account The ``User`` object corresponding to the account, if the activation was successful. ``False`` if the activation was not successful. expiration_days The number of days for which activation keys stay valid after registration. **Template:** registration/activate.html or ``template_name`` keyword argument. """ activation_key = activation_key.lower() # Normalize before trying anything with it. account = RegistrationProfile.objects.activate_user(activation_key) if account: logger.info("%s - account-activate: user %s" % (request.META.get("REMOTE_ADDR"), account)) else: logger.error("%s - account-activate: activation_key %s" % (request.META.get("REMOTE_ADDR"), activation_key)) return render_to_response( template_name, {"account": account, "expiration_days": getattr(settings, "ACCOUNT_ACTIVATION_DAYS", 5)}, context_instance=RequestContext(request), )
def activate(request, activation_key, template_name='registration/activate.html'): """ Activates a ``User``'s account, if their key is valid and hasn't expired. By default, uses the template ``registration/activate.html``; to change this, pass the name of a template as the keyword argument ``template_name``. **Context:** account The ``User`` object corresponding to the account, if the activation was successful. ``False`` if the activation was not successful. expiration_days The number of days for which activation keys stay valid after registration. **Template:** registration/activate.html or ``template_name`` keyword argument. """ activation_key = activation_key.lower() # Normalize before trying anything with it. account = RegistrationProfile.objects.activate_user(activation_key) if (account): logger.info("%s - account-activate: user %s" %(request.META.get('REMOTE_ADDR'), account)) else: logger.error("%s - account-activate: activation_key %s" %(request.META.get('REMOTE_ADDR'), activation_key)) return render_to_response(template_name, { 'account': account, 'expiration_days': getattr(settings, 'ACCOUNT_ACTIVATION_DAYS', 5) }, context_instance=RequestContext(request))
def register(request, success_url='/account/register/complete/', form_class=RegistrationFormUniqueEmail, profile_callback=None, template_name='registration/registration_form.html'): """ Allows a new user to register an account. Following successful registration, redirects to either ``/accounts/register/complete/`` or, if supplied, the URL specified in the keyword argument ``success_url``. By default, ``registration.forms.RegistrationForm`` will be used as the registration form; to change this, pass a different form class as the ``form_class`` keyword argument. The form class you specify must have a method ``save`` which will create and return the new ``User``, and that method must accept the keyword argument ``profile_callback`` (see below). To enable creation of a site-specific user profile object for the new user, pass a function which will create the profile object as the keyword argument ``profile_callback``. See ``RegistrationManager.create_inactive_user`` in the file ``models.py`` for details on how to write this function. By default, uses the template ``registration/registration_form.html``; to change this, pass the name of a template as the keyword argument ``template_name``. **Context:** form The registration form. **Template:** registration/registration_form.html or ``template_name`` keyword argument. """ if request.method == 'POST': form = form_class(request.POST) logger.debug("%s - account-register: username: '******', first_name: '%s', last_name: '%s', email: '%s', tipo_verificacion: '%s', verificacion: '%s', tipo_request_auth: '%s', request_auth: '%s'" % (request.META.get('REMOTE_ADDR'), form.data['username'], form.data['first_name'], form.data['last_name'], form.data['email'], form.data['tipo_verificacion'], form.data['verificacion'], form.data['tipo_request_auth'], form.data['request_auth'])) if form.is_valid(): # new_user = form.save(profile_callback=profile_callback) # return HttpResponseRedirect(success_url) if form.is_request_auth(): # User is not alumno. send_email = False activation_email = form.cleaned_data['email'] else: # User is alumno or has an email account. if form.is_account(): # User has an email account. if settings.CHECK_PADRON.is_registered(form.cleaned_data['verificacion']): form.errors['verificacion'] = [_(u'Cuenta ya utilizada. Por favor contactate con nosotros \ si creés que alguien utilizó tu cuenta.')] #logger.error("%s - check_padron %s ('%s', '%s', '%s')" % (request.META.get('REMOTE_ADDR'), 'ALREADY USED', form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name'])) else: activation_email = form.cleaned_data['verificacion'] + '@fi.uba.ar' # Check padron elif form.is_padron(): # Check verificacion repetido verificacion_error, log_message = settings.CHECK_PADRON.check_padron(form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name']) if verificacion_error: logger.error("%s - check_padron %s ('%s', '%s', '%s')" % (request.META.get('REMOTE_ADDR'), log_message, form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name'])) form.errors['verificacion'] = [verificacion_error] else: logger.info("%s - check_padron %s ('%s', '%s', '%s')" % (request.META.get('REMOTE_ADDR'), log_message, form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name'])) activation_email = form.cleaned_data['email'] send_email = True if len(form.errors) == 0: # Register new user new_user = RegistrationProfile.objects.create_inactive_user(username=form.cleaned_data['username'], password=form.cleaned_data['password'], first_name=form.cleaned_data['first_name'], last_name=form.cleaned_data['last_name'], email=activation_email, send_email=send_email) logger.info("%s - new_user ('%s', '%s')" % (request.META.get('REMOTE_ADDR'), new_user.username, new_user.email)) if form.is_account(): # Save user's email. new_user.email = form.cleaned_data['email'] new_user.save() from django.core.mail import send_mail current_site = Site.objects.get_current() subject = _(u'[%s] New user' % current_site.name) message = render_to_string('registration/new_user_email.html', { 'new_user': form.cleaned_data, 'site_url': 'http://%s/' % current_site.domain, 'site_name': current_site.name, }) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [a[1] for a in settings.MANAGERS]) if send_email: settings.CHECK_PADRON.save_user(form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name']) return render_to_response('registration/registration_complete.html', { 'send_email': send_email, 'activation_email' : activation_email, }, context_instance=RequestContext(request)) """ request_auth = form.cleaned_data['request_auth'] return render_to_response('registration_complete.html', { 'send_email': send_email }, context_instance=RequestContext(request)) return HttpResponseRedirect(success_url) """ else: form = form_class() return render_to_response(template_name, { 'form': form }, context_instance=RequestContext(request))
def register( request, success_url="/account/register/complete/", form_class=RegistrationFormUniqueEmail, profile_callback=None, template_name="registration/registration_form.html", ): """ Allows a new user to register an account. Following successful registration, redirects to either ``/accounts/register/complete/`` or, if supplied, the URL specified in the keyword argument ``success_url``. By default, ``registration.forms.RegistrationForm`` will be used as the registration form; to change this, pass a different form class as the ``form_class`` keyword argument. The form class you specify must have a method ``save`` which will create and return the new ``User``, and that method must accept the keyword argument ``profile_callback`` (see below). To enable creation of a site-specific user profile object for the new user, pass a function which will create the profile object as the keyword argument ``profile_callback``. See ``RegistrationManager.create_inactive_user`` in the file ``models.py`` for details on how to write this function. By default, uses the template ``registration/registration_form.html``; to change this, pass the name of a template as the keyword argument ``template_name``. **Context:** form The registration form. **Template:** registration/registration_form.html or ``template_name`` keyword argument. """ if request.method == "POST": form = form_class(request.POST) logger.debug( "%s - account-register: username: '******', first_name: '%s', last_name: '%s', email: '%s', tipo_verificacion: '%s', verificacion: '%s', tipo_request_auth: '%s', request_auth: '%s'" % ( request.META.get("REMOTE_ADDR"), form.data["username"], form.data["first_name"], form.data["last_name"], form.data["email"], form.data["tipo_verificacion"], form.data["verificacion"], form.data["tipo_request_auth"], form.data["request_auth"], ) ) if form.is_valid(): # new_user = form.save(profile_callback=profile_callback) # return HttpResponseRedirect(success_url) if form.is_request_auth(): # User is not alumno. send_email = False activation_email = form.cleaned_data["email"] else: # User is alumno or has an email account. if form.is_account(): # User has an email account. if settings.CHECK_PADRON.is_registered(form.cleaned_data["verificacion"]): form.errors["verificacion"] = [ _( u"Cuenta ya utilizada. Por favor contactate con nosotros \ si creés que alguien utilizó tu cuenta." ) ] # logger.error("%s - check_padron %s ('%s', '%s', '%s')" % (request.META.get('REMOTE_ADDR'), 'ALREADY USED', form.cleaned_data['verificacion'], form.data['first_name'], form.data['last_name'])) else: activation_email = form.cleaned_data["verificacion"] + "@fi.uba.ar" # Check padron elif form.is_padron(): # Check verificacion repetido verificacion_error, log_message = settings.CHECK_PADRON.check_padron( form.cleaned_data["verificacion"], form.data["first_name"], form.data["last_name"] ) if verificacion_error: logger.error( "%s - check_padron %s ('%s', '%s', '%s')" % ( request.META.get("REMOTE_ADDR"), log_message, form.cleaned_data["verificacion"], form.data["first_name"], form.data["last_name"], ) ) form.errors["verificacion"] = [verificacion_error] else: logger.info( "%s - check_padron %s ('%s', '%s', '%s')" % ( request.META.get("REMOTE_ADDR"), log_message, form.cleaned_data["verificacion"], form.data["first_name"], form.data["last_name"], ) ) activation_email = form.cleaned_data["email"] send_email = True if len(form.errors) == 0: # Register new user new_user = RegistrationProfile.objects.create_inactive_user( username=form.cleaned_data["username"], password=form.cleaned_data["password"], first_name=form.cleaned_data["first_name"], last_name=form.cleaned_data["last_name"], email=activation_email, send_email=send_email, ) logger.info( "%s - new_user ('%s', '%s')" % (request.META.get("REMOTE_ADDR"), new_user.username, new_user.email) ) if form.is_account(): # Save user's email. new_user.email = form.cleaned_data["email"] new_user.save() from django.core.mail import send_mail current_site = Site.objects.get_current() subject = _(u"[%s] New user" % current_site.name) message = render_to_string( "registration/new_user_email.html", { "new_user": form.cleaned_data, "site_url": "http://%s/" % current_site.domain, "site_name": current_site.name, }, ) send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [a[1] for a in settings.MANAGERS]) if send_email: settings.CHECK_PADRON.save_user( form.cleaned_data["verificacion"], form.data["first_name"], form.data["last_name"] ) return render_to_response( "registration/registration_complete.html", {"send_email": send_email, "activation_email": activation_email}, context_instance=RequestContext(request), ) """ request_auth = form.cleaned_data['request_auth'] return render_to_response('registration_complete.html', { 'send_email': send_email }, context_instance=RequestContext(request)) return HttpResponseRedirect(success_url) """ else: form = form_class() return render_to_response(template_name, {"form": form}, context_instance=RequestContext(request))