parent
bda826a60c
commit
3180218544
80 changed files with 418 additions and 788 deletions
@ -1,34 +1,182 @@ |
||||
# -*- coding: utf-8 -*- |
||||
from django.contrib import admin |
||||
from django.contrib.auth.models import Group |
||||
from django.contrib.auth.admin import UserAdmin |
||||
|
||||
from django.shortcuts import render_to_response |
||||
from django.http import HttpResponseRedirect, HttpResponse |
||||
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 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 |
||||
add_form = UserCreationForm |
||||
def generatePassword(): |
||||
""" |
||||
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',) |
||||
list_filter = ('is_admin',) |
||||
from django.conf import settings |
||||
|
||||
fieldsets = ( |
||||
(None, {'fields': ('email', 'first_name', 'last_name', 'password')}), |
||||
(None, {'fields': ('url', 'country', 'city', 'position', |
||||
'about', 'phone', 'avatar', 'web_page', |
||||
'social', 'title', 'descriptions', 'keywords', |
||||
'is_admin', 'is_active')}), |
||||
def reset_password_email(request): |
||||
""" |
||||
generate random password |
||||
set this password to user and send on email |
||||
""" |
||||
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') |
||||
|
||||
) |
||||
add_fieldsets = ( |
||||
(None, {'classes': ('wide',), 'fields': ('email','first_name', 'last_name', 'password1', 'password2')}), |
||||
) |
||||
ordering = ('email',) |
||||
filter_horizontal = () |
||||
return HttpResponse('error') |
||||
|
||||
admin.site.register(User, UserAdmin) |
||||
admin.site.unregister(Group) |
||||
@login_required |
||||
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 -*- |
||||
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