diff --git a/accounts/forms.py b/accounts/forms.py index 4008c976..f6c9da49 100644 --- a/accounts/forms.py +++ b/accounts/forms.py @@ -56,6 +56,7 @@ class UserChangeForm(forms.ModelForm): return self.initial['password'] class UserForm(forms.ModelForm): + email = forms.EmailField(widget=forms.TextInput(attrs={'disabled' : True})) country = forms.ModelChoiceField(label='Страна', queryset=Country.objects.all(), empty_label=None, required=False) city = forms.ModelChoiceField(label='Город', queryset=City.objects.all(), empty_label='', required=False) company = forms.ModelChoiceField(label='Компания', queryset=Company.objects.all(), empty_label='', required=False) diff --git a/accounts/urls.py b/accounts/urls.py index a867aad8..3e670b7a 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -4,7 +4,7 @@ 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': '/accounts/login_admin/'}), + 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'), diff --git a/accounts/views.py b/accounts/views.py index a3e5746e..2a368102 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -3,6 +3,7 @@ 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 +import random #models and forms from models import User from forms import UserForm, UserCreationForm @@ -29,13 +30,13 @@ def user_change(request, url): 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') + return HttpResponseRedirect('/admin/accounts/all') if request.POST: form = UserForm(request.POST, instance=user) if form.is_valid(): form.save() - return HttpResponseRedirect('/accounts/all') + return HttpResponseRedirect('/admin/accounts/all') else: form = UserForm(instance=user) @@ -53,7 +54,7 @@ def create_admin(request): user = form.save(commit=False) user.is_admin = False user.save() - return HttpResponseRedirect('/accounts/all') + return HttpResponseRedirect('/admin/accounts/all') else: form = UserCreationForm() @@ -76,7 +77,7 @@ def create_md5(request): user.is_admin = True user.save() - return HttpResponseRedirect('/accounts/all') + return HttpResponseRedirect('/admin/accounts/all') else: form = UserCreationForm() @@ -97,7 +98,7 @@ def registration(request): user = form.save() email = EmailMessage('Subject', 'Body', to=['%s'%user.email]) email.send() - return HttpResponseRedirect('/accounts/registration') + return HttpResponseRedirect('/admin/accounts/registration') else: form = UserCreationForm() @@ -108,14 +109,90 @@ def registration(request): return render_to_response('registration.html', args) -def reset_password_email(request): +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) + +from django.conf import settings +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']) - user.set_password(u'qwerty') + 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') +#-------------------------------------------------------------- +''' +from django.views.decorators.debug import sensitive_post_parameters +from django.views.decorators.cache import never_cache +from django.views.decorators.csrf import csrf_protect +from django.utils.http import base36_to_int, is_safe_url +from django.shortcuts import resolve_url +from django.conf import settings +from django.conf.global_settings import LOGIN_REDIRECT_URL +from django.contrib.auth.forms import AuthenticationForm + +@sensitive_post_parameters() +@csrf_protect +@never_cache +def login(request, template_name='registration/login.html', + redirect_field_name=REDIRECT_FIELD_NAME, + authentication_form=AuthenticationForm, + current_app=None, extra_context=None): + """ + Displays the login form and handles the login action. + """ + redirect_to = request.REQUEST.get(redirect_field_name, '') + + if request.method == "POST": + form = authentication_form(data=request.POST) + if form.is_valid(): + + # Ensure the user-originating redirection url is safe. + if not is_safe_url(url=redirect_to, host=request.get_host()): + redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) + + # Okay, security check complete. Log the user in. + auth_login(request, form.get_user()) + + if request.session.test_cookie_worked(): + request.session.delete_test_cookie() + + return HttpResponseRedirect(redirect_to) else: - return HttpResponse('error') \ No newline at end of file + form = authentication_form(request) + + request.session.set_test_cookie() + + current_site = get_current_site(request) + + context = { + 'form': form, + redirect_field_name: redirect_to, + 'site': current_site, + 'site_name': current_site.name, + } + if extra_context is not None: + context.update(extra_context) + return TemplateResponse(request, template_name, context, + current_app=current_app) +''' \ No newline at end of file diff --git a/article/views.py b/article/views.py index 43f3a24e..a82470ef 100644 --- a/article/views.py +++ b/article/views.py @@ -31,12 +31,12 @@ def article_add(request): init_data = {'author':request.user.organiser} #choices field which will be filled by ajax choices = {'tag': Tag} - return add_object_with_file(request, ArticleForm, 'article_add.html', '/article/all', + return add_object_with_file(request, ArticleForm, 'article_add.html', '/admin/article/all', choices, init_data) def article_delete(request, url): - return delete_object(request, Article, ArticleDeleteForm, url, '/article/all') + return delete_object(request, Article, ArticleDeleteForm, url, '/admin/article/all') @login_required @@ -52,7 +52,7 @@ def article_change(request, url): file_form = FileModelForm(initial={'model': 'article.Article'}) article_id = getattr(article, 'id') except: - return HttpResponseRedirect('/article/all') + return HttpResponseRedirect('/admin/article/all') if request.POST: form = ArticleForm(request.POST) @@ -61,7 +61,7 @@ def article_change(request, url): if form.is_valid(): form.save(getattr(article, 'id')) - return HttpResponseRedirect('/article/all') + return HttpResponseRedirect('/admin/article/all') else: data = {} #fill form with data from database diff --git a/city/views.py b/city/views.py index 2293396c..a22feb49 100644 --- a/city/views.py +++ b/city/views.py @@ -26,10 +26,10 @@ def city_add(request): Return form of city and post it on the server. If form is posted redirect on the page of all cities. """ - return add_object_with_file(request, CityForm, 'city_add.html', '/city/all') + return add_object_with_file(request, CityForm, 'city_add.html', '/admin/city/all') def city_delete(request, url): - return delete_object(request, City, CityDeleteForm, url, '/city/all/') + return delete_object(request, City, CityDeleteForm, url, '/admin/city/all/') @login_required @@ -45,13 +45,13 @@ def city_change(request, url): city_id = getattr(c, 'id') file_form = FileModelForm(initial={'model': 'city.City'}) except: - return HttpResponseRedirect('/city/all') + return HttpResponseRedirect('/admin/city/all') if request.POST: form = CityForm(request.POST) if form.is_valid(): form.save(city_id) - return HttpResponseRedirect('/city/all') + return HttpResponseRedirect('/admin/city/all') else: #fill form with data from database data = {'population' : c.population, 'phone_code' : c.phone_code, diff --git a/company/views.py b/company/views.py index d0bad0f6..ad181a14 100644 --- a/company/views.py +++ b/company/views.py @@ -28,11 +28,11 @@ def company_add(request): Return form of company and post it on the server. If form is posted redirect on the page of all companies. """ - return add_object_with_file(request, CompanyForm, 'company_add.html', '/company/all/', + return add_object_with_file(request, CompanyForm, 'company_add.html', '/admin/company/all/', {'city': City, 'tag': Tag}) def company_delete(request, url): - return delete_object(request, Company, CompanyDeleteForm, url, '/company/all') + return delete_object(request, Company, CompanyDeleteForm, url, '/admin/company/all') @login_required @@ -48,7 +48,7 @@ def company_change(request, url): company = Company.objects.safe_get(id=url) #redirect to list of all companies if cannot find user if company is None: - return HttpResponseRedirect('/company/all/') + return HttpResponseRedirect('/admin/company/all/') company_id = getattr(company, 'id') file_form = FileModelForm(initial={'model': 'company.Company'}) @@ -61,7 +61,7 @@ def company_change(request, url): if form.is_valid(): form.save(company_id) - return HttpResponseRedirect('/company/all/') + return HttpResponseRedirect('/admin/company/all/') else: #fill form with data from database data = {'url':company.url, 'staff_number':company.staff_number, 'address': company.address, diff --git a/conference/views.py b/conference/views.py index 68022754..f9e9fd2a 100644 --- a/conference/views.py +++ b/conference/views.py @@ -50,7 +50,7 @@ def conference_add(request): if form.is_valid(): form.save() - return HttpResponseRedirect('/conference/all/') + return HttpResponseRedirect('/admin/conference/all/') else: form = ConferenceCreateForm(initial={'key': key}) @@ -66,7 +66,7 @@ def conference_add(request): def conference_delete(request, url): - return delete_object(request, Conference, ConferenceDeleteForm, url, '/conference/all') + return delete_object(request, Conference, ConferenceDeleteForm, url, '/admin/conference/all') @login_required @@ -82,7 +82,7 @@ def conference_change(request, url): conference = Conference.objects.get(url=url) file_form = FileModelForm(initial={'model': 'city.City'}) except: - return HttpResponseRedirect('/conference/all/') + return HttpResponseRedirect('/admin/conference/all/') if request.POST: form = ConferenceChangeForm(request.POST) @@ -92,7 +92,7 @@ def conference_change(request, url): if form.is_valid(): form.save(getattr(conference, 'id')) - return HttpResponseRedirect('/conference/all/') + return HttpResponseRedirect('/admin/conference/all/') else: #fill form with data from database data = {'web_page':conference.web_page, 'foundation_year': conference.foundation_year, diff --git a/country/forms.py b/country/forms.py index b7d43b91..7d42b910 100644 --- a/country/forms.py +++ b/country/forms.py @@ -81,7 +81,7 @@ class CountryForm(forms.Form): # first iteration is a default lang so it required fields required = True if lid == 0 else False self.fields['name_%s' % code] = forms.CharField(label='Название', required=required) - self.fields['description_%s' % code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget)#with saving form + self.fields['description_%s' % code] = forms.CharField(label='Описание', required=False, widget=CKEditorWidget) self.fields['transport_%s' % code] = forms.CharField(label='Транспорт', required=False, widget=CKEditorWidget) #vis inf self.fields['rules_%s' % code] = forms.CharField(label='Правила въезда', required=False, widget=CKEditorWidget()) diff --git a/country/views.py b/country/views.py index 4c685af7..90b9bca5 100644 --- a/country/views.py +++ b/country/views.py @@ -29,11 +29,11 @@ def country_add(request): """ Return form of country and file and post it on the server. """ - return add_object_with_file(request, CountryForm, 'country_add.html', '/country/all/') + return add_object_with_file(request, CountryForm, 'country_add.html', '/admin/country/all/') def country_delete(request, url): - return delete_object(request, Country, CountryDeleteForm, url, '/country/all/') + return delete_object(request, Country, CountryDeleteForm, url, '/admin/country/all/') @login_required @@ -53,7 +53,7 @@ def country_change(request, url): #initial hidden input for checking model of object file_form = FileModelForm(initial={'model': 'country.Country'}) except: - return HttpResponseRedirect('/country/all') + return HttpResponseRedirect('/admin/country/all') if request.POST: #country_id sending for saving capital field in __init__ @@ -61,7 +61,7 @@ def country_change(request, url): if form.is_valid(): form.save(country_id) - return HttpResponseRedirect('/country/all/') + return HttpResponseRedirect('/admin/country/all/') else: #fill form with data from database data = {'population' : c.population, 'teritory' : c.teritory, #data from NOT translated fields diff --git a/directories/views.py b/directories/views.py index ca3b1bb7..29a0bc6a 100644 --- a/directories/views.py +++ b/directories/views.py @@ -8,11 +8,11 @@ def language_add(request): """ Return LanguageForm and post it on the server """ - return add_object(request, LanguageForm, 'directories_add.html', '/language/add') + return add_object(request, LanguageForm, 'directories_add.html', '/admin/language/add') def currency_add(request): """ Return CurrencyForm and post it on the server """ - return add_object(request, CurrencyForm, 'directories_add.html', '/currency/add') \ No newline at end of file + return add_object(request, CurrencyForm, 'directories_add.html', '/admin/currency/add') \ No newline at end of file diff --git a/exposition/views.py b/exposition/views.py index 516b8bd3..834d8d41 100644 --- a/exposition/views.py +++ b/exposition/views.py @@ -50,7 +50,7 @@ def exposition_add(request): if form.is_valid(): form.save() - return HttpResponseRedirect('/exposition/all/') + return HttpResponseRedirect('/admin/exposition/all/') else: form = ExpositionCreateForm(initial={'key': key}) @@ -65,7 +65,7 @@ def exposition_add(request): def exposition_delete(request, url): - return delete_object(request, Exposition, ExpositionDeleteForm, url, '/exposition/all') + return delete_object(request, Exposition, ExpositionDeleteForm, url, '/admin/exposition/all') @login_required @@ -81,7 +81,7 @@ def exposition_change(request, url): exposition = Exposition.objects.get(url=url) file_form = FileModelForm(initial={'model': 'exposition.Exposition'}) except: - return HttpResponseRedirect('/exposition/all/') + return HttpResponseRedirect('/admin/exposition/all/') if request.POST: form = ExpositionChangeForm(request.POST) @@ -91,7 +91,7 @@ def exposition_change(request, url): if form.is_valid(): form.save(getattr(exposition, 'id')) - return HttpResponseRedirect('/exposition/all/') + return HttpResponseRedirect('/admin/exposition/all/') else: #fill form with data from database data = {'web_page':exposition.web_page, 'foundation_year': exposition.foundation_year, diff --git a/functions/custom_views.py b/functions/custom_views.py index 5a084825..a90158dd 100644 --- a/functions/custom_views.py +++ b/functions/custom_views.py @@ -4,6 +4,7 @@ from django.http import HttpResponseRedirect from django.core.context_processors import csrf from django.conf import settings from django.contrib.auth.decorators import login_required +from django.contrib.admin.views.decorators import staff_member_required from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage from django.db.models.deletion import ProtectedError #forms and models @@ -15,7 +16,7 @@ import random -@login_required +@staff_member_required def objects_list(request, Model, template, item_per_page=10): """ Return template with all objects of model Model @@ -145,7 +146,7 @@ def delete_object(request, Model, Form, url, prev_page,): object.delete() return HttpResponseRedirect(prev_page) except ProtectedError: - msg = 'Удаления %s требует удаления связаных объектов'%object + msg = u'Удаления %s требует удаления связаных объектов'%object return render_to_response('delete.html', {'msg':msg, 'prev_page':prev_page}) else: diff --git a/news/views.py b/news/views.py index ecf9f1fc..00456332 100644 --- a/news/views.py +++ b/news/views.py @@ -54,7 +54,7 @@ def news_add(request): if form.is_valid(): form.save() - return HttpResponseRedirect('/news/all/') + return HttpResponseRedirect('/admin/news/all/') else: form = NewsForm(initial={'key': key}) @@ -81,7 +81,7 @@ def news_change(request, url): news_id = getattr(news, 'id') file_form = FileModelForm(initial={'model': 'news.News'}) except: - return HttpResponseRedirect('/news/all') + return HttpResponseRedirect('/admin/news/all') if request.POST: form = NewsForm(request.POST) @@ -95,7 +95,7 @@ def news_change(request, url): if form.is_valid(): form.save(news_id) - return HttpResponseRedirect('/news/all') + return HttpResponseRedirect('/admin/news/all') else: #fill form with data from database data = {'date':news.date, 'type':news.type, 'paid': news.paid} diff --git a/organiser/views.py b/organiser/views.py index 12e6ee5a..bd68d759 100644 --- a/organiser/views.py +++ b/organiser/views.py @@ -33,7 +33,7 @@ def organiser_add(request): Return form of organiser and post it on the server. If form is posted redirect on the page of all organiser. """ - return add_object_with_file(request, OrganiserForm, 'organiser_add.html', '/organiser/all/', + return add_object_with_file(request, OrganiserForm, 'organiser_add.html', '/admin/organiser/all/', choices={'city': City, 'tag': Tag}) @@ -49,7 +49,7 @@ def organiser_change(request, url): organiser = Organiser.objects.safe_get(id=url) #redirect to list of all organisers if cannot find organiser if organiser is None: - return HttpResponseRedirect('/organiser/all/') + return HttpResponseRedirect('/admin/organiser/all/') #get id organiser_id = getattr(organiser, 'id') #init FileModelForm @@ -63,7 +63,7 @@ def organiser_change(request, url): if form.is_valid(): form.save(id=organiser_id) - return HttpResponseRedirect('/organiser/all/') + return HttpResponseRedirect('/admin/organiser/all/') else: #fill form with data from database data = {'staff_number':organiser.staff_number, 'address': organiser.address, diff --git a/place_conference/views.py b/place_conference/views.py index 12d83898..a6462138 100644 --- a/place_conference/views.py +++ b/place_conference/views.py @@ -62,7 +62,7 @@ def conference_add(request): hall.place_conference = place_conference hall.save() - return HttpResponseRedirect ('/place_conference/all') + return HttpResponseRedirect ('/admin/place_conference/all') else: form = ConferenceForm(initial={'key': key}) formset = HallFormSet() @@ -80,7 +80,7 @@ def conference_add(request): def conference_delete(request, url): - return delete_object(request, PlaceConference, PlaceConferenceFormDelete, url, '/place_conference/all') + return delete_object(request, PlaceConference, PlaceConferenceFormDelete, url, '/admin/place_conference/all') @login_required @@ -96,7 +96,7 @@ def conference_change(request, url): place = PlaceConference.objects.get(url=url) file_form = FileModelForm(initial={'model': 'place_conference.PlaceConference'}) except: - return HttpResponseRedirect('/place_conference/all') + return HttpResponseRedirect('/admin/place_conference/all') if request.POST: #formset of HallForm @@ -117,7 +117,7 @@ def conference_change(request, url): hall.place_conference = place_conference hall.save() - return HttpResponseRedirect('/place_conference/all') + return HttpResponseRedirect('/admin/place_conference/all') else: #initial HallFormSet HallFormSet = modelformset_factory(Hall, form=HallForm, exclude=('place_conference',)) diff --git a/place_exposition/views.py b/place_exposition/views.py index 07d91c30..a26b1782 100644 --- a/place_exposition/views.py +++ b/place_exposition/views.py @@ -61,7 +61,7 @@ def exposition_add(request): hall.place_exposition = place_exposition hall.save() - return HttpResponseRedirect('/place_exposition/all') + return HttpResponseRedirect('/admin/place_exposition/all') else: form = ExpositionForm(initial={'key': key}) formset = HallFormSet() @@ -79,7 +79,7 @@ def exposition_add(request): def exposition_delete(request, url): - return delete_object(request, PlaceExposition, PlaceExpositionFormDelete, url, '/place_exposition/all') + return delete_object(request, PlaceExposition, PlaceExpositionFormDelete, url, '/admin/place_exposition/all') @login_required @@ -97,7 +97,7 @@ def exposition_change(request, url): exposition_id = getattr(place, 'id') file_form = FileModelForm(initial={'model': 'place_exposition.PlaceExposition'}) except: - return HttpResponseRedirect('/place_exposition/all') + return HttpResponseRedirect('/admin/place_exposition/all') if request.POST: #formset of HallForm @@ -118,7 +118,7 @@ def exposition_change(request, url): hall.place_exposition = place_exposition hall.save() - return HttpResponseRedirect('/place_exposition/all') + return HttpResponseRedirect('/admin/place_exposition/all') else: #initial HallFormSet HallFormSet = modelformset_factory(Hall, form=HallForm, exclude=('place_exposition',)) diff --git a/proj/settings.py b/proj/settings.py index 72631fb3..9ba31674 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -165,7 +165,10 @@ TEMPLATE_DIRS = ( AUTH_USER_MODEL = 'accounts.User' #AUTH_PROFILE_MODULE = 'accounts.UserProfile' -LOGIN_REDIRECT_URL = '' + +#for admin. for project will be another +LOGIN_URL = '/admin/accounts/login_admin' +LOGIN_REDIRECT_URL = '/admin' #registration info ACCOUNT_ACTIVATION_DAYS=2 diff --git a/proj/urls.py b/proj/urls.py index c9d37aa4..81a8b8f1 100644 --- a/proj/urls.py +++ b/proj/urls.py @@ -6,13 +6,11 @@ from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', + #uncomment to enable django admin + #url(r'^admin/', include(admin.site.urls)), url(r'^$', 'proj.views.home', name='home'), url(r'^admin/', include('proj.admin_urls')), url(r'^accounts/', include('registration.backends.default.urls')), - - - #uncomment to enable django admin - #url(r'^admin/', include(admin.site.urls)), ) ''' urlpatterns = patterns('', diff --git a/proj/views.py b/proj/views.py index 3bb74bf1..4e049ead 100644 --- a/proj/views.py +++ b/proj/views.py @@ -17,7 +17,7 @@ from theme.models import Tag from django.shortcuts import get_object_or_404 from django.db.models.loading import get_model - +@login_required def home(request): return render_to_response('base.html') @@ -31,7 +31,7 @@ def settings(request): form = SettingsForm(request.POST) if form.is_valid(): form.save() - return HttpResponseRedirect('/country/all') + return HttpResponseRedirect('/admin') else: form = SettingsForm() diff --git a/seminar/views.py b/seminar/views.py index 67d02c41..f8725736 100644 --- a/seminar/views.py +++ b/seminar/views.py @@ -48,7 +48,7 @@ def seminar_add(request): if form.is_valid(): form.save() - return HttpResponseRedirect('/seminar/all') + return HttpResponseRedirect('/admin/seminar/all') else: form = SeminarCreateForm(initial={'key': key}) @@ -64,7 +64,7 @@ def seminar_add(request): def seminar_delete(request, url): - return delete_object(request, Seminar, SeminarDeleteForm, url, '/seminar/all') + return delete_object(request, Seminar, SeminarDeleteForm, url, '/admin/seminar/all') @login_required @@ -80,7 +80,7 @@ def seminar_change(request, url): seminar = Seminar.objects.get(url=url) file_form = FileModelForm(initial={'model': 'seminar.Seminar'}) except: - return HttpResponseRedirect('/seminar/all') + return HttpResponseRedirect('/admin/seminar/all') if request.POST: form = SeminarChangeForm(request.POST) @@ -92,7 +92,7 @@ def seminar_change(request, url): form.fields['city'].choices = [(item.id, item.name) for item in City.objects.filter(country=request.POST['country'])] if form.is_valid(): form.save(getattr(seminar, 'id')) - return HttpResponseRedirect('/seminar/all') + return HttpResponseRedirect('/admin/seminar/all') else: #fill form with data from database data = {'web_page':seminar.web_page, 'foundation_year': seminar.foundation_year, diff --git a/service/views.py b/service/views.py index 1a947292..b0284144 100644 --- a/service/views.py +++ b/service/views.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from django.shortcuts import render_to_response -from django.http import HttpResponseRedirect +from django.http import HttpResponseRedirect, HttpResponse from django.core.context_processors import csrf from django.conf import settings from django.contrib.auth.decorators import login_required @@ -20,7 +20,7 @@ def service_all(request): return objects_list(request, Service, 'service_all.html') def service_delete(request, url): - return delete_object(request, Service, ServiceDeleteForm, url, '/service/all') + return delete_object(request, Service, ServiceDeleteForm, url, '/admin/service/all') @login_required @@ -29,7 +29,7 @@ def service_change(request, url): service = Service.objects.get(url=url) service_id = getattr(service, 'id') except: - return HttpResponseRedirect('/service/all') + return HttpResponseRedirect('/admin/service/all') if request.POST: form = ServiceForm(request.POST) form.fields['city'].choices = [(item.id, item.name) for item in City.objects.all()] @@ -37,7 +37,7 @@ def service_change(request, url): if form.is_valid(): form.save(service_id) - return HttpResponseRedirect('/service/all') + return HttpResponseRedirect('/admin/service/all') else: data = {} try: @@ -85,7 +85,7 @@ def service_add(request): form = ServiceForm(request.POST) if form.is_valid(): form.save() - return HttpResponseRedirect('/service/all') + return HttpResponseRedirect('/admin/service/all') else: form = ServiceForm() @@ -102,9 +102,13 @@ def get_country(request): country_region = request.GET['region'] countries = Country.objects.filter(region=country_region) return render_to_response('checkbox_option.html', {'options': countries}) + else: + return HttpResponse('error') def get_city(request): if request.GET: country_id = request.GET['id'] cities = City.objects.filter(country=country_id) - return render_to_response('checkbox_option.html', {'options': cities}) \ No newline at end of file + return render_to_response('checkbox_option.html', {'options': cities}) + else: + return HttpResponse('error') diff --git a/static/custom_js/file_delete_ajax.js b/static/custom_js/file_delete_ajax.js index b8efc98c..df670996 100644 --- a/static/custom_js/file_delete_ajax.js +++ b/static/custom_js/file_delete_ajax.js @@ -1,6 +1,6 @@ $(document).ready(function(){ $('.delete_file').click(function(){ - var url = '/ajax_delete_file/'; + var url = '/admin/ajax_delete_file/'; $.get( url, {'id': $(this).attr("value")}, function(j){ $('#file_list').html(j); diff --git a/static/custom_js/file_post_ajax.js b/static/custom_js/file_post_ajax.js index 55e1d5ee..ea6305f4 100644 --- a/static/custom_js/file_post_ajax.js +++ b/static/custom_js/file_post_ajax.js @@ -5,10 +5,10 @@ $(document).ready(function(){ //check if country is new if ($('#obj_id').val() != '') { - var url = '/ajax_post_file/'+$('#obj_id').val()+'/'; + var url = '/admin/ajax_post_file/'+$('#obj_id').val()+'/'; } else { - var url = '/ajax_post_file/' + var url = '/admin/ajax_post_file/' } $.ajax({ diff --git a/static/custom_js/place_city_ajax.js b/static/custom_js/place_city_ajax.js index 25648fc4..716ff370 100644 --- a/static/custom_js/place_city_ajax.js +++ b/static/custom_js/place_city_ajax.js @@ -1,14 +1,14 @@ $(document).ready(function(){ $.get( - "/ajax_city/", {'id': $('#id_country').val()}, function(j){ + "/admin/ajax_city/", {'id': $('#id_country').val()}, function(j){ $('#id_city').html(j); //$('#id_city option :first').attr("selected", "selected"); }); $('#id_country').change(function(){ $.get( - "/ajax_city/", {'id': $(this).val()}, function(j){ + "/admin/ajax_city/", {'id': $(this).val()}, function(j){ $('#id_city').html(j); $('#id_city').attr('disabled', false); diff --git a/static/custom_js/select_tag.js b/static/custom_js/select_tag.js index 6ac83e47..c5f7b3b8 100644 --- a/static/custom_js/select_tag.js +++ b/static/custom_js/select_tag.js @@ -1,7 +1,7 @@ $(document).ready(function(){ $('#id_theme').change(function(){ $.get( - "/ajax_tag/", {'id': $(this).serialize()}, function(j){ + "/admin/ajax_tag/", {'id': $(this).serialize()}, function(j){ if (j!='error'){ $('#id_tag').html(j); $('#id_tag').attr('disabled', false); diff --git a/static/custom_js/service.js b/static/custom_js/service.js index 6533f3a1..382fa477 100644 --- a/static/custom_js/service.js +++ b/static/custom_js/service.js @@ -19,7 +19,7 @@ $(document).ready(function(){ var $this = $(this); if ($this.is(':checked')){ $.get( - "/service/get_city/", + "/admin/service/get_city/", {'id': $(this).val()}, function(j){ $this.parent().after(j); diff --git a/templates/admin/accounts/translator_change.html b/templates/admin/accounts/translator_change.html deleted file mode 100644 index e738d55b..00000000 --- a/templates/admin/accounts/translator_change.html +++ /dev/null @@ -1,75 +0,0 @@ -{% extends 'base.html' %} - - -{% block body %} -
- -{% endblock %} \ No newline at end of file diff --git a/templates/admin/accounts/translators.html b/templates/admin/accounts/translators.html deleted file mode 100644 index bb32209c..00000000 --- a/templates/admin/accounts/translators.html +++ /dev/null @@ -1,60 +0,0 @@ -{% extends 'base.html' %} - -{% block body %} -| id | -Полное имя | -Переводчик | -- | ||
|---|---|---|---|---|---|
| {{ item.id }} | -{{ item.email }} | -{{ item.get_full_name }} | - - {% if item.is_translator %} -Да | - {% else %} -- {% endif %} - | - - Изменить - - | -
Пароль успешно сброшен
+Неудача
+| id | -Сервис | -Компания | -Отзыв | -Оценка | -- |
|---|---|---|---|---|---|
| {{ item.id }} | -{{ item.service }} | -{{ item.company }} | -{{ item.comment }} | -{{ item.rating }} | -- - Изменить - - | -