diff --git a/accounts/admin.py b/accounts/admin.py index 9457de21..c57134a5 100644 --- a/accounts/admin.py +++ b/accounts/admin.py @@ -13,9 +13,14 @@ from django.utils.translation import ugettext as _ from models import User from forms import UserForm, UserCreationForm, ChangePasswordForm, EmailAnnouncementForm, UserFilterForm #custom views -from django.views.generic import UpdateView +from django.views.generic import UpdateView, DeleteView from functions.admin_views import AdminView, AdminListView, paginate_results + +class DeleteAccount(DeleteView): + model = User + success_url = '/admin/accounts/all/' + class UserListView(AdminListView): template_name = 'admin/accounts/user_list.html' form_class = UserFilterForm diff --git a/accounts/admin_urls.py b/accounts/admin_urls.py index 66e92a22..44034040 100644 --- a/accounts/admin_urls.py +++ b/accounts/admin_urls.py @@ -1,9 +1,11 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, url -from admin import UserListView, EditUser +from admin import UserListView, EditUser, DeleteAccount urlpatterns = patterns('', url(r'^change/(?P.*)/$', 'accounts.admin.user_change'), url(r'^all/$', UserListView.as_view()), url(r'^reset_password_email/$', 'accounts.admin.reset_password_email'), + url(r'^delete/(?P.*)/$', DeleteAccount.as_view(), name='remove_account'), + ) \ No newline at end of file diff --git a/accounts/urls.py b/accounts/urls.py index 4c0f3c0d..b6f6ce0f 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -11,7 +11,7 @@ urlpatterns = patterns('', url(r'^profile/settings/$', login_required(SettingsView.as_view()), name='accounts_settings'), url(r'^profile/calendar/remove/$', 'accounts.views.remove_from_calendar'), url(r'^profile/calendar/export/$', 'core.views.download_workbook'), - url(r'^profile/calendar/$', login_required(CalendarView.as_view())), + url(r'^profile/calendar/$', login_required(CalendarView.as_view()), name='account_calendar'), url(r'^profile/feed/page/(?P\d+)/$', Feed.as_view()), url(r'^profile/feed/$', login_required(Feed.as_view())), url(r'^inactive-user/$', 'registration.backends.default.views.inactive_user_message'), diff --git a/docs/documentation.docx b/docs/documentation.docx new file mode 100644 index 00000000..fabce23d Binary files /dev/null and b/docs/documentation.docx differ diff --git a/exposition/admin.py b/exposition/admin.py index 19b3d7f2..f694e6e8 100644 --- a/exposition/admin.py +++ b/exposition/admin.py @@ -268,7 +268,8 @@ class ExpositionView(AdminView): 'canceled': obj.canceled, 'moved': obj.moved, 'logo': obj.logo, 'visitors': obj.visitors, 'members': obj.members, 'audience':[item for item, bool in obj.audience if bool==True], - 'quality_label': [item for item, bool in obj.quality_label if bool==True]} + 'quality_label': [item for item, bool in obj.quality_label if bool==True], + 'place_alt': obj.place_alt} if obj.place: data['place'] = obj.place.id diff --git a/exposition/forms.py b/exposition/forms.py index b05ef8f7..f64f8411 100644 --- a/exposition/forms.py +++ b/exposition/forms.py @@ -53,6 +53,7 @@ class ExpositionCreateForm(forms.Form): choices=[(item.id, item.name) for item in Theme.objects.language().all()]) place = forms.ChoiceField(label=u'Место проведения', required=False, choices=places) + place_alt = forms.CharField(required=False, label=u'Альтернативное место') #creates select input with empty choices cause it will be filled with ajax city = forms.CharField(label=u'Город', widget=forms.HiddenInput()) tag = forms.CharField(label=u'Теги', widget=forms.HiddenInput(), required=False) @@ -223,6 +224,8 @@ class ExpositionCreateForm(forms.Form): else: exposition.place = None + exposition.place_alt = data['place_alt'] + # fill translated fields and save object fill_with_signal(Exposition, exposition, data) diff --git a/proj/settings.py b/proj/settings.py index ab5fc450..2c363212 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -145,7 +145,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( MIDDLEWARE_CLASSES = ( # 'django.middleware.cache.UpdateCacheMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.locale.LocaleMiddleware', + 'solid_i18n.middleware.SolidLocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', diff --git a/proj/urls.py b/proj/urls.py index 4fc72346..9cb0214d 100644 --- a/proj/urls.py +++ b/proj/urls.py @@ -5,6 +5,7 @@ from core.simple_index_view import AdvertisingView, AboutView from views import MainPageView from django.contrib.sitemaps import views import debug_toolbar +from solid_i18n.urls import solid_i18n_patterns from django.views.generic.base import TemplateView class Robot(TemplateView): @@ -30,20 +31,29 @@ handler404 = 'proj.views.error404' urlpatterns = patterns('', url(r'^acquire_email/$', 'registration.backends.default.views.acquire_email', name = 'acquire_email'), + url(r'^yandex_4c45d77eb3f781f8.html$', YandexCheck.as_view()), + url(r'^expo-b/', include('expobanner.urls')), + url(r'^social/', include('social.apps.django_app.urls', namespace='social')), + url(r'^login/', 'registration.backends.default.views.LoginView', name='login'), + url(r'^logout/', 'registration.backends.default.views.LogoutView'), + url(r'^accounts/', include('registration.backends.default.urls')), + url(r'^i18n/', include('django.conf.urls.i18n')), + url(r'^', include('settings.old_urls')), + ) + +urlpatterns = solid_i18n_patterns('', url(r'^rss/', include('core.urls')), url(r'^sitemap-(?P
.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}), url(r'^admin/', include('proj.admin_urls')), url(r'^sitemap\.xml$', views.index, {'sitemaps': sitemaps}), url(r'^sitemap-(?P
.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}), url(r'^robots.txt$', Robot.as_view()), - url(r'^yandex_4c45d77eb3f781f8.html$', YandexCheck.as_view()), url(r'^$', MainPageView.as_view()), url(r'^page/', include('core.simple_urls')), url(r'^theme/', include('theme.urls')), url(r'^places/', include('place_exposition.urls')), #url(r'^translators/', include('translator.urls')), url(r'^translators/', include('specialist_catalog.urls')), - url(r'^expo-b/', include('expobanner.urls')), url(r'^newsletters/', include('emencia.django.newsletter.urls')), url(r'^', include('accounts.urls')), url(r'^', include('exposition.urls')), @@ -59,19 +69,14 @@ urlpatterns = patterns('', url(r'^gallery/', include('photologue.client_urls')), url(r'^', include('file.urls')), url(r'^', include('django_messages.expomap_urls')), - url(r'^advertising/$', AdvertisingView.as_view(), {'meta_id':58}), - url(r'^about/$', AboutView.as_view(), {'meta_id':56}), - url(r'^partners/$', AboutView.as_view(), {'meta_id':57}), - url(r'^contacts/$', AboutView.as_view(), {'meta_id':59}), - url(r'^social/', include('social.apps.django_app.urls', namespace='social')), - url(r'^login/', 'registration.backends.default.views.LoginView'), - url(r'^logout/', 'registration.backends.default.views.LogoutView'), - url(r'^accounts/', include('registration.backends.default.urls')), + url(r'^advertising/$', AdvertisingView.as_view(), {'meta_id':58}, name='expomap_advertising'), + url(r'^about/$', AboutView.as_view(), {'meta_id':56}, name='expomap_about'), + url(r'^partners/$', AboutView.as_view(), {'meta_id':57}, name='expomap_partners'), + url(r'^contacts/$', AboutView.as_view(), {'meta_id':59}, name='expomap_contacts'), url(r'^', include('password_reset.urls')), - url(r'^i18n/', include('django.conf.urls.i18n')), - url(r'^', include('settings.old_urls')), url(r'^', include('service.urls')), ) + if settings.DEBUG: urlpatterns += patterns( 'django.views.static', @@ -85,7 +90,7 @@ if settings.DEBUG: ) # ajax urls -urlpatterns += patterns('', +urlpatterns += solid_i18n_patterns('', url(r'^registration/reply/$', 'registration.backends.default.views.RegisterReply'), url(r'^register/', 'registration.backends.default.views.RegisterAjaxView'), url(r'^register-complete/', 'registration.backends.default.views.complete_registration'), diff --git a/templates/admin/accounts/user_confirm_delete.html b/templates/admin/accounts/user_confirm_delete.html new file mode 100644 index 00000000..cf9be897 --- /dev/null +++ b/templates/admin/accounts/user_confirm_delete.html @@ -0,0 +1,9 @@ +{% extends 'base.html' %} +{% block body %} +
{% csrf_token %} +

