# -*- coding: utf-8 -*- from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.core.context_processors import csrf from django.contrib.auth.decorators import login_required #models and forms from models import User from forms import UserForm, UserCreationForm #custom views from functions.custom_views import objects_list from hashlib import md5 def user_all(request): """ Return list of all users with pagination """ return objects_list(request, User, 'user_all.html') def user_change(request, url): """ Return form of user and post it on the server. If form is posted redirect on the page of all users. """ user = User.objects.safe_get(id=url) # try get user by url if doesnt work by id if user is None: user = User.objects.safe_get(url=url) #redirect to list of all users if cannot find user if user is None: return HttpResponseRedirect('/accounts/all') if request.POST: form = UserForm(request.POST, instance=user) if form.is_valid(): form.save() return HttpResponseRedirect('/accounts/all') else: form = UserForm(instance=user) args = {} args.update(csrf(request)) args['form'] = form return render_to_response('user_change.html', args) def create_admin(request): if request.POST: form = UserCreationForm(request.POST) if form.is_valid(): user = form.save(commit=False) user.is_admin = False user.save() return HttpResponseRedirect('/accounts/all') else: form = UserCreationForm() args = {} args.update(csrf(request)) args['form'] = form return render_to_response('create_admin.html', args) def create_md5(request): if request.POST: form = UserCreationForm(request.POST) if form.is_valid(): user = User() user.email = request.POST['email'] user.first_name = request.POST['first_name'] user.last_name = request.POST['last_name'] user.password = md5(request.POST['password2']).hexdigest() user.is_admin = True user.save() return HttpResponseRedirect('/accounts/all') else: form = UserCreationForm() args = {} args.update(csrf(request)) args['form'] = form return render_to_response('create_admin.html', args) def registration(request): if request.POST: form = UserCreationForm(request.POST) if form.is_valid(): form.save() return HttpResponseRedirect('/accounts/registration') else: form = UserCreationForm() args = {} args.update(csrf(request)) args['form'] = form return render_to_response('registration.html', args) def reset_password_email(request): """ """ if request.GET: user = User.objects.get(email=request.GET['email']) user.set_password(u'qwerty') user.save() return HttpResponse('success') else: return HttpResponse('error')