parent
bda826a60c
commit
0298dfcbdb
80 changed files with 418 additions and 788 deletions
@ -1,34 +1,182 @@ |
|||||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||||
from django.contrib import admin |
from django.shortcuts import render_to_response |
||||||
from django.contrib.auth.models import Group |
from django.http import HttpResponseRedirect, HttpResponse |
||||||
from django.contrib.auth.admin import UserAdmin |
from django.template import RequestContext |
||||||
|
from django.core.context_processors import csrf |
||||||
|
from django.contrib.auth.decorators import login_required |
||||||
|
import random |
||||||
|
from django.utils.translation import ugettext as _ |
||||||
|
#models and forms |
||||||
from models import User |
from models import User |
||||||
from forms import UserCreationForm, UserChangeForm |
from forms import UserForm, UserCreationForm, ChangePasswordForm, EmailAnnouncementForm |
||||||
|
#custom views |
||||||
|
from functions.custom_views import objects_list |
||||||
|
|
||||||
|
from hashlib import md5 |
||||||
|
import json |
||||||
|
|
||||||
|
|
||||||
|
@login_required |
||||||
|
def profile(request): |
||||||
|
args = {'change_password_form': ChangePasswordForm(), |
||||||
|
'email_announcement_form': EmailAnnouncementForm()} |
||||||
|
args.update(csrf(request)) |
||||||
|
return render_to_response('profile.html', args, context_instance=RequestContext(request)) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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('/admin/accounts/all') |
||||||
|
|
||||||
|
if request.POST: |
||||||
|
form = UserForm(request.POST, instance=user) |
||||||
|
if form.is_valid(): |
||||||
|
form.save() |
||||||
|
return HttpResponseRedirect('/admin/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('/admin/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('/admin/accounts/all') |
||||||
|
|
||||||
|
else: |
||||||
|
form = UserCreationForm() |
||||||
|
|
||||||
|
args = {} |
||||||
|
args.update(csrf(request)) |
||||||
|
args['form'] = form |
||||||
|
|
||||||
|
return render_to_response('create_admin.html', args) |
||||||
|
|
||||||
|
from django.core.mail import EmailMessage |
||||||
|
|
||||||
|
|
||||||
|
def registration(request): |
||||||
|
if request.POST: |
||||||
|
form = UserCreationForm(request.POST) |
||||||
|
if form.is_valid(): |
||||||
|
user = form.save() |
||||||
|
email = EmailMessage('Subject', 'Body', to=['%s'%user.email]) |
||||||
|
email.send() |
||||||
|
return HttpResponseRedirect('/admin/accounts/registration') |
||||||
|
else: |
||||||
|
form = UserCreationForm() |
||||||
|
|
||||||
|
args = {} |
||||||
|
args.update(csrf(request)) |
||||||
|
|
||||||
|
args['form'] = form |
||||||
|
|
||||||
class UserAdmin(UserAdmin): |
return render_to_response('registration.html', args) |
||||||
|
|
||||||
form = UserChangeForm |
def generatePassword(): |
||||||
add_form = UserCreationForm |
""" |
||||||
|
generate random password from 8 symbols |
||||||
|
""" |
||||||
|
SYMBOLS = [',', '.', '?', '!', '-', '+', '1', '2', '3', '4', '5', '6', '7', '8', |
||||||
|
'9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', |
||||||
|
'm', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', |
||||||
|
'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', |
||||||
|
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '#'] |
||||||
|
PASSWORD_LENGTH = 8 |
||||||
|
newPassword = [] |
||||||
|
for i in range(PASSWORD_LENGTH): |
||||||
|
newPassword.append(SYMBOLS[random.randrange(0, len(SYMBOLS))]) |
||||||
|
return ''.join(newPassword) |
||||||
|
|
||||||
list_display = ('email', 'first_name', 'last_name', 'is_admin',) |
from django.conf import settings |
||||||
list_filter = ('is_admin',) |
|
||||||
|
|
||||||
fieldsets = ( |
def reset_password_email(request): |
||||||
(None, {'fields': ('email', 'first_name', 'last_name', 'password')}), |
""" |
||||||
(None, {'fields': ('url', 'country', 'city', 'position', |
generate random password |
||||||
'about', 'phone', 'avatar', 'web_page', |
set this password to user and send on email |
||||||
'social', 'title', 'descriptions', 'keywords', |
""" |
||||||
'is_admin', 'is_active')}), |
if request.GET: |
||||||
|
user = User.objects.get(email=request.GET['email']) |
||||||
|
new_pass = generatePassword() |
||||||
|
user.email_user('Reset password', 'Your new password: "%s" '%new_pass, settings.DEFAULT_FROM_EMAIL, ) |
||||||
|
user.set_password(u'%s'%new_pass) |
||||||
|
user.save() |
||||||
|
return HttpResponse('success') |
||||||
|
|
||||||
) |
return HttpResponse('error') |
||||||
add_fieldsets = ( |
|
||||||
(None, {'classes': ('wide',), 'fields': ('email','first_name', 'last_name', 'password1', 'password2')}), |
|
||||||
) |
|
||||||
ordering = ('email',) |
|
||||||
filter_horizontal = () |
|
||||||
|
|
||||||
admin.site.register(User, UserAdmin) |
@login_required |
||||||
admin.site.unregister(Group) |
def change_password(request): |
||||||
|
""" |
||||||
|
Change current user password if new password is valid |
||||||
|
""" |
||||||
|
success = {'success': False} |
||||||
|
if request.POST: |
||||||
|
form = ChangePasswordForm(request.POST) |
||||||
|
if form.is_valid(): |
||||||
|
user = request.user |
||||||
|
if(user.check_password(form.cleaned_data.get('old_password'))): |
||||||
|
#user.set_password(form.cleaned_data.get('new_password')) |
||||||
|
#user.save() |
||||||
|
success['success'] = True |
||||||
|
success['message'] = _(u'Пароль именен') |
||||||
|
return HttpResponse(json.dumps(success), content_type='application/json') |
||||||
|
else: |
||||||
|
errors = {'errors': [_(u'Не правильный пароль')]} |
||||||
|
success.update(errors) |
||||||
|
return HttpResponse(json.dumps(success), content_type='application/json') |
||||||
|
else: |
||||||
|
errors = [err[0] for err in form.errors.values()] |
||||||
|
errors = {'errors': errors} |
||||||
|
success.update(errors) |
||||||
|
return HttpResponse(json.dumps(success), content_type='application/json') |
||||||
|
else: |
||||||
|
return HttpResponse(json.dumps(success), content_type='application/json') |
||||||
|
|||||||
@ -0,0 +1,12 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.conf.urls import patterns, url |
||||||
|
|
||||||
|
urlpatterns = patterns('', |
||||||
|
url(r'^registration/$', 'accounts.admin.registration'), |
||||||
|
url(r'^create_admin/$', 'accounts.admin.create_admin'), |
||||||
|
url(r'^create_md5user/$', 'accounts.admin.create_md5'), |
||||||
|
url(r'^change/(.*)/$', 'accounts.admin.user_change'), |
||||||
|
# url(r'^change/(?P<user_id>\d+).*/$', 'accounts.views.user_change'), |
||||||
|
url(r'^all/$', 'accounts.admin.user_all'), |
||||||
|
url(r'^reset_password_email/$', 'accounts.admin.reset_password_email'), |
||||||
|
) |
||||||
@ -0,0 +1 @@ |
|||||||
|
|
||||||
@ -1,15 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.conf.urls import patterns, include, url |
|
||||||
from django.contrib.auth.views import login, logout |
|
||||||
|
|
||||||
urlpatterns = patterns('', |
|
||||||
url(r'^login_admin/', login, {'template_name': 'admin/login.html' }), |
|
||||||
url(r'^logout_admin', logout, {'next_page': '/admin/accounts/login_admin/'}), |
|
||||||
url(r'^registration/$', 'accounts.views.registration'), |
|
||||||
url(r'^create_admin/$', 'accounts.views.create_admin'), |
|
||||||
url(r'^create_md5user/$', 'accounts.views.create_md5'), |
|
||||||
url(r'^change/(.*)/$', 'accounts.views.user_change'), |
|
||||||
# url(r'^change/(?P<user_id>\d+).*/$', 'accounts.views.user_change'), |
|
||||||
url(r'^all/$', 'accounts.views.user_all'), |
|
||||||
url(r'^reset_password_email/$', 'accounts.views.reset_password_email'), |
|
||||||
) |
|
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from django.contrib import admin |
|
||||||
from models import Article |
|
||||||
|
|
||||||
class ArticleAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Article, ArticleAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Article |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Article) |
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from django.contrib import admin |
|
||||||
from models import City |
|
||||||
|
|
||||||
class CityAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(City, CityAdmin) |
|
||||||
@ -0,0 +1,8 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import City |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=City) |
||||||
|
|
||||||
|
|
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import Company |
|
||||||
|
|
||||||
class CompanyAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Company, CompanyAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Company |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Company) |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Conference |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Conference) |
||||||
@ -1 +1,9 @@ |
|||||||
# -*- coding: utf-8 -*- |
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
from models import Country |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Country) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from models import Language, Currency, Iata |
|
||||||
|
|
||||||
admin.site.register(Language) |
|
||||||
admin.site.register(Currency) |
|
||||||
admin.site.register(Iata) |
|
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import Exposition |
|
||||||
|
|
||||||
class ExpositionAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Exposition, ExpositionAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Exposition |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Exposition) |
||||||
@ -1,6 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.conf.urls import patterns, url |
|
||||||
|
|
||||||
urlpatterns = patterns('', |
|
||||||
|
|
||||||
) |
|
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import News |
|
||||||
|
|
||||||
class NewsAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(News, NewsAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import News |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=News) |
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import Organiser |
|
||||||
|
|
||||||
class OrganiserAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Organiser, OrganiserAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Organiser |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Organiser) |
||||||
@ -1,10 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import PlaceConference |
|
||||||
|
|
||||||
class PlaceConferenceAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(PlaceConference, PlaceConferenceAdmin) |
|
||||||
|
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import PlaceConference |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=PlaceConference) |
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import PlaceExposition |
|
||||||
|
|
||||||
class PlaceExpositionAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(PlaceExposition, PlaceExpositionAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import PlaceExposition |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=PlaceExposition) |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Seminar |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Seminar) |
||||||
|
|
||||||
|
|
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import Service |
|
||||||
|
|
||||||
class ServiceAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Service, ServiceAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Service |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Service) |
||||||
@ -1 +0,0 @@ |
|||||||
# Create your views here. |
|
||||||
@ -1,19 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from django.contrib import admin |
|
||||||
from models import Tag, Theme |
|
||||||
from bitfield import BitField |
|
||||||
from bitfield.forms import BitFieldCheckboxSelectMultiple |
|
||||||
|
|
||||||
|
|
||||||
class TagAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
class ThemeAdmin(TranslatableAdmin): |
|
||||||
formfield_overrides = { |
|
||||||
BitField: {'widget': BitFieldCheckboxSelectMultiple}, |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(Tag, TagAdmin) |
|
||||||
admin.site.register(Theme, ThemeAdmin) |
|
||||||
@ -0,0 +1,9 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Theme, Tag |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Theme) |
||||||
|
post_save.connect(post_save_handler, sender=Tag) |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Translator |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Translator) |
||||||
@ -1,9 +0,0 @@ |
|||||||
# -*- coding: utf-8 -*- |
|
||||||
from django.contrib import admin |
|
||||||
from hvad.admin import TranslatableAdmin |
|
||||||
from models import Webinar |
|
||||||
|
|
||||||
class WebinarAdmin(TranslatableAdmin): |
|
||||||
pass |
|
||||||
|
|
||||||
admin.site.register(Webinar, WebinarAdmin) |
|
||||||
@ -0,0 +1,6 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
from django.db.models.signals import post_save |
||||||
|
from models import Webinar |
||||||
|
from functions.signal_handlers import post_save_handler |
||||||
|
|
||||||
|
post_save.connect(post_save_handler, sender=Webinar) |
||||||
Loading…
Reference in new issue