Вы уверенны что хотите удалить акауни "{{ object }}"?

+ +
+ +{% endblock %} + diff --git a/templates/admin/accounts/user_list.html b/templates/admin/accounts/user_list.html index c92b52bc..ca297ac5 100644 --- a/templates/admin/accounts/user_list.html +++ b/templates/admin/accounts/user_list.html @@ -47,6 +47,9 @@ Изменить + + Удалить + diff --git a/templates/admin/exposition/exposition.html b/templates/admin/exposition/exposition.html index 3002ae48..4a1d08e9 100644 --- a/templates/admin/exposition/exposition.html +++ b/templates/admin/exposition/exposition.html @@ -126,6 +126,13 @@ {{ form.place.errors }} + {# place_alt #} +
+ +
{{ form.place_alt }} + {{ form.place_alt.errors }} +
+
{# theme #}
diff --git a/templates/admin/newsletters/newsletter_list.html b/templates/admin/newsletters/newsletter_list.html index 54b824b2..4aa105ed 100644 --- a/templates/admin/newsletters/newsletter_list.html +++ b/templates/admin/newsletters/newsletter_list.html @@ -45,7 +45,7 @@ Добавить новый список
{# pagination #} - {% include 'admin/includes/admin_pagination.html' with page_obj=object_list %} + {% include 'admin/includes/admin_pagination.html' with page_obj=page_obj %} {% endblock %} \ No newline at end of file diff --git a/templates/client/includes/header.html b/templates/client/includes/header.html index 88b10a58..839ad05d 100644 --- a/templates/client/includes/header.html +++ b/templates/client/includes/header.html @@ -12,6 +12,28 @@
+ +
    + {% get_current_language as LANGUAGE_CODE %} + {% get_language_info_list for LANGUAGES as languages %} + {% for language in languages %} +
  • + {% if LANGUAGE_CODE == language.code %} + {{ language.code }} + {% else %} + {% if language.code == 'ru' %} + + {% else %} + + {% endif %} + {{ language.code }} + {% endif %} + +
  • + {% endfor %} +
+ + {% comment %}
    {% for lang in LANGUAGES %} @@ -32,6 +54,7 @@
  • admin
  • {% endif %}
+ {% endcomment %}