From 3eee7e8b8fdf59ccdd7455e2da4603ae4df399b6 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 13 Dec 2016 19:27:48 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20=D1=83=D1=80=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/urls.py | 14 ++++---- abonapp/urls_abon.py | 27 +++++++------- abonapp/views.py | 30 ++++++++-------- accounts_app/apps.py | 5 +++ accounts_app/forms.py | 12 +++++++ accounts_app/urls.py | 22 ++++++------ accounts_app/views.py | 36 +++++++++---------- clientsideapp/urls.py | 10 +++--- clientsideapp/views.py | 2 +- devapp/urls.py | 10 +++--- devapp/views.py | 4 +-- djing/settings_example.py | 8 ++--- djing/urls.py | 20 +++++------ djing/views.py | 4 +-- ip_pool/urls.py | 12 +++---- ip_pool/views.py | 6 ++-- mydefs.py | 2 +- privatemessage/urls.py | 6 ++-- privatemessage/views.py | 2 +- searchapp/urls.py | 2 +- statistics/urls.py | 2 +- tariff_app/urls.py | 8 ++--- tariff_app/views.py | 4 +-- taskapp/admin.py | 1 + taskapp/models.py | 28 +++++++++++++++ taskapp/urls.py | 13 +++---- taskapp/views.py | 26 +++++++++----- templates/abonapp/abonamount.html | 2 +- templates/abonapp/activate_service.html | 8 ++--- templates/abonapp/addAbon.html | 6 ++-- templates/abonapp/addGroup.html | 4 +-- templates/abonapp/addInvoice.html | 10 +++--- templates/abonapp/buy_tariff.html | 10 +++--- templates/abonapp/complete_service.html | 10 +++--- templates/abonapp/debtors.html | 6 ++-- templates/abonapp/editAbon.html | 2 +- templates/abonapp/ext.htm | 14 ++++---- templates/abonapp/group_list.html | 12 +++---- templates/abonapp/invoiceForPayment.html | 4 +-- templates/abonapp/log.html | 6 ++-- templates/abonapp/payHistory.html | 4 +-- templates/abonapp/peoples.html | 20 +++++------ templates/abonapp/services.html | 16 ++++----- templates/accounts/acc_list.html | 11 +++--- templates/accounts/create_acc.html | 4 +-- templates/accounts/ext.htm | 10 +++--- templates/accounts/group.html | 6 ++-- templates/accounts/group_list.html | 4 +-- templates/accounts/login.html | 2 +- templates/accounts/profile_chgroup.html | 2 +- templates/accounts/settings/ch_info.html | 2 +- templates/accounts/settings/ext.htm | 14 ++++---- templates/accounts/settings/permissions.html | 21 +++++++++++ templates/base.html | 38 ++++++++++---------- templates/base_without_left.html | 8 ++--- templates/clientsideapp/debt_buy.html | 4 +-- templates/clientsideapp/debts.html | 2 +- templates/clientsideapp/ext.html | 20 +++++------ templates/devapp/dev.html | 4 +-- templates/devapp/devices.html | 8 ++--- templates/devapp/ext.htm | 6 ++-- templates/ip_pool/add_pool.html | 4 +-- templates/ip_pool/index.html | 8 ++--- templates/ip_pool/ips.html | 8 ++--- templates/private_messages/item.html | 4 +-- templates/private_messages/send_form.html | 2 +- templates/searchapp/index.html | 4 +-- templates/tariff_app/editTarif.html | 4 +-- templates/tariff_app/tarifs.html | 18 +++++----- templates/taskapp/add_edit_task.html | 6 ++-- templates/taskapp/ext.htm | 10 +++--- templates/taskapp/tasklist.html | 18 +++++----- templates/taskapp/tasklist_active.html | 28 ++++++++------- templates/taskapp/tasklist_finish.html | 12 +++---- templates/taskapp/tasklist_own.html | 12 +++---- 75 files changed, 413 insertions(+), 341 deletions(-) create mode 100644 accounts_app/apps.py create mode 100644 accounts_app/forms.py create mode 100644 templates/accounts/settings/permissions.html diff --git a/abonapp/urls.py b/abonapp/urls.py index ea942bd..0f0c2d4 100644 --- a/abonapp/urls.py +++ b/abonapp/urls.py @@ -5,19 +5,19 @@ import views urlpatterns = [ - url(r'^$', views.grouplist, name='abongroup_list_link'), - url(r'^addgroup$', views.addgroup, name='addgroup_link'), - url(r'^delgroup', views.delgroup, name='people_delgroup_link'), + url(r'^$', views.grouplist, name='group_list'), + url(r'^addgroup$', views.addgroup, name='add_group'), + url(r'^delgroup', views.delgroup, name='del_group'), url(r'^(?P\d+)/', include('abonapp.urls_abon')), - url(r'^log$', views.log_page, name='abonapp_log_link'), + url(r'^log$', views.log_page, name='log'), - url(r'^del$', views.delentity, name='abonapp_del_link'), + url(r'^del$', views.delentity, name='del_abon'), - url(r'^pay$', views.terminal_pay, name='abonapp_terminalpay_link'), + url(r'^pay$', views.terminal_pay, name='terminal_pay'), - url(r'^debtors$', views.debtors, name='abonapp_debtors'), + url(r'^debtors$', views.debtors, name='debtors'), # Api's url(r'^api/abons$', views.abons), diff --git a/abonapp/urls_abon.py b/abonapp/urls_abon.py index abbe505..0a35b57 100644 --- a/abonapp/urls_abon.py +++ b/abonapp/urls_abon.py @@ -4,22 +4,21 @@ import views urlpatterns = [ - url(r'^$', views.peoples, name='people_list_link'), - url(r'^addabon$', views.addabon, name='addabon_link'), - url(r'^(?P\d+)$', views.abonhome, name='abonhome_link'), + url(r'^$', views.peoples, name='people_list'), + url(r'^addabon$', views.addabon, name='add_abon'), + url(r'^(?P\d+)$', views.abonhome, name='abon_home'), - url(r'^(?P\d+)/services$', views.abon_services, name='abon_services_link'), - url(r'^(?P\d+)/amount', views.abonamount, name='abon_amount_link'), - url(r'^(?P\d+)/debts', views.invoice_for_payment, name='abon_debts_link'), - url(r'^(?P\d+)/pay_history', views.pay_history, name='abon_phistory_link'), + url(r'^(?P\d+)/services$', views.abon_services, name='abon_services'), + url(r'^(?P\d+)/amount', views.abonamount, name='abon_amount'), + url(r'^(?P\d+)/debts', views.invoice_for_payment, name='abon_debts'), + url(r'^(?P\d+)/pay_history', views.pay_history, name='abon_phistory'), - - url(r'^(?P\d+)/addinvoice$', views.add_invoice, name='abonapp_addinvoice_link'), - url(r'^(?P\d+)/buy$', views.buy_tariff, name='abonapp_buy_tariff'), - url(r'^(?P\d+)/chpriority$', views.chpriority, name='abonapp_chpriority_tariff'), - url(r'^(?P\d+)/complete_service(?P\d+)$', views.complete_service, name='abonapp_compl_srv'), - url(r'^(?P\d+)/activate_service(?P\d+)$', views.activate_service, name='abonapp_activate_service'), + url(r'^(?P\d+)/addinvoice$', views.add_invoice, name='add_invoice'), + url(r'^(?P\d+)/buy$', views.buy_tariff, name='buy_tariff'), + url(r'^(?P\d+)/chpriority$', views.chpriority, name='chpriority_tariff'), + url(r'^(?P\d+)/complete_service(?P\d+)$', views.complete_service, name='compl_srv'), + url(r'^(?P\d+)/activate_service(?P\d+)$', views.activate_service, name='activate_service'), url(r'^(?P\d+)/unsubscribe_service(?P\d+)$', views.unsubscribe_service, - name='abonapp_unsubscribe_service') + name='unsubscribe_service') ] diff --git a/abonapp/views.py b/abonapp/views.py index 7f3def1..ae98bc7 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -2,7 +2,7 @@ from json import dumps from django.db import IntegrityError -from django.db.models import Count, Q +from django.db.models import Count from django.shortcuts import render, redirect, get_object_or_404, resolve_url from django.contrib.auth.decorators import login_required from django.utils import timezone @@ -48,7 +48,7 @@ def addgroup(request): frm = forms.AbonGroupForm(request.POST) if frm.is_valid(): frm.save() - return redirect('abongroup_list_link') + return redirect('abonapp:group_list') else: warntext = u'Исправьте ошибки' return render(request, 'abonapp/addGroup.html', { @@ -82,7 +82,7 @@ def grouplist(request): def delgroup(request): agd = mydefs.safe_int(request.GET.get('id')) get_object_or_404(models.AbonGroup, id=agd).delete() - return mydefs.res_success(request, 'abongroup_list_link') + return mydefs.res_success(request, 'abonapp:group_list') @login_required @@ -102,7 +102,7 @@ def addabon(request, gid): prf.group = group prf.save_form(frm) prf.save() - return redirect('people_list_link', group.id) + return redirect('abonapp:people_list', group.id) else: warning_text = u'Некоторые поля заполнены не правильно, проверте ещё раз' @@ -138,10 +138,10 @@ def delentity(request): abon = get_object_or_404(models.Abon, id=uid) gid = abon.group.id abon.delete() - return mydefs.res_success(request, resolve_url('people_list_link', gid)) + return mydefs.res_success(request, resolve_url('abonapp:people_list', gid)) elif typ == 'g': get_object_or_404(models.AbonGroup, id=uid).delete() - return mydefs.res_success(request, 'abongroup_list_link') + return mydefs.res_success(request, 'abonapp:group_list') @login_required @@ -155,7 +155,7 @@ def abonamount(request, gid, uid): amnt = mydefs.safe_float(request.POST.get('amount')) abon.add_ballance(request.user, amnt) abon.save(update_fields=['ballance']) - return redirect('abonhome_link', gid=gid, uid=uid) + return redirect('abonapp:abon_home', gid=gid, uid=uid) else: warning_text = u'Не правильно выбран абонент как цель для пополнения' return render(request, 'abonapp/abonamount.html', { @@ -239,7 +239,7 @@ def abonhome(request, gid, uid): abon.is_active = 1 if cd['is_active'] else 0 abon.save() - # return redirect('abonhome_link', gid, uid) + # return redirect('abonapp:abon_home', gid, uid) else: warntext = u'Не правильные значения, проверте поля и попробуйте ещё' else: @@ -299,7 +299,7 @@ def add_invoice(request, gid, uid): newinv.author = request.user newinv.save() - return redirect('abonhome_link', gid=gid, uid=uid) + return redirect('abonapp:abon_home', gid=gid, uid=uid) else: return render(request, 'abonapp/addInvoice.html', { 'csrf_token': csrf(request)['csrf_token'], @@ -323,7 +323,7 @@ def buy_tariff(request, gid, uid): cd = frm.cleaned_data abon.buy_tariff(cd['tariff'], request.user) abon.save() - return redirect('abonhome_link', gid=gid, uid=abon.id) + return redirect('abonapp:abon_home', gid=gid, uid=abon.id) else: warntext = u'Что-то не так при покупке услуги, проверьте и попробуйте ещё' else: @@ -333,7 +333,7 @@ def buy_tariff(request, gid, uid): except NetExcept as e: warntext = e.value + u', но услуга уже подключена, она будет применена когда будет восстановлен доступ к NAS серверу.' \ - u' Вернуться' % resolve_url('abonhome_link', gid=gid, uid=abon.id) + u' Вернуться' % resolve_url('abonapp:abon_home', gid=gid, uid=abon.id) return render(request, 'abonapp/buy_tariff.html', { 'warntext': warntext, @@ -356,7 +356,7 @@ def chpriority(request, gid, uid): elif act == 'down': current_abon_tariff.priority_down() - return redirect('abonhome_link', gid=gid, uid=uid) + return redirect('abonapp:abon_home', gid=gid, uid=uid) @login_required @@ -374,7 +374,7 @@ def complete_service(request, gid, uid, srvid): if finish_confirm == 'yes': # удаляем запись о текущей услуге. abtar.delete() - return redirect('abonhome_link', gid, uid) + return redirect('abonapp:abon_home', gid, uid) else: raise models.LogicError('Действие не подтверждено') @@ -415,7 +415,7 @@ def activate_service(request, gid, uid, srvid): return HttpResponse('

Request not confirmed

') abtar.activate(request.user) - return redirect('abonhome_link', gid, uid) + return redirect('abonapp:abon_home', gid, uid) amount = abtar.calc_amount_service() return render(request, 'abonapp/activate_service.html', { @@ -431,7 +431,7 @@ def activate_service(request, gid, uid, srvid): @mydefs.only_admins def unsubscribe_service(request, gid, uid, srvid): get_object_or_404(models.AbonTariff, id=int(srvid)).delete() - return redirect('abonhome_link', gid=gid, uid=uid) + return redirect('abonapp:abon_home', gid=gid, uid=uid) @login_required diff --git a/accounts_app/apps.py b/accounts_app/apps.py new file mode 100644 index 0000000..c215644 --- /dev/null +++ b/accounts_app/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class AccountsAppConfig(AppConfig): + name = 'acc_app' diff --git a/accounts_app/forms.py b/accounts_app/forms.py new file mode 100644 index 0000000..6210c0d --- /dev/null +++ b/accounts_app/forms.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +from django import forms +from models import UserProfile + + +class SetupPerms(forms.ModelForm): + class Meta: + model = UserProfile + fields = ['user_permissions'] + widgets = { + 'user_permissions': forms.CheckboxSelectMultiple() + } diff --git a/accounts_app/urls.py b/accounts_app/urls.py index 10d4a14..81812c7 100644 --- a/accounts_app/urls.py +++ b/accounts_app/urls.py @@ -6,27 +6,27 @@ import views urlpatterns = [ - url(r'^login/', views.to_signin, name='login_link'), - url(r'^logout/', views.sign_out, name='logout_link'), + url(r'^login/', views.to_signin, name='login'), + url(r'^logout/', views.sign_out, name='logout'), url(r'^me$', views.profile_show, name='profile'), url(r'^$', views.acc_list, name='accounts_list'), - url(r'^add$', views.create_profile, name='create_profile_link'), + url(r'^add$', views.create_profile, name='create_profile'), - url(r'^settings$', views.ch_info, name='settings_chinfo_link'), - url(r'^settings/change_ava$', views.ch_ava, name='settings_chava_link'), + url(r'^settings$', views.ch_info, name='setup_info'), + url(r'^settings/change_ava$', views.ch_ava, name='setup_avatar'), url(r'^(?P\d+)$', views.profile_show, name='other_profile'), - url(r'^(?P\d+)/perms$', views.perms, name='profile_perms_link'), - url(r'^(?P\d+)/chgroup$', views.chgroup, name='profile_chgroup_link'), - url(r'^(?P\d+)/del$', views.delete_profile, name='delete_profile_link'), + url(r'^(?P\d+)/perms$', views.perms, name='setup_perms'), + url(r'^(?P\d+)/chgroup$', views.chgroup, name='profile_setup_group'), + url(r'^(?P\d+)/del$', views.delete_profile, name='delete_profile'), # назначить задание - url(r'^(?P\d+)/appoint_task$', views.appoint_task, name='profile_appoint_task'), + url(r'^(?P\d+)/appoint_task$', views.appoint_task, name='appoint_task'), - url(r'^group/$', views.groups, name='profile_groups_list'), - url(r'^group/(?P\d+)$', views.group, name='profile_group_link') + url(r'^group/$', views.groups, name='groups_list'), + url(r'^group/(?P\d+)$', views.group, name='group_link') ] \ No newline at end of file diff --git a/accounts_app/views.py b/accounts_app/views.py index ba0b272..641076e 100644 --- a/accounts_app/views.py +++ b/accounts_app/views.py @@ -6,6 +6,7 @@ from django.shortcuts import render, redirect, get_object_or_404, resolve_url from django.template.context_processors import csrf from django.http import Http404 from django.contrib.auth.models import Group, Permission +from accounts_app.forms import SetupPerms from photo_app.models import Photo from models import UserProfile @@ -15,7 +16,7 @@ import mydefs @login_required @mydefs.only_admins def home(request): - return redirect('profile') + return redirect('acc_app:profile') def to_signin(request): @@ -29,9 +30,9 @@ def to_signin(request): login(request, auser) if nextl == 'None' or nextl is None or nextl == '': if request.user.is_staff: - return redirect('profile') + return redirect('acc_app:profile') - return redirect('client_home') + return redirect('client_side:home') return redirect(nextl) @@ -48,7 +49,7 @@ def to_signin(request): def sign_out(request): logout(request) - return redirect('login_link') + return redirect('acc_app:login') @login_required @@ -68,7 +69,7 @@ def profile_show(request, id=0): usr.is_active = request.POST.get('stat') usr.is_admin = request.POST.get('is_admin') usr.save() - return redirect('other_profile', id=id) + return redirect('acc_app:other_profile', id=id) return render(request, 'accounts/index.html', { 'uid': id, @@ -172,7 +173,7 @@ def create_profile(request): if user_qs.count() == 0: user.set_password(passwd) user.save() - return redirect('accounts_list') + return redirect('acc_app:accounts_list') else: return render(request, 'accounts/create_acc.html', { 'warntext': u'Пользователь с таким именем уже есть', @@ -194,7 +195,7 @@ def create_profile(request): def delete_profile(request, uid): prf = get_object_or_404(UserProfile, id=uid) prf.delete() - return redirect('accounts_list') + return redirect('acc_app:accounts_list') @login_required @@ -213,18 +214,15 @@ def acc_list(request): @mydefs.only_admins # @permission_required('accounts_app.change_userprofile') def perms(request, id): - ingroups = filter(lambda x: x[0] == 'ingroups', request.POST.lists())[0][1] - id = mydefs.safe_int(id) - profile = get_object_or_404(UserProfile, id=id) - profile.groups.clear() - - for group_id in ingroups: - gid = mydefs.safe_int(group_id) - profile.groups.add(gid) - profile.save() + frm = SetupPerms() + own_permissions = UserProfile.get_all_permissions(profile) - return redirect('other_profile', id) + return render(request, 'accounts/settings/permissions.html', { + 'uid': id, + 'form': frm, + 'own_permissions': own_permissions + }) @login_required @@ -253,7 +251,7 @@ def group(request, id): rid = mydefs.safe_int(grr) grp.permissions.add(rid) grp.save() - return redirect('profile_group_link', id=id) + return redirect('acc_app:profile_group_link', id=id) grp_rights = grp.permissions.all() all_rights = Permission.objects.exclude(group=grp) @@ -274,5 +272,5 @@ def group(request, id): @mydefs.only_admins def appoint_task(req, uid): uid = mydefs.safe_int(uid) - url = resolve_url('task_add') + url = resolve_url('taskapp:add') return redirect("%s?rp=%d" % (url, uid)) diff --git a/clientsideapp/urls.py b/clientsideapp/urls.py index a147faa..9de984a 100644 --- a/clientsideapp/urls.py +++ b/clientsideapp/urls.py @@ -5,9 +5,9 @@ import views urlpatterns = [ - url(r'^$', views.home, name='client_home'), - url(r'^pays$', views.pays, name='client_pays'), - url(r'^buy$', views.buy_service, name='client_buy'), - url(r'^debts$', views.debts_list, name='client_debts'), - url(r'^debts/(?P\d+)$', views.debt_buy, name='client_debt_buy') + url(r'^$', views.home, name='home'), + url(r'^pays$', views.pays, name='pays'), + url(r'^buy$', views.buy_service, name='buy'), + url(r'^debts$', views.debts_list, name='debts'), + url(r'^debts/(?P\d+)$', views.debt_buy, name='debt_buy') ] diff --git a/clientsideapp/views.py b/clientsideapp/views.py index d0cb709..9d2a7cc 100644 --- a/clientsideapp/views.py +++ b/clientsideapp/views.py @@ -62,7 +62,7 @@ def debt_buy(request, d_id): debt.set_ok() abon.save(update_fields=['ballance']) debt.save(update_fields=['status', 'date_pay']) - return redirect('client_debts') + return redirect('client_side:debts') except LogicError, e: warntext = e.value return render(request, 'clientsideapp/debt_buy.html', { diff --git a/devapp/urls.py b/devapp/urls.py index f33e360..c3ac680 100644 --- a/devapp/urls.py +++ b/devapp/urls.py @@ -4,9 +4,9 @@ import views urlpatterns = [ - url(r'^$', views.devices, name='devs_link'), - url(r'^add$', views.dev, name='devs_add_link'), - url(r'^(?P\d+)$', views.devview, name='devs_view_link'), - url(r'^(?P\d+)/del$', views.devdel, name='devs_del_link'), - url(r'^(?P\d+)/edit$', views.dev, name='devs_edit_link'), + url(r'^$', views.devices, name='devs'), + url(r'^add$', views.dev, name='add'), + url(r'^(?P\d+)$', views.devview, name='view'), + url(r'^(?P\d+)/del$', views.devdel, name='del'), + url(r'^(?P\d+)/edit$', views.dev, name='edit'), ] diff --git a/devapp/views.py b/devapp/views.py index 0eebe2e..8c27df3 100644 --- a/devapp/views.py +++ b/devapp/views.py @@ -23,7 +23,7 @@ def devices(request): def devdel(request, did): try: get_object_or_404(Device, id=did).delete() - return res_success(request, 'devs_link') + return res_success(request, 'devapp:devs') except: return res_error(request, u'Неизвестная ошибка при удалении :(') @@ -38,7 +38,7 @@ def dev(request, devid=0): frm = DeviceForm(request.POST, instance=devinst) if frm.is_valid(): frm.save() - return redirect('devs_link') + return redirect('devapp:devs') else: warntext = u'Ошибка в данных, проверте их ещё раз' else: diff --git a/djing/settings_example.py b/djing/settings_example.py index adc1eb3..273c7f6 100644 --- a/djing/settings_example.py +++ b/djing/settings_example.py @@ -26,7 +26,7 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', - 'accounts_app', + 'acc_app', 'photo_app', 'privatemessage', 'abonapp', @@ -152,6 +152,6 @@ MEDIA_URL = '/media/' DEFAULT_PICTURE = '/static/images/default-avatar.png' AUTH_USER_MODEL = 'accounts_app.UserProfile' -LOGIN_URL = reverse_lazy('login_link') -LOGIN_REDIRECT_URL = reverse_lazy('profile') -LOGOUT_URL = reverse_lazy('logout_link') +LOGIN_URL = reverse_lazy('acc_app:login') +LOGIN_REDIRECT_URL = reverse_lazy('acc_app:profile') +LOGOUT_URL = reverse_lazy('acc_app:logout_link') diff --git a/djing/urls.py b/djing/urls.py index 6270ce4..e885060 100644 --- a/djing/urls.py +++ b/djing/urls.py @@ -7,17 +7,17 @@ from views import home urlpatterns = [ url(r'^$', home), - url(r'^accounts/', include('accounts_app.urls')), - url(r'^im/', include('privatemessage.urls')), - url(r'^abons/', include('abonapp.urls')), - url(r'^tarifs/', include('tariff_app.urls')), - url(r'^ip_pool/', include('ip_pool.urls')), - url(r'^search/', include('searchapp.urls')), - url(r'^dev/', include('devapp.urls')), + url(r'^accounts/', include('accounts_app.urls', namespace='acc_app')), + url(r'^im/', include('privatemessage.urls', namespace='privmsg')), + url(r'^abons/', include('abonapp.urls', namespace='abonapp')), + url(r'^tarifs/', include('tariff_app.urls', namespace='tarifs')), + url(r'^ip_pool/', include('ip_pool.urls', namespace='ip_pool')), + url(r'^search/', include('searchapp.urls', namespace='searchapp')), + url(r'^dev/', include('devapp.urls', namespace='devapp')), url(r'^gmap/', include('gmap.urls')), - url(r'^statistic/', include('statistics.urls')), - url(r'^tasks/', include('taskapp.urls')), - url(r'^client/', include('clientsideapp.urls')), + url(r'^statistic/', include('statistics.urls', namespace='statistics')), + url(r'^tasks/', include('taskapp.urls', namespace='taskapp')), + url(r'^client/', include('clientsideapp.urls', namespace='client_side')), url(r'^admin/', admin.site.urls) ] diff --git a/djing/views.py b/djing/views.py index c5c7389..bb9cf1c 100644 --- a/djing/views.py +++ b/djing/views.py @@ -5,9 +5,9 @@ from django.shortcuts import redirect @login_required def home(request): if request.user.is_staff: - return redirect('profile') + return redirect('acc_app:profile') else: - return redirect('client_home') + return redirect('client_side:home') def finance_report(request): diff --git a/ip_pool/urls.py b/ip_pool/urls.py index c9c075c..8fcd3fc 100644 --- a/ip_pool/urls.py +++ b/ip_pool/urls.py @@ -6,10 +6,10 @@ import views urlpatterns = [ - url(r'^$', views.home, name='pool_home_link'), - url(r'^range$', views.ips, name='pool_ips_link'), - url(r'^del$', views.del_pool, name='pool_ips_del_link'), - url(r'^add$', views.add_pool, name='pool_add_link'), + url(r'^$', views.home, name='home'), + url(r'^range$', views.ips, name='ips'), + url(r'^del$', views.del_pool, name='ips_del'), + url(r'^add$', views.add_pool, name='add'), - url(r'^delip$', views.delip, name='pool_del_ip_link') -] \ No newline at end of file + url(r'^delip$', views.delip, name='del_ip') +] diff --git a/ip_pool/views.py b/ip_pool/views.py index 0d9efce..f29f23e 100644 --- a/ip_pool/views.py +++ b/ip_pool/views.py @@ -51,7 +51,7 @@ def del_pool(request): pool_ips.delete() - return mydefs.res_success(request, 'pool_home_link') + return mydefs.res_success(request, 'ip_pool:home') @login_required @@ -62,7 +62,7 @@ def add_pool(request): if frm.is_valid(): cd = frm.cleaned_data IpPoolItem.objects.add_pool(cd['start_ip'], cd['end_ip']) - return redirect('pool_home_link') + return redirect('ip_pool:home') else: warntext = u'Form is not valid' else: @@ -79,4 +79,4 @@ def add_pool(request): def delip(request): ipid = request.GET.get('id') get_object_or_404(IpPoolItem, id=ipid).delete() - return mydefs.res_success(request, 'pool_home_link') + return mydefs.res_success(request, 'ip_pool:home') diff --git a/mydefs.py b/mydefs.py index 93417f3..455adc6 100644 --- a/mydefs.py +++ b/mydefs.py @@ -140,6 +140,6 @@ def only_admins(fn): if request.user.is_admin: return fn(request, *args, **kwargs) else: - return redirect('client_home') + return redirect('client_side:home') return wrapped diff --git a/privatemessage/urls.py b/privatemessage/urls.py index d551d81..7d76c80 100644 --- a/privatemessage/urls.py +++ b/privatemessage/urls.py @@ -4,7 +4,7 @@ import views urlpatterns = [ - url(r'^$', views.home, name='privmsg_home'), - url(r'^delitem_(?P\d+)$', views.delitem, name='privmsg_delitem'), - url(r'^write', views.send_message, name='privmsg_send_message') + url(r'^$', views.home, name='home'), + url(r'^delitem_(?P\d+)$', views.delitem, name='delitem'), + url(r'^write', views.send_message, name='send_message') ] diff --git a/privatemessage/views.py b/privatemessage/views.py index 5a2bf05..888f3bf 100644 --- a/privatemessage/views.py +++ b/privatemessage/views.py @@ -53,7 +53,7 @@ def send_message(request): msg.recepient = UserModel.objects.get(id=a) msg.text = request.POST.get('msg_text') msg.save() - return redirect('privmsg_home') + return redirect('privmsg:home') except UserModel.DoesNotExist: return mydefs.res_error(request, u'Адресат не найден') else: diff --git a/searchapp/urls.py b/searchapp/urls.py index bbe219b..f07ce5f 100644 --- a/searchapp/urls.py +++ b/searchapp/urls.py @@ -4,6 +4,6 @@ import views urlpatterns = [ - url(r'^$', views.home, name='search_home_link'), + url(r'^$', views.home, name='home'), ] diff --git a/statistics/urls.py b/statistics/urls.py index 1cd3a96..4f30d5e 100644 --- a/statistics/urls.py +++ b/statistics/urls.py @@ -4,5 +4,5 @@ import views urlpatterns = [ - url(r'^$', views.home, name='stat_home'), + url(r'^$', views.home, name='home'), ] diff --git a/tariff_app/urls.py b/tariff_app/urls.py index fdd9943..1b74d4f 100644 --- a/tariff_app/urls.py +++ b/tariff_app/urls.py @@ -4,8 +4,8 @@ import views urlpatterns = [ - url(r'^$', views.tarifs, name='tarifs_link'), - url(r'^(?P\d+)$', views.edit_tarif, name='tarifs_edit_link'), - url(r'^add$', views.edit_tarif, name='tarifs_add_link'), - url(r'^del(?P\d+)$', views.del_tarif, name='tarifs_del_link') + url(r'^$', views.tarifs, name='home'), + url(r'^(?P\d+)$', views.edit_tarif, name='edit'), + url(r'^add$', views.edit_tarif, name='add'), + url(r'^del(?P\d+)$', views.del_tarif, name='del') ] diff --git a/tariff_app/views.py b/tariff_app/views.py index 2c21185..77fb7e7 100644 --- a/tariff_app/views.py +++ b/tariff_app/views.py @@ -36,7 +36,7 @@ def edit_tarif(request, tarif_id=0): frm = forms.TariffForm(request.POST) if frm.is_valid(): frm.save() - return redirect('tarifs_link') + return redirect('tarifs:home') else: warntext = u'Не все поля заполнены правильно, проверте и попробуйте ещё раз' else: @@ -58,4 +58,4 @@ def edit_tarif(request, tarif_id=0): def del_tarif(request, id): tar_id = mydefs.safe_int(id) get_object_or_404(Tariff, id=tar_id).delete() - return mydefs.res_success(request, 'tarifs_link') + return mydefs.res_success(request, 'tarifs:home') diff --git a/taskapp/admin.py b/taskapp/admin.py index 0297440..885ad97 100644 --- a/taskapp/admin.py +++ b/taskapp/admin.py @@ -4,3 +4,4 @@ import models admin.site.register(models.Task) +admin.site.register(models.ChangeLog) diff --git a/taskapp/models.py b/taskapp/models.py index b2d8827..2f398d1 100644 --- a/taskapp/models.py +++ b/taskapp/models.py @@ -58,6 +58,9 @@ class Task(models.Model): class Meta: db_table = 'task' ordering = ('-id',) + permissions = ( + ('can_viewall', 'Доступ ко всем задачам'), + ) def finish(self, current_user): self.state = 'F' # Выполнена @@ -67,6 +70,21 @@ class Task(models.Model): self.state = 'C' # Начата +class ChangeLog(models.Model): + task = models.ForeignKey(Task) + ACT_CHOICES = ( + (b'e', u'Изменение задачи'), + (b'c', u'Создание задачи'), + (b'd', u'Удаление задачи') + ) + act_type = models.CharField(max_length=1, choices=ACT_CHOICES) + when = models.DateTimeField(auto_now_add=True) + who = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='+') + + def __unicode__(self): + return self.get_act_type_display() + + def task_handler(sender, instance, **kwargs): cur_dir = os.path.join(BASE_DIR, "taskapp") group_name = '' @@ -75,8 +93,18 @@ def task_handler(sender, instance, **kwargs): group_name = instance.abon.group.title if kwargs['created']: first_param = 'start' + ChangeLog.objects.create( + task=instance, + act_type=b'c', + who=instance.author + ) else: first_param = 'change' + ChangeLog.objects.create( + task=instance, + act_type=b'e', + who=instance.author + ) call(['%s/handle.sh' % cur_dir, first_param, # start or change instance.get_mode_display(), # mode - Характер поломки diff --git a/taskapp/urls.py b/taskapp/urls.py index 9f3bcf7..896fb23 100644 --- a/taskapp/urls.py +++ b/taskapp/urls.py @@ -4,14 +4,15 @@ import views urlpatterns = [ - url(r'^$', views.home, name='task_home'), - url(r'^(?P\d+)/edit$', views.task_add_edit, name='task_edit'), - url(r'^(?P\d+)/delete$', views.task_delete, name='task_delete'), - url(r'^(?P\d+)/fin$', views.task_finish, name='task_finish'), - url(r'^(?P\d+)/begin$', views.task_begin, name='task_begin'), - url(r'^add$', views.task_add_edit, name='task_add'), + url(r'^$', views.home, name='home'), + url(r'^(?P\d+)/edit$', views.task_add_edit, name='edit'), + url(r'^(?P\d+)/delete$', views.task_delete, name='delete'), + url(r'^(?P\d+)/fin$', views.task_finish, name='finish'), + url(r'^(?P\d+)/begin$', views.task_begin, name='begin'), + url(r'^add$', views.task_add_edit, name='add'), url(r'^active$', views.active_tasks, name='active_tasks'), url(r'^finished$', views.finished_tasks, name='finished_tasks'), url(r'^own$', views.own_tasks, name='own_tasks'), + url(r'^my$', views.my_tasks, name='my_tasks'), url(r'^all$', views.all_tasks, name='all_tasks') ] diff --git a/taskapp/views.py b/taskapp/views.py index db76272..61013b8 100644 --- a/taskapp/views.py +++ b/taskapp/views.py @@ -1,6 +1,5 @@ # coding=utf-8 -from django.contrib.auth.decorators import login_required -from django.forms.boundfield import BoundField +from django.contrib.auth.decorators import login_required, permission_required from django.shortcuts import render, redirect, get_object_or_404 from abonapp.models import Abon @@ -58,7 +57,7 @@ def own_tasks(request): @login_required @only_admins -def all_tasks(request): +def my_tasks(request): tasks = Task.objects.filter(recipient=request.user) # Все задачи tasks = pag_mn(request, tasks) return render(request, 'taskapp/tasklist.html', { @@ -67,16 +66,25 @@ def all_tasks(request): @login_required -@only_admins +@permission_required('taskapp.can_viewall') +def all_tasks(request): + tasks = Task.objects.all() + return render(request, 'taskapp/tasklist_all.html', { + 'tasks': tasks + }) + + +@login_required +@permission_required('taskapp.can_delete_task') def task_delete(request, task_id): task = get_object_or_404(Task, id=task_id) if request.user != task.recipient: task.delete() - return redirect('task_home') + return redirect('taskapp:home') @login_required -@only_admins +@permission_required('taskapp.can_change_task') def task_add_edit(request, task_id=0): task_id = safe_int(task_id) warntext = '' @@ -96,7 +104,7 @@ def task_add_edit(request, task_id=0): frm = TaskFrm(request.POST, request.FILES, instance=tsk) if frm.is_valid(): frm.save() - return redirect('task_home') + return redirect('taskapp:home') else: warntext = u'Исправте ошибки' else: @@ -131,7 +139,7 @@ def task_finish(request, task_id): task = get_object_or_404(Task, id=task_id) task.finish(request.user) task.save(update_fields=['state', 'out_date']) - return redirect('task_home') + return redirect('taskapp:home') @login_required @@ -140,4 +148,4 @@ def task_begin(request, task_id): task = get_object_or_404(Task, id=task_id) task.begin(request.user) task.save(update_fields=['state']) - return redirect('task_home') + return redirect('taskapp:home') diff --git a/templates/abonapp/abonamount.html b/templates/abonapp/abonamount.html index 4f220a5..b9579ec 100644 --- a/templates/abonapp/abonamount.html +++ b/templates/abonapp/abonamount.html @@ -13,7 +13,7 @@
-
{% csrf_token %}
diff --git a/templates/abonapp/activate_service.html b/templates/abonapp/activate_service.html index f9ecf6e..9ac6902 100644 --- a/templates/abonapp/activate_service.html +++ b/templates/abonapp/activate_service.html @@ -4,9 +4,9 @@ @@ -19,7 +19,7 @@ {% if warntext %}
{{ warntext }}
{% endif %} - {% csrf_token %} diff --git a/templates/abonapp/addAbon.html b/templates/abonapp/addAbon.html index f7db119..22e4ce5 100644 --- a/templates/abonapp/addAbon.html +++ b/templates/abonapp/addAbon.html @@ -3,8 +3,8 @@ @@ -17,7 +17,7 @@ {% if warntext %}
{{ warntext }}
{% endif %} - {% csrf_token %} + {% csrf_token %}
diff --git a/templates/abonapp/addGroup.html b/templates/abonapp/addGroup.html index 597a439..fd594a4 100644 --- a/templates/abonapp/addGroup.html +++ b/templates/abonapp/addGroup.html @@ -4,7 +4,7 @@ @@ -17,7 +17,7 @@ {% if warntext %}
{{ warntext }}
{% endif %} - {% csrf_token %} + {% csrf_token %}
diff --git a/templates/abonapp/addInvoice.html b/templates/abonapp/addInvoice.html index 4c19aeb..066b034 100644 --- a/templates/abonapp/addInvoice.html +++ b/templates/abonapp/addInvoice.html @@ -4,9 +4,9 @@ @@ -14,11 +14,11 @@

Добавьте платёж на оплату для - {{ abon.fio }} + {{ abon.fio }}

- {% csrf_token %}
diff --git a/templates/abonapp/buy_tariff.html b/templates/abonapp/buy_tariff.html index 8736d7e..72d4070 100644 --- a/templates/abonapp/buy_tariff.html +++ b/templates/abonapp/buy_tariff.html @@ -4,9 +4,9 @@ @@ -15,7 +15,7 @@

Купить новую услугу (заказать тариф) для абонента + href="{% url 'abonapp:abon_home' abon_group.id abon.id %}" title="На страницу абонента">абонента

@@ -25,7 +25,7 @@ Внимание! {{ warntext|safe }}
{% endif %} - {% csrf_token %}
diff --git a/templates/abonapp/complete_service.html b/templates/abonapp/complete_service.html index 4f79988..8ff6a81 100644 --- a/templates/abonapp/complete_service.html +++ b/templates/abonapp/complete_service.html @@ -4,9 +4,9 @@ @@ -20,7 +20,7 @@ {% if warntext %}
{{ warntext }}
{% endif %} - {% csrf_token %} @@ -29,7 +29,7 @@ Для продолжения пользования ресурсами надо подключить нужную услугу

Подробнее:
- Вы завершаете тариф {{ abtar.tariff.title }}.
Услуга была подключена: {{ abtar.time_start|date:'d F Y, H:i:s' }}
diff --git a/templates/abonapp/debtors.html b/templates/abonapp/debtors.html index 6869719..988b77a 100644 --- a/templates/abonapp/debtors.html +++ b/templates/abonapp/debtors.html @@ -4,7 +4,7 @@

@@ -26,12 +26,12 @@ {% for invoice in invoices %} {{ invoice.id }} - {{ invoice.abon.username }} {{ invoice.amount }} {{ invoice.comment }} {{ invoice.date_create|date:'d b H:i' }} - {{ invoice.author.username }} {% empty %} diff --git a/templates/abonapp/editAbon.html b/templates/abonapp/editAbon.html index 50c796d..5d25a32 100644 --- a/templates/abonapp/editAbon.html +++ b/templates/abonapp/editAbon.html @@ -11,7 +11,7 @@
- {% csrf_token %} + {% csrf_token %}
diff --git a/templates/abonapp/ext.htm b/templates/abonapp/ext.htm index 09f158a..26f9d4a 100644 --- a/templates/abonapp/ext.htm +++ b/templates/abonapp/ext.htm @@ -3,8 +3,8 @@ @@ -24,15 +24,15 @@
diff --git a/templates/abonapp/group_list.html b/templates/abonapp/group_list.html index 67fe923..e2af622 100644 --- a/templates/abonapp/group_list.html +++ b/templates/abonapp/group_list.html @@ -16,7 +16,7 @@ # - + Название группы {% if order_by == 'title' %}{% endif %} @@ -31,13 +31,13 @@ {% for gr in groups %} {{ gr.id }} - {{ gr.title }} + {{ gr.title }} {{ gr.usercount }} {% if gr.usercount > 0 %} {% else %} - + {% endif %} @@ -51,13 +51,13 @@ - + Создать группу - + Действия абонентов - + Список должников diff --git a/templates/abonapp/invoiceForPayment.html b/templates/abonapp/invoiceForPayment.html index 0aa50cc..597cb3e 100644 --- a/templates/abonapp/invoiceForPayment.html +++ b/templates/abonapp/invoiceForPayment.html @@ -32,7 +32,7 @@ {{ inv.status|yesno:'Создан оплаченным,Ещё не оплачено' }} {% endif %} - {{ inv.author.username }} + {{ inv.author.username }} {% empty %} @@ -43,7 +43,7 @@ - + Добавить diff --git a/templates/abonapp/log.html b/templates/abonapp/log.html index ac39514..cafbad3 100644 --- a/templates/abonapp/log.html +++ b/templates/abonapp/log.html @@ -3,7 +3,7 @@ @@ -28,10 +28,10 @@ {% else %} {% endif %} {{ l.amount }} - {{ l.abon.username }} + {{ l.abon.username }} {{ l.comment }} {{ l.date|date:"D d E Y H:i:s" }} - {{ l.author.username }} + {{ l.author.username }} {% empty %} diff --git a/templates/abonapp/payHistory.html b/templates/abonapp/payHistory.html index 6832767..98c0999 100644 --- a/templates/abonapp/payHistory.html +++ b/templates/abonapp/payHistory.html @@ -14,10 +14,10 @@ {% for ph in pay_history %} - {{ ph.abon.username }} + {{ ph.abon.username }} {{ ph.amount }} {{ ph.date|date:'d F Y, H:i:s' }} - {{ ph.author.username }} + {{ ph.author.username }} {{ ph.comment }} {% empty %} diff --git a/templates/abonapp/peoples.html b/templates/abonapp/peoples.html index 43342fc..8a2ba03 100644 --- a/templates/abonapp/peoples.html +++ b/templates/abonapp/peoples.html @@ -4,7 +4,7 @@ @@ -16,25 +16,25 @@ # - + Абонент {% if order_by == 'username' %}{% endif %} - + IP Адрес {% if order_by == 'ip_address' %}{% endif %} - + ФИО {% if order_by == 'fio' %}{% endif %} - + Балланс {% if order_by == 'ballance' %}{% endif %} @@ -52,25 +52,25 @@ {% endif %} {{ human.id }} - {{ human.username }} + {{ human.username }} {{ human.ip_address|default:'Не назначен' }} {{ human.fio }} {{ human.ballance }} {{ human.telephone }} {% if human.active_tariff %} - {{ human.active_tariff.title }} + {{ human.active_tariff.title }} {% else %}——— {% endif %} - + {% empty %} - Ещё нет абонентов, добавить + Ещё нет абонентов, добавить {% endfor %} @@ -78,7 +78,7 @@ - + Добавить абонента diff --git a/templates/abonapp/services.html b/templates/abonapp/services.html index 83f5a42..1d98517 100644 --- a/templates/abonapp/services.html +++ b/templates/abonapp/services.html @@ -19,7 +19,7 @@ {% for trf in abon_tarifs %} {{ trf.tariff_priority }} - {{ trf.tariff.title }} {{ trf.tariff.amount }} {{ trf.tariff.speedIn }} @@ -28,27 +28,27 @@ {% if trf.id != active_abontariff_id %} {% if not active_abontariff_id %} - {% endif %} - - - {% else %} - Завершить @@ -58,7 +58,7 @@ {% empty %} Нет подключённых абоненту услуг, купить + href="{% url 'abonapp:buy_tariff' abon_group.id abon.id %}" class="lgtbx">купить {% endfor %} @@ -66,7 +66,7 @@ - + Купить услугу diff --git a/templates/accounts/acc_list.html b/templates/accounts/acc_list.html index 3a39d9c..26412a5 100644 --- a/templates/accounts/acc_list.html +++ b/templates/accounts/acc_list.html @@ -6,7 +6,6 @@
  • Администраторы
  • -

    Список аккаунтов администраторов

    @@ -23,22 +22,22 @@ {% for usr in users %} - - + diff --git a/templates/accounts/create_acc.html b/templates/accounts/create_acc.html index 210475b..e1b4bf0 100644 --- a/templates/accounts/create_acc.html +++ b/templates/accounts/create_acc.html @@ -3,7 +3,7 @@ @@ -27,7 +27,7 @@
    {{ warntext }}
    {% endif %} - {% csrf_token %} + {% csrf_token %}
    diff --git a/templates/accounts/ext.htm b/templates/accounts/ext.htm index de397b5..819f83c 100644 --- a/templates/accounts/ext.htm +++ b/templates/accounts/ext.htm @@ -3,7 +3,7 @@ @@ -18,10 +18,10 @@ {% endif %}
    {% if userprofile == request.user %} - + Редактировать {% endif %} - + Дать задачу
    @@ -31,13 +31,13 @@

    {{ userprofile.username|default:"<Нет ника>" }}

    - + diff --git a/templates/clientsideapp/ext.html b/templates/clientsideapp/ext.html index 9b936d0..d1bba9e 100644 --- a/templates/clientsideapp/ext.html +++ b/templates/clientsideapp/ext.html @@ -28,19 +28,19 @@ {% for dev in devices %} - + - {% empty %} - + {% endfor %} @@ -40,7 +40,7 @@ diff --git a/templates/devapp/ext.htm b/templates/devapp/ext.htm index 92defb5..0731dea 100644 --- a/templates/devapp/ext.htm +++ b/templates/devapp/ext.htm @@ -3,7 +3,7 @@ @@ -13,9 +13,9 @@ diff --git a/templates/ip_pool/add_pool.html b/templates/ip_pool/add_pool.html index 9a6391f..5870d17 100644 --- a/templates/ip_pool/add_pool.html +++ b/templates/ip_pool/add_pool.html @@ -4,7 +4,7 @@ @@ -18,7 +18,7 @@ {% if warntext %}
    {{ warntext }}
    {% endif %} - {% csrf_token %} + {% csrf_token %}
    diff --git a/templates/ip_pool/index.html b/templates/ip_pool/index.html index 47b6d8d..46be8ae 100644 --- a/templates/ip_pool/index.html +++ b/templates/ip_pool/index.html @@ -27,11 +27,11 @@
    + href="{% url 'ip_pool:add' %}">Создать {% endfor %} diff --git a/templates/ip_pool/ips.html b/templates/ip_pool/ips.html index 02fa12a..85131ee 100644 --- a/templates/ip_pool/ips.html +++ b/templates/ip_pool/ips.html @@ -4,7 +4,7 @@ @@ -26,7 +26,7 @@ + href="{% url 'ip_pool:add' %}">Создать {% endfor %} diff --git a/templates/private_messages/item.html b/templates/private_messages/item.html index caa8b29..0e19eb8 100644 --- a/templates/private_messages/item.html +++ b/templates/private_messages/item.html @@ -1,7 +1,7 @@ - + - + diff --git a/templates/private_messages/send_form.html b/templates/private_messages/send_form.html index a0b1efb..3470597 100644 --- a/templates/private_messages/send_form.html +++ b/templates/private_messages/send_form.html @@ -1,4 +1,4 @@ -{% csrf_token %}

    Отправить сообщение

    diff --git a/templates/searchapp/index.html b/templates/searchapp/index.html index 29ff954..33ed773 100644 --- a/templates/searchapp/index.html +++ b/templates/searchapp/index.html @@ -6,7 +6,7 @@

    Поиск по "{{ s }}"

    - +
    @@ -22,7 +22,7 @@
    {% for ab in abons %} - +

    {{ ab.username|safe }}

    diff --git a/templates/tariff_app/editTarif.html b/templates/tariff_app/editTarif.html index 803cb39..e13c81c 100644 --- a/templates/tariff_app/editTarif.html +++ b/templates/tariff_app/editTarif.html @@ -4,7 +4,7 @@

    {% for tar in tariflist %} - + - {% empty %} - {% endfor %} @@ -71,7 +71,7 @@ diff --git a/templates/taskapp/add_edit_task.html b/templates/taskapp/add_edit_task.html index 2e1f189..5545bea 100644 --- a/templates/taskapp/add_edit_task.html +++ b/templates/taskapp/add_edit_task.html @@ -3,7 +3,7 @@ @@ -21,9 +21,9 @@
    {% if task_id %} - {% csrf_token %} diff --git a/templates/taskapp/ext.htm b/templates/taskapp/ext.htm index ebde1ab..35e931b 100644 --- a/templates/taskapp/ext.htm +++ b/templates/taskapp/ext.htm @@ -21,27 +21,27 @@
    - - + + - + {% empty %} @@ -61,9 +63,7 @@ diff --git a/templates/taskapp/tasklist_active.html b/templates/taskapp/tasklist_active.html index 04afafa..81218aa 100644 --- a/templates/taskapp/tasklist_active.html +++ b/templates/taskapp/tasklist_active.html @@ -32,26 +32,30 @@ - - - + {% empty %} @@ -63,9 +67,7 @@ diff --git a/templates/taskapp/tasklist_finish.html b/templates/taskapp/tasklist_finish.html index 6a2675f..8a88dea 100644 --- a/templates/taskapp/tasklist_finish.html +++ b/templates/taskapp/tasklist_finish.html @@ -32,18 +32,18 @@ - - - + diff --git a/templates/taskapp/tasklist_own.html b/templates/taskapp/tasklist_own.html index 5b444ab..3fe9c51 100644 --- a/templates/taskapp/tasklist_own.html +++ b/templates/taskapp/tasklist_own.html @@ -31,19 +31,19 @@ - - + @@ -57,9 +57,7 @@
    + {{ usr.username }} {{ usr.username }}{{ usr.username }} {{ usr.get_full_name }} {% if usr.telephone %}{{ usr.telephone }}{% else %} Нету{% endif %} {% if usr.email %}{{ usr.email }}{% else %} Нету{% endif %} - - @@ -57,7 +56,7 @@
    - +
    {{ grp.id }}{{ grp.name }}{{ grp.name }} diff --git a/templates/accounts/login.html b/templates/accounts/login.html index 346b341..4c90c26 100644 --- a/templates/accounts/login.html +++ b/templates/accounts/login.html @@ -47,7 +47,7 @@ -{% csrf_token %} +{% csrf_token %} {% if errmsg %}

    {{ errmsg }}

    diff --git a/templates/accounts/profile_chgroup.html b/templates/accounts/profile_chgroup.html index d3c37cf..f342a52 100644 --- a/templates/accounts/profile_chgroup.html +++ b/templates/accounts/profile_chgroup.html @@ -2,7 +2,7 @@ {% block content %} Принадлежность аккаунта группам - {% csrf_token %} + {% csrf_token %}
    + {{ pname }} + +
    + {% endfor %} + +{% endblock %} \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 312670c..541f528 100644 --- a/templates/base.html +++ b/templates/base.html @@ -53,19 +53,19 @@
    -
    - +
    {{ dev.ip_address }}{{ dev.ip_address }} {{ dev.comment }} {{ dev.get_devtype_display }} +
    Нет созданных устройств, создатьНет созданных устройств, создать
    - + Добавить {{ pl.1 }} {{ pl.2 }} - - @@ -40,14 +40,14 @@ {% empty %}
    Нет ни одного пула зарезервированных ip адресов. Создать
    - + {{ pi.id }} {{ pi.ip }} {% if pi.abon %} - {{ pi.abon.username }} + {{ pi.abon.username }} {% else %}---{% endif %} @@ -35,7 +35,7 @@ {% else %} - + {% endif %} @@ -44,7 +44,7 @@ {% empty %}
    Нет ни одного пула зарезервированных ip адресов. Создать
    {{ msg.text }}{{ msg.sender.get_full_name }}{{ msg.sender.get_full_name }} {{ msg.date_send }}
    - + Тариф {% if order_by == 'title' %}{% endif %} - + Входящая скорость {% if order_by == 'speedIn' %}{% endif %} - + Исходящая скорость {% if order_by == 'speedOut' %}{% endif %} - + Стоимость {% if order_by == 'amount' %}{% endif %} - + Время действия {% if order_by == 'time_of_action' %}{% endif %} @@ -50,19 +50,19 @@
    {{ tar.title }}{{ tar.title }} {{ tar.speedIn }} {{ tar.speedOut }} {{ tar.amount }} руб {{ tar.time_of_action }} дней {{ tar.calc_type }} +
    Ещё нет созданных тарифов, создать + Ещё нет созданных тарифов, создать
    - + Добавить {{ task.id }} {{ task.descr }}{{ task.recipient.username }}{{ task.author.username }}{{ task.recipient.username }}{{ task.author.username }} {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }}{{ task.device.ip_address }}{{ task.device.ip_address }} {{ task.time_of_create|date:'d N yг H:i:s' }} {% if task.attachment %}{{ task.attachment.name }}{% else %}―{% endif %} - + - + - + {% if perms.taskapp.can_change_task %} + + {% endif %}
    - - Добавить задачу - + {% include 'taskapp/footer_btns.html' %}
    {{ task.id }} {{ task.descr }}{{ task.recipient.username }}{{ task.author.username }} {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }}{{ task.device.ip_address }}{{ task.device.ip_address }} {{ task.time_of_create|date:'d N yг H:i:s' }} {% if task.attachment %}{{ task.attachment.name }}{% else %}―{% endif %} - + - - - - - - + {% if perms.taskapp.can_change_task %} + + + + {% endif %} + {% if perms.taskapp.can_delete_task %} + + + + {% endif %}
    - - Добавить задачу - + {% include 'taskapp/footer_btns.html' %}
    {{ task.id }} {{ task.descr }}{{ task.recipient.username }}{{ task.author.username }} {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }}{{ task.device.ip_address }}{{ task.device.ip_address }} {{ task.time_of_create|date:'d N yг H:i:s' }} {% if task.attachment %}{{ task.attachment.name }}{% else %}―{% endif %} - + @@ -60,9 +60,7 @@
    - - Добавить задачу - + {% include 'taskapp/footer_btns.html' %}
    {{ task.id }} {{ task.descr }}{{ task.recipient.username }} {{ task.get_mode_display }} {{ task.get_state_display }} {{ task.get_priority_display }}{{ task.device.ip_address }}{{ task.device.ip_address }} {{ task.time_of_create|date:'d N yг H:i:s' }} {% if task.attachment %}{{ task.attachment.name }}{% else %}―{% endif %} - + - +
    - - Добавить задачу - + {% include 'taskapp/footer_btns.html' %}