Browse Source

Рефакторинг урлов

devel
Dmitry 9 years ago
parent
commit
3eee7e8b8f
  1. 14
      abonapp/urls.py
  2. 27
      abonapp/urls_abon.py
  3. 30
      abonapp/views.py
  4. 5
      accounts_app/apps.py
  5. 12
      accounts_app/forms.py
  6. 22
      accounts_app/urls.py
  7. 36
      accounts_app/views.py
  8. 10
      clientsideapp/urls.py
  9. 2
      clientsideapp/views.py
  10. 10
      devapp/urls.py
  11. 4
      devapp/views.py
  12. 8
      djing/settings_example.py
  13. 20
      djing/urls.py
  14. 4
      djing/views.py
  15. 10
      ip_pool/urls.py
  16. 6
      ip_pool/views.py
  17. 2
      mydefs.py
  18. 6
      privatemessage/urls.py
  19. 2
      privatemessage/views.py
  20. 2
      searchapp/urls.py
  21. 2
      statistics/urls.py
  22. 8
      tariff_app/urls.py
  23. 4
      tariff_app/views.py
  24. 1
      taskapp/admin.py
  25. 28
      taskapp/models.py
  26. 13
      taskapp/urls.py
  27. 26
      taskapp/views.py
  28. 2
      templates/abonapp/abonamount.html
  29. 8
      templates/abonapp/activate_service.html
  30. 6
      templates/abonapp/addAbon.html
  31. 4
      templates/abonapp/addGroup.html
  32. 10
      templates/abonapp/addInvoice.html
  33. 10
      templates/abonapp/buy_tariff.html
  34. 10
      templates/abonapp/complete_service.html
  35. 6
      templates/abonapp/debtors.html
  36. 2
      templates/abonapp/editAbon.html
  37. 14
      templates/abonapp/ext.htm
  38. 12
      templates/abonapp/group_list.html
  39. 4
      templates/abonapp/invoiceForPayment.html
  40. 6
      templates/abonapp/log.html
  41. 4
      templates/abonapp/payHistory.html
  42. 20
      templates/abonapp/peoples.html
  43. 16
      templates/abonapp/services.html
  44. 11
      templates/accounts/acc_list.html
  45. 4
      templates/accounts/create_acc.html
  46. 10
      templates/accounts/ext.htm
  47. 6
      templates/accounts/group.html
  48. 4
      templates/accounts/group_list.html
  49. 2
      templates/accounts/login.html
  50. 2
      templates/accounts/profile_chgroup.html
  51. 2
      templates/accounts/settings/ch_info.html
  52. 14
      templates/accounts/settings/ext.htm
  53. 21
      templates/accounts/settings/permissions.html
  54. 38
      templates/base.html
  55. 8
      templates/base_without_left.html
  56. 4
      templates/clientsideapp/debt_buy.html
  57. 2
      templates/clientsideapp/debts.html
  58. 20
      templates/clientsideapp/ext.html
  59. 4
      templates/devapp/dev.html
  60. 8
      templates/devapp/devices.html
  61. 6
      templates/devapp/ext.htm
  62. 4
      templates/ip_pool/add_pool.html
  63. 8
      templates/ip_pool/index.html
  64. 8
      templates/ip_pool/ips.html
  65. 4
      templates/private_messages/item.html
  66. 2
      templates/private_messages/send_form.html
  67. 4
      templates/searchapp/index.html
  68. 4
      templates/tariff_app/editTarif.html
  69. 18
      templates/tariff_app/tarifs.html
  70. 6
      templates/taskapp/add_edit_task.html
  71. 10
      templates/taskapp/ext.htm
  72. 18
      templates/taskapp/tasklist.html
  73. 28
      templates/taskapp/tasklist_active.html
  74. 12
      templates/taskapp/tasklist_finish.html
  75. 12
      templates/taskapp/tasklist_own.html

14
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<gid>\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),

27
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<uid>\d+)$', views.abonhome, name='abonhome_link'),
url(r'^$', views.peoples, name='people_list'),
url(r'^addabon$', views.addabon, name='add_abon'),
url(r'^(?P<uid>\d+)$', views.abonhome, name='abon_home'),
url(r'^(?P<uid>\d+)/services$', views.abon_services, name='abon_services_link'),
url(r'^(?P<uid>\d+)/amount', views.abonamount, name='abon_amount_link'),
url(r'^(?P<uid>\d+)/debts', views.invoice_for_payment, name='abon_debts_link'),
url(r'^(?P<uid>\d+)/pay_history', views.pay_history, name='abon_phistory_link'),
url(r'^(?P<uid>\d+)/services$', views.abon_services, name='abon_services'),
url(r'^(?P<uid>\d+)/amount', views.abonamount, name='abon_amount'),
url(r'^(?P<uid>\d+)/debts', views.invoice_for_payment, name='abon_debts'),
url(r'^(?P<uid>\d+)/pay_history', views.pay_history, name='abon_phistory'),
url(r'^(?P<uid>\d+)/addinvoice$', views.add_invoice, name='abonapp_addinvoice_link'),
url(r'^(?P<uid>\d+)/buy$', views.buy_tariff, name='abonapp_buy_tariff'),
url(r'^(?P<uid>\d+)/chpriority$', views.chpriority, name='abonapp_chpriority_tariff'),
url(r'^(?P<uid>\d+)/complete_service(?P<srvid>\d+)$', views.complete_service, name='abonapp_compl_srv'),
url(r'^(?P<uid>\d+)/activate_service(?P<srvid>\d+)$', views.activate_service, name='abonapp_activate_service'),
url(r'^(?P<uid>\d+)/addinvoice$', views.add_invoice, name='add_invoice'),
url(r'^(?P<uid>\d+)/buy$', views.buy_tariff, name='buy_tariff'),
url(r'^(?P<uid>\d+)/chpriority$', views.chpriority, name='chpriority_tariff'),
url(r'^(?P<uid>\d+)/complete_service(?P<srvid>\d+)$', views.complete_service, name='compl_srv'),
url(r'^(?P<uid>\d+)/activate_service(?P<srvid>\d+)$', views.activate_service, name='activate_service'),
url(r'^(?P<uid>\d+)/unsubscribe_service(?P<srvid>\d+)$', views.unsubscribe_service,
name='abonapp_unsubscribe_service')
name='unsubscribe_service')
]

30
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' <a href="%s">Вернуться</a>' % resolve_url('abonhome_link', gid=gid, uid=abon.id)
u' <a href="%s">Вернуться</a>' % 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('<h1>Request not confirmed</h1>')
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

5
accounts_app/apps.py

@ -0,0 +1,5 @@
from django.apps import AppConfig
class AccountsAppConfig(AppConfig):
name = 'acc_app'

12
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()
}

22
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<id>\d+)$', views.profile_show, name='other_profile'),
url(r'^(?P<id>\d+)/perms$', views.perms, name='profile_perms_link'),
url(r'^(?P<uid>\d+)/chgroup$', views.chgroup, name='profile_chgroup_link'),
url(r'^(?P<uid>\d+)/del$', views.delete_profile, name='delete_profile_link'),
url(r'^(?P<id>\d+)/perms$', views.perms, name='setup_perms'),
url(r'^(?P<uid>\d+)/chgroup$', views.chgroup, name='profile_setup_group'),
url(r'^(?P<uid>\d+)/del$', views.delete_profile, name='delete_profile'),
# назначить задание
url(r'^(?P<uid>\d+)/appoint_task$', views.appoint_task, name='profile_appoint_task'),
url(r'^(?P<uid>\d+)/appoint_task$', views.appoint_task, name='appoint_task'),
url(r'^group/$', views.groups, name='profile_groups_list'),
url(r'^group/(?P<id>\d+)$', views.group, name='profile_group_link')
url(r'^group/$', views.groups, name='groups_list'),
url(r'^group/(?P<id>\d+)$', views.group, name='group_link')
]

36
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))

10
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_id>\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_id>\d+)$', views.debt_buy, name='debt_buy')
]

2
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', {

10
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<did>\d+)$', views.devview, name='devs_view_link'),
url(r'^(?P<did>\d+)/del$', views.devdel, name='devs_del_link'),
url(r'^(?P<devid>\d+)/edit$', views.dev, name='devs_edit_link'),
url(r'^$', views.devices, name='devs'),
url(r'^add$', views.dev, name='add'),
url(r'^(?P<did>\d+)$', views.devview, name='view'),
url(r'^(?P<did>\d+)/del$', views.devdel, name='del'),
url(r'^(?P<devid>\d+)/edit$', views.dev, name='edit'),
]

4
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:

8
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')

20
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)
]

4
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):

10
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')
url(r'^delip$', views.delip, name='del_ip')
]

6
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')

2
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

6
privatemessage/urls.py

@ -4,7 +4,7 @@ import views
urlpatterns = [
url(r'^$', views.home, name='privmsg_home'),
url(r'^delitem_(?P<id>\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<id>\d+)$', views.delitem, name='delitem'),
url(r'^write', views.send_message, name='send_message')
]

2
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:

2
searchapp/urls.py

@ -4,6 +4,6 @@ import views
urlpatterns = [
url(r'^$', views.home, name='search_home_link'),
url(r'^$', views.home, name='home'),
]

2
statistics/urls.py

@ -4,5 +4,5 @@ import views
urlpatterns = [
url(r'^$', views.home, name='stat_home'),
url(r'^$', views.home, name='home'),
]

8
tariff_app/urls.py

@ -4,8 +4,8 @@ import views
urlpatterns = [
url(r'^$', views.tarifs, name='tarifs_link'),
url(r'^(?P<tarif_id>\d+)$', views.edit_tarif, name='tarifs_edit_link'),
url(r'^add$', views.edit_tarif, name='tarifs_add_link'),
url(r'^del(?P<id>\d+)$', views.del_tarif, name='tarifs_del_link')
url(r'^$', views.tarifs, name='home'),
url(r'^(?P<tarif_id>\d+)$', views.edit_tarif, name='edit'),
url(r'^add$', views.edit_tarif, name='add'),
url(r'^del(?P<id>\d+)$', views.del_tarif, name='del')
]

4
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')

1
taskapp/admin.py

@ -4,3 +4,4 @@ import models
admin.site.register(models.Task)
admin.site.register(models.ChangeLog)

28
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 - Характер поломки

13
taskapp/urls.py

@ -4,14 +4,15 @@ import views
urlpatterns = [
url(r'^$', views.home, name='task_home'),
url(r'^(?P<task_id>\d+)/edit$', views.task_add_edit, name='task_edit'),
url(r'^(?P<task_id>\d+)/delete$', views.task_delete, name='task_delete'),
url(r'^(?P<task_id>\d+)/fin$', views.task_finish, name='task_finish'),
url(r'^(?P<task_id>\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<task_id>\d+)/edit$', views.task_add_edit, name='edit'),
url(r'^(?P<task_id>\d+)/delete$', views.task_delete, name='delete'),
url(r'^(?P<task_id>\d+)/fin$', views.task_finish, name='finish'),
url(r'^(?P<task_id>\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')
]

26
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')

2
templates/abonapp/abonamount.html

@ -13,7 +13,7 @@
<div class="row">
<div class="col-sm-4">
<form role="form" action="{% url 'abon_amount_link' abon_group.id abon.id %}"
<form role="form" action="{% url 'abonapp:abon_amount' abon_group.id abon.id %}"
method="post"> {% csrf_token %}
<div class="form-group-sm">

8
templates/abonapp/activate_service.html

@ -4,9 +4,9 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li class="active">Активировать услугу</li>
</ol>
@ -19,7 +19,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'abonapp_activate_service' abon_group.id abon.id abtar.id %}"
<form role="form" action="{% url 'abonapp:activate_service' abon_group.id abon.id abtar.id %}"
method="post">{% csrf_token %}
<input name="finish_confirm" value="yes" type="hidden">

6
templates/abonapp/addAbon.html

@ -3,8 +3,8 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li class="active">Добавить абонента</li>
</ol>
@ -17,7 +17,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'addabon_link' abon_group.id %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'abonapp:add_abon' abon_group.id %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="login">Логин абонента</label>

4
templates/abonapp/addGroup.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li class="active">Добавить группу</li>
</ol>
@ -17,7 +17,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'addgroup_link' %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'abonapp:add_group' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="gtitle">Название группы</label>

10
templates/abonapp/addInvoice.html

@ -4,9 +4,9 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li class="active">Добавить долг</li>
</ol>
@ -14,11 +14,11 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Добавьте платёж на оплату для
<u><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ abon.fio }}</a></u>
<u><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ abon.fio }}</a></u>
</h3>
</div>
<div class="panel-body">
<form role="form" action="{% url 'abonapp_addinvoice_link' abon_group.id abon.id %}"
<form role="form" action="{% url 'abonapp:add_invoice' abon_group.id abon.id %}"
method="post">{% csrf_token %}
<div class="form-group">
<label for="pamount">Сумма для платежа</label>

10
templates/abonapp/buy_tariff.html

@ -4,9 +4,9 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li class="active">Заказать услугу</li>
</ol>
@ -15,7 +15,7 @@
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Купить новую услугу (заказать тариф) для <a
href="{% url 'abonhome_link' abon_group.id abon.id %}" title="На страницу абонента">абонента</a>
href="{% url 'abonapp:abon_home' abon_group.id abon.id %}" title="На страницу абонента">абонента</a>
</h3>
</div>
<div class="panel-body">
@ -25,7 +25,7 @@
<strong>Внимание!</strong> {{ warntext|safe }}
</div>
{% endif %}
<form role="form" action="{% url 'abonapp_buy_tariff' abon_group.id abon.id %}"
<form role="form" action="{% url 'abonapp:buy_tariff' abon_group.id abon.id %}"
method="post">{% csrf_token %}
<div class="form-group">
<label for="tariff">Выбирите тарифф</label>

10
templates/abonapp/complete_service.html

@ -4,9 +4,9 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ abon.fio }}</a></li>
<li class="active">Завершить услугу</li>
</ol>
@ -20,7 +20,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'abonapp_compl_srv' abon_group.id abon.id abtar.id %}"
<form role="form" action="{% url 'abonapp:compl_srv' abon_group.id abon.id abtar.id %}"
method="post">{% csrf_token %}
<input name="finish_confirm" value="yes" type="hidden">
@ -29,7 +29,7 @@
Для продолжения пользования ресурсами надо подключить нужную услугу</p>
<p>Подробнее:<br/>
Вы завершаете тариф <a href="{% url 'tarifs_edit_link' abtar.tariff.id %}"
Вы завершаете тариф <a href="{% url 'tarifs:edit' abtar.tariff.id %}"
target="_blank">{{ abtar.tariff.title }}</a>.<br/>
Услуга была подключена: {{ abtar.time_start|date:'d F Y, H:i:s' }}<br/>

6
templates/abonapp/debtors.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li class="active">Должники</li>
</ol>
@ -26,12 +26,12 @@
{% for invoice in invoices %}
<tr>
<td>{{ invoice.id }}</td>
<td><a href="{% url 'abonhome_link' invoice.abon.group.id invoice.abon.id %}"
<td><a href="{% url 'abonapp:abon_home' invoice.abon.group.id invoice.abon.id %}"
target="_blank">{{ invoice.abon.username }}</a></td>
<td>{{ invoice.amount }}</td>
<td>{{ invoice.comment }}</td>
<td>{{ invoice.date_create|date:'d b H:i' }}</td>
<td><a href="{% url 'other_profile' invoice.author.id %}"
<td><a href="{% url 'acc_app:other_profile' invoice.author.id %}"
target="_blank">{{ invoice.author.username }}</a></td>
</tr>
{% empty %}

2
templates/abonapp/editAbon.html

@ -11,7 +11,7 @@
<div class="row">
<div class="col-sm-4">
<form role="form" action="{% url 'abonhome_link' abon_group.id abon.id %}" method="post"> {% csrf_token %}
<form role="form" action="{% url 'abonapp:abon_home' abon_group.id abon.id %}" method="post"> {% csrf_token %}
<div class="form-group-sm">
<label for="grp">Группа</label>

14
templates/abonapp/ext.htm

@ -3,8 +3,8 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'people_list_link' abon_group.id %}">{{ abon_group.title }}</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:people_list' abon_group.id %}">{{ abon_group.title }}</a></li>
<li class="active">{{ abon.fio }}</li>
</ol>
@ -24,15 +24,15 @@
</div>
<ul class="nav nav-tabs">
<li class="active"><a href="#livetab_content" data-tab-remote="{% url 'abonhome_link' abon_group.id abon.id %}"
<li class="active"><a href="#livetab_content" data-tab-remote="{% url 'abonapp:abon_home' abon_group.id abon.id %}"
role="tab" data-toggle="tab">Информация абонента</a></li>
<li><a href="#livetab_content" data-tab-remote="{% url 'abon_services_link' abon_group.id abon.id %}" role="tab"
<li><a href="#livetab_content" data-tab-remote="{% url 'abonapp:abon_services' abon_group.id abon.id %}" role="tab"
data-toggle="tab">Услуги</a></li>
<li><a href="#livetab_content" data-tab-remote="{% url 'abon_amount_link' abon_group.id abon.id %}" role="tab"
<li><a href="#livetab_content" data-tab-remote="{% url 'abonapp:abon_amount' abon_group.id abon.id %}" role="tab"
data-toggle="tab">Пополнить счёт</a></li>
<li><a href="#livetab_content" data-tab-remote="{% url 'abon_debts_link' abon_group.id abon.id %}" role="tab"
<li><a href="#livetab_content" data-tab-remote="{% url 'abonapp:abon_debts' abon_group.id abon.id %}" role="tab"
data-toggle="tab">Долги</a></li>
<li><a href="#livetab_content" data-tab-remote="{% url 'abon_phistory_link' abon_group.id abon.id %}" role="tab"
<li><a href="#livetab_content" data-tab-remote="{% url 'abonapp:abon_phistory' abon_group.id abon.id %}" role="tab"
data-toggle="tab">История платежей</a></li>
</ul>

12
templates/abonapp/group_list.html

@ -16,7 +16,7 @@
<tr>
<th width="50">#</th>
<th>
<a href="{% url 'abongroup_list_link' %}?order_by=title&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:group_list' %}?order_by=title&dir={{ dir|default:"down" }}">
Название группы
</a>
{% if order_by == 'title' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -31,13 +31,13 @@
{% for gr in groups %}
<tr>
<td>{{ gr.id }}</td>
<td><a href="{% url 'people_list_link' gr.id %}">{{ gr.title }}</a></td>
<td><a href="{% url 'abonapp:people_list' gr.id %}">{{ gr.title }}</a></td>
<td>{{ gr.usercount }}</td>
<td>
{% if gr.usercount > 0 %}
<a href="#" class="btn btn-sm btn-default disabled">
{% else %}
<a href="{% url 'people_delgroup_link' %}?t=a&id={{ gr.id }}" class="btn btn-sm btn-danger">
<a href="{% url 'abonapp:del_group' %}?t=a&id={{ gr.id }}" class="btn btn-sm btn-danger">
{% endif %}
<span class="glyphicon glyphicon-remove-circle"></span></a>
</td>
@ -51,13 +51,13 @@
<tfoot>
<tr>
<td colspan="4" class="btn-group">
<a href="{% url 'addgroup_link' %}" class="btn btn-success btn-sm">
<a href="{% url 'abonapp:add_group' %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> Создать группу
</a>
<a href="{% url 'abonapp_log_link' %}" class="btn btn-default btn-sm">
<a href="{% url 'abonapp:log' %}" class="btn btn-default btn-sm">
<span class="glyphicon glyphicon-record"></span> Действия абонентов
</a>
<a href="{% url 'abonapp_debtors' %}" class="btn btn-default btn-sm">
<a href="{% url 'abonapp:debtors' %}" class="btn btn-default btn-sm">
<span class="glyphicon glyphicon-exclamation-sign"></span> Список должников
</a>
</td>

4
templates/abonapp/invoiceForPayment.html

@ -32,7 +32,7 @@
{{ inv.status|yesno:'Создан оплаченным,Ещё не оплачено' }}
{% endif %}
</td>
<td><a href="{% url 'other_profile' inv.author.id %}" target="_blank">{{ inv.author.username }}</a></td>
<td><a href="{% url 'acc_app:other_profile' inv.author.id %}" target="_blank">{{ inv.author.username }}</a></td>
</tr>
{% empty %}
<tr>
@ -43,7 +43,7 @@
<tfoot>
<tr>
<th colspan="7">
<a href="{% url 'abonapp_addinvoice_link' abon_group.id abon.id %}" class="btn btn-success btn-sm">
<a href="{% url 'abonapp:add_invoice' abon_group.id abon.id %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> Добавить
</a>
</th>

6
templates/abonapp/log.html

@ -3,7 +3,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li class="active">История действий абонентов</li>
</ol>
@ -28,10 +28,10 @@
{% else %}
<span class="glyphicon glyphicon-hand-down"></span>
{% endif %} {{ l.amount }}</td>
<td><a href="{% url 'abonhome_link' l.abon.group.id l.abon.id %}">{{ l.abon.username }}</a></td>
<td><a href="{% url 'abonapp:abon_home' l.abon.group.id l.abon.id %}">{{ l.abon.username }}</a></td>
<td>{{ l.comment }}</td>
<td>{{ l.date|date:"D d E Y H:i:s" }}</td>
<td><a href="{% url 'other_profile' l.author.id %}">{{ l.author.username }}</a></td>
<td><a href="{% url 'acc_app:other_profile' l.author.id %}">{{ l.author.username }}</a></td>
</tr>
{% empty %}
<tr>

4
templates/abonapp/payHistory.html

@ -14,10 +14,10 @@
<tbody>
{% for ph in pay_history %}
<tr>
<td><a href="{% url 'abonhome_link' abon_group.id abon.id %}">{{ ph.abon.username }}</a></td>
<td><a href="{% url 'abonapp:abon_home' abon_group.id abon.id %}">{{ ph.abon.username }}</a></td>
<td>{{ ph.amount }}</td>
<td>{{ ph.date|date:'d F Y, H:i:s' }}</td>
<td><a target="_blank" href="{% url 'other_profile' ph.author.id %}">{{ ph.author.username }}</a></td>
<td><a target="_blank" href="{% url 'acc_app:other_profile' ph.author.id %}">{{ ph.author.username }}</a></td>
<td>{{ ph.comment }}</td>
</tr>
{% empty %}

20
templates/abonapp/peoples.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'abongroup_list_link' %}">Группы абонентов</a></li>
<li><a href="{% url 'abonapp:group_list' %}">Группы абонентов</a></li>
<li class="active">{{ abon_group.title }}</li>
</ol>
@ -16,25 +16,25 @@
<tr>
<th width="15">#</th>
<th>
<a href="{% url 'people_list_link' abon_group.id %}?order_by=username&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.id %}?order_by=username&dir={{ dir|default:"down" }}">
Абонент
</a>
{% if order_by == 'username' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'people_list_link' abon_group.id %}?order_by=ip_address&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.id %}?order_by=ip_address&dir={{ dir|default:"down" }}">
IP Адрес
</a>
{% if order_by == 'ip_address' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'people_list_link' abon_group.id %}?order_by=fio&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.id %}?order_by=fio&dir={{ dir|default:"down" }}">
ФИО
</a>
{% if order_by == 'fio' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th width="50">
<a href="{% url 'people_list_link' abon_group.id %}?order_by=ballance&dir={{ dir|default:"down" }}">
<a href="{% url 'abonapp:people_list' abon_group.id %}?order_by=ballance&dir={{ dir|default:"down" }}">
Балланс
</a>
{% if order_by == 'ballance' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -52,25 +52,25 @@
<tr class="danger">
{% endif %}
<td>{{ human.id }}</td>
<td><a href="{% url 'abonhome_link' human.group.id human.id %}">{{ human.username }}</a></td>
<td><a href="{% url 'abonapp:abon_home' human.group.id human.id %}">{{ human.username }}</a></td>
<td>{{ human.ip_address|default:'Не назначен' }}</td>
<td>{{ human.fio }}</td>
<td>{{ human.ballance }}</td>
<td><a href="tel:{{ human.telephone }}">{{ human.telephone }}</a></td>
<td>
{% if human.active_tariff %}
<a href="{% url 'tarifs_edit_link' human.active_tariff.id %}">{{ human.active_tariff.title }}</a>
<a href="{% url 'tarifs:edit' human.active_tariff.id %}">{{ human.active_tariff.title }}</a>
{% else %}&mdash;&mdash;&mdash;
{% endif %}
</td>
<td><a href="{% url 'abonapp_del_link' %}?t=a&id={{ human.id }}" class="btn btn-danger btn-sm">
<td><a href="{% url 'abonapp:del_abon' %}?t=a&id={{ human.id }}" class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-remove"></span>
</a></td>
</tr>
{% empty %}
<tr>
<td colspan="8">
Ещё нет абонентов, <a href="{% url 'addabon_link' abon_group.id %}">добавить</a>
Ещё нет абонентов, <a href="{% url 'abonapp:add_abon' abon_group.id %}">добавить</a>
</td>
</tr>
{% endfor %}
@ -78,7 +78,7 @@
<tfoot>
<tr>
<td colspan="8">
<a href="{% url 'addabon_link' abon_group.id %}" class="btn btn-sm btn-default" title="Добавить">
<a href="{% url 'abonapp:add_abon' abon_group.id %}" class="btn btn-sm btn-default" title="Добавить">
<span class="glyphicon glyphicon-plus"></span> Добавить абонента
</a>
</td>

16
templates/abonapp/services.html

@ -19,7 +19,7 @@
{% for trf in abon_tarifs %}
<tr{% if trf.id == active_abontariff_id %} class="active"{% endif %}>
<td>{{ trf.tariff_priority }}</td>
<td><a href="{% url 'tarifs_edit_link' trf.tariff.id %}"
<td><a href="{% url 'tarifs:edit' trf.tariff.id %}"
title="{{ trf.time_start|default:'' }}">{{ trf.tariff.title }}</a></td>
<td>{{ trf.tariff.amount }}</td>
<td>{{ trf.tariff.speedIn }}</td>
@ -28,27 +28,27 @@
{% if trf.id != active_abontariff_id %}
<td class="btn-group">
{% if not active_abontariff_id %}
<a href="{% url 'abonapp_activate_service' abon_group.id abon.id trf.id %}"
<a href="{% url 'abonapp:activate_service' abon_group.id abon.id trf.id %}"
class="btn btn-success btn-sm" title="Активировать услугу">
<i class="glyphicon glyphicon-shopping-cart"></i>
</a>
{% endif %}
<a href="{% url 'abonapp_chpriority_tariff' abon_group.id abon.id %}?t={{ trf.id }}&a=up"
<a href="{% url 'abonapp:chpriority_tariff' abon_group.id abon.id %}?t={{ trf.id }}&a=up"
class="btn btn-default btn-sm" title="Повысить приоритет">
<i class="glyphicon glyphicon-hand-up"></i>
</a>
<a href="{% url 'abonapp_chpriority_tariff' abon_group.id abon.id %}?t={{ trf.id }}&a=down"
<a href="{% url 'abonapp:chpriority_tariff' abon_group.id abon.id %}?t={{ trf.id }}&a=down"
class="btn btn-default btn-sm" title="Понизить приоритет">
<i class="glyphicon glyphicon-hand-down"></i>
</a>
<a href="{% url 'abonapp_unsubscribe_service' abon_group.id abon.id trf.id %}"
<a href="{% url 'abonapp:unsubscribe_service' abon_group.id abon.id trf.id %}"
class="btn btn-danger btn-sm" title="Удалить услугу">
<i class="glyphicon glyphicon-remove"></i>
</a>
</td>
{% else %}
<td>
<a href="{% url 'abonapp_compl_srv' abon_group.id abon.id trf.id %}"
<a href="{% url 'abonapp:compl_srv' abon_group.id abon.id trf.id %}"
title="Завершить услугу досрочно" class="btn btn-danger btn-sm">
<i class="glyphicon glyphicon-remove"></i> Завершить
</a>
@ -58,7 +58,7 @@
{% empty %}
<tr>
<td colspan="7">Нет подключённых абоненту услуг, <a
href="{% url 'abonapp_buy_tariff' abon_group.id abon.id %}" class="lgtbx">купить</a></td>
href="{% url 'abonapp:buy_tariff' abon_group.id abon.id %}" class="lgtbx">купить</a></td>
</tr>
{% endfor %}
</tbody>
@ -66,7 +66,7 @@
<tfoot>
<tr>
<th colspan="7">
<a href="{% url 'abonapp_buy_tariff' abon_group.id abon.id %}" class="btn btn-sm btn-success">
<a href="{% url 'abonapp:buy_tariff' abon_group.id abon.id %}" class="btn btn-sm btn-success">
<span class="glyphicon glyphicon-plus"></span> Купить услугу
</a>
</th>

11
templates/accounts/acc_list.html

@ -6,7 +6,6 @@
<li class="active">Администраторы</li>
</ol>
<h3>Список аккаунтов администраторов</h3>
<div class="table-responsive">
<table class="table table-striped table-bordered">
@ -23,22 +22,22 @@
<tbody>
{% for usr in users %}
<tr>
<td><a href="{% url 'other_profile' usr.id %}">
<td><a href="{% url 'acc_app:other_profile' usr.id %}">
<img width="50" src="{{ usr.avatar.min|default:"/static/img/user_ava.gif" }}"
alt="{{ usr.username }}"/>
</a></td>
<td><a href="{% url 'other_profile' usr.id %}">{{ usr.username }}</a></td>
<td><a href="{% url 'acc_app:other_profile' usr.id %}">{{ usr.username }}</a></td>
<td>{{ usr.get_full_name }}</td>
<td>{% if usr.telephone %}<a href="tel:{{ usr.telephone }}">{{ usr.telephone }}</a>{% else %}
Нету{% endif %}</td>
<td>{% if usr.email %}<a href="mailto:{{ usr.email }}">{{ usr.email }}{% else %}
Нету{% endif %}</a></td>
<td class="btn-group">
<a href="{% url 'profile_appoint_task' usr.id %}" class="btn btn-sm btn-default"
<a href="{% url 'acc_app:appoint_task' usr.id %}" class="btn btn-sm btn-default"
title="Дать задание">
<span class="glyphicon glyphicon-tasks"></span>
</a>
<a href="{% url 'privmsg_send_message' %}?a={{ usr.id }}" class="btn btn-sm btn-info"
<a href="{% url 'privmsg:send_message' %}?a={{ usr.id }}" class="btn btn-sm btn-info"
title="Отправить сообщение">
<span class="glyphicon glyphicon-envelope"></span>
</a>
@ -57,7 +56,7 @@
<tfoot>
<tr>
<th colspan="6">
<a href="{% url 'create_profile_link' %}" class="btn btn-default" title="Добавить аккаунт">
<a href="{% url 'acc_app:create_profile' %}" class="btn btn-default" title="Добавить аккаунт">
<span class="glyphicon glyphicon-plus-sign"></span>
</a>
</th>

4
templates/accounts/create_acc.html

@ -3,7 +3,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'acc_app:accounts_list' %}">Администраторы</a></li>
<li class="active">Добавить</li>
</ol>
@ -27,7 +27,7 @@
<div class="alert-info">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'create_profile_link' %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'acc_app:create_profile' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="login">Логин</label>

10
templates/accounts/ext.htm

@ -3,7 +3,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'acc_app:accounts_list' %}">Администраторы</a></li>
<li class="active">{{ userprofile.username }}</li>
</ol>
@ -18,10 +18,10 @@
{% endif %}
<div class="caption btn-group btn-group-sm">
{% if userprofile == request.user %}
<a href="{% url 'settings_chinfo_link' %}" class="btn btn-primary btn-sm" role="button">
<a href="{% url 'acc_app:setup_info' %}" class="btn btn-primary btn-sm" role="button">
<span class="glyphicon glyphicon-edit"></span> Редактировать</a>
{% endif %}
<a href="{% url 'task_add' %}?rp={{ userprofile.id }}" class="btn btn-default btn-sm" role="button">
<a href="{% url 'taskapp:add' %}?rp={{ userprofile.id }}" class="btn btn-default btn-sm" role="button">
<span class="glyphicon glyphicon-star-empty"></span> Дать задачу</a>
</div>
</div>
@ -31,13 +31,13 @@
<h3>{{ userprofile.username|default:"&lt;Нет ника&gt;" }}</h3>
<ul class="nav nav-tabs">
<li class="active">
<a href="#livetab_content" data-tab-remote="{% url 'other_profile' uid %}" role="tab"
<a href="#livetab_content" data-tab-remote="{% url 'acc_app:other_profile' uid %}" role="tab"
data-toggle="tab">
Администратор
</a>
</li>
<li>
<a href="#livetab_content" data-tab-remote="{% url 'profile_chgroup_link' uid %}" role="tab"
<a href="#livetab_content" data-tab-remote="{% url 'acc_app:profile_setup_group' uid %}" role="tab"
data-toggle="tab">
Группы
</a>

6
templates/accounts/group.html

@ -4,8 +4,8 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'profile_groups_list' %}">Группы</a></li>
<li><a href="{% url 'acc_app:accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'acc_app:groups_list' %}">Группы</a></li>
<li class="active">{{ group.name }}</li>
</ol>
@ -18,7 +18,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'profile_group_link' group.id %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'acc_app:group_link' group.id %}" method="post">{% csrf_token %}
<div class="choice_wrapper">
<label for="sel_left">Доступные права</label>

4
templates/accounts/group_list.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'acc_app:accounts_list' %}">Администраторы</a></li>
<li class="active">Группы</li>
</ol>
@ -26,7 +26,7 @@
{% for grp in groups %}
<tr>
<td>{{ grp.id }}</td>
<td><a href="{% url 'profile_group_link' grp.id %}">{{ grp.name }}</a></td>
<td><a href="{% url 'acc_app:group_link' grp.id %}">{{ grp.name }}</a></td>
<td class="btn-group">
<a href="#" class="btn btn-sm btn-info">
<span class="glyphicon glyphicon-edit"></span>

2
templates/accounts/login.html

@ -47,7 +47,7 @@
</style>
</head>
<body>
<form id="frm" action="{% url 'login_link' %}?next={{ next }}" method="POST" accept-charset="utf-8">{% csrf_token %}
<form id="frm" action="{% url 'acc_app:login' %}?next={{ next }}" method="POST" accept-charset="utf-8">{% csrf_token %}
{% if errmsg %}
<div class="err">
<h4>{{ errmsg }}</h4>

2
templates/accounts/profile_chgroup.html

@ -2,7 +2,7 @@
{% block content %}
<legend>Принадлежность аккаунта группам</legend>
<form action="{% url 'profile_perms_link' userprofile.id %}" method="post" role="form">{% csrf_token %}
<form action="{% url 'acc_app:profile_permissions' userprofile.id %}" method="post" role="form">{% csrf_token %}
<div class="form-group">
<label for="sel_left">Доступные группы</label>
<select name="allgroups" multiple id="sel_left" class="form-group">

2
templates/accounts/settings/ch_info.html

@ -8,7 +8,7 @@
</div>
{% endif %}
<form role="form" action="{% url 'settings_chinfo_link' %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'acc_app:setup_info' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="login">Логин</label>

14
templates/accounts/settings/ext.htm

@ -3,14 +3,14 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'profile' %}">{{ user.username }}</a></li>
<li><a href="{% url 'acc_app:accounts_list' %}">Администраторы</a></li>
<li><a href="{% url 'acc_app:profile' %}">{{ user.username }}</a></li>
<li class="active">Настройки</li>
</ol>
<div class="row">
<div class="col-sm-3">
<form action="{% url 'settings_chava_link' %}" method="post" class="thumbnail"
<form action="{% url 'acc_app:setup_avatar' %}" method="post" class="thumbnail"
enctype="multipart/form-data">{% csrf_token %}
{% if user.avatar %}<img alt="ava" src="{{ user.avatar.min }}"/>
@ -28,16 +28,18 @@
<h3>{{ user.username|default:"&lt;Нет ника&gt;" }}</h3>
<ul class="nav nav-tabs">
<li class="active">
<a href="#livetab_content" data-tab-remote="{% url 'settings_chinfo_link' %}" role="tab"
<a href="#livetab_content" data-tab-remote="{% url 'acc_app:setup_info' %}" role="tab"
data-toggle="tab">
Изменить инфу о себе
</a>
</li>
{% if user.is_superuser %}
<li>
<a href="#livetab_content" data-tab-remote="">
&lt;Другое&gt;
<a href="#livetab_content" data-tab-remote="{% url 'acc_app:setup_perms' user.id %}">
Настройка прав
</a>
</li>
{% endif %}
</ul>
<div class="tab-content">
<div class="tab-pane active" id="livetab_content">

21
templates/accounts/settings/permissions.html

@ -0,0 +1,21 @@
{% extends request.is_ajax|yesno:'nullcont.htm,accounts/settings/ext.htm' %}
{% block content %}
{% if warntext %}
<div class="alert alert-warning alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
{{ warntext }}
</div>
{% endif %}
<form role="form" action="{% url 'acc_app:setup_perms' uid %}" method="post">{% csrf_token %}
{% for perm, pname in form.user_permissions.field.choices %}
<div class="checkbox">
<label>
<input type="checkbox">
{{ pname }}
</label>
</div>
{% endfor %}
</form>
{% endblock %}

38
templates/base.html

@ -53,19 +53,19 @@
<ul class="nav navbar-nav">
<li class="active"><a href="/">Главная</a></li>
<!--<li><a href="{ % url 'gmap:index' %}" target="_blank">Карта</a></li>
<li><a href="{ % url 'stat_home' %}" target="_blank">График траффика</a></li>-->
<li><a href="{% url 'client_home' %}" target="_blank">Кабинет клиента</a></li>
<li><a href="{ % url 'statistics:home' %}" target="_blank">График траффика</a></li>-->
<li><a href="{% url 'client_side:home' %}" target="_blank">Кабинет клиента</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Другое <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="{% url 'settings_chinfo_link' %}">Настройки</a></li>
<li><a href="{% url 'acc_app:setup_info' %}">Настройки</a></li>
<li class="divider"></li>
<li class="dropdown-header">Действия аккаунта</li>
<li><a href="{% url 'logout_link' %}">Выйти</a></li>
<li><a href="{% url 'acc_app:logout' %}">Выйти</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-right" action="{% url 'search_home_link' %}" method="get">
<form class="navbar-form navbar-right" action="{% url 'searchapp:home' %}" method="get">
<div class="input-group stylish-input-group">
<input type="text" class="form-control" placeholder="Search..." name="s">
<span class="input-group-addon">
@ -89,7 +89,7 @@
<div class="row profile_img">
<div class="col-sm-5">
<a href="{% url 'profile' %}">
<a href="{% url 'acc_app:profile' %}">
{% if user.avatar %}
<img alt="{{ user.avatar.min }}" class="img-circle img-responsive"
src="{{ user.avatar.min }}"/>
@ -109,7 +109,7 @@
<ul class="nav nav-sidebar">
{% url 'accounts_list' as accounts_list %}
{% url 'acc_app:accounts_list' as accounts_list %}
<li{% if accounts_list in request.path %} class="active"{% endif %}>
<a href="{{ accounts_list }}">
<span class="glyphicon glyphicon-eye-open"></span> администраторы
@ -117,42 +117,42 @@
</li>
{% url 'abongroup_list_link' as abongroup_list_link %}
{% url 'abonapp:group_list' as abongroup_list_link %}
<li{% if abongroup_list_link in request.path %} class="active"{% endif %}>
<a href="{{ abongroup_list_link }}">
<span class="glyphicon glyphicon-user"></span> абоненты
</a></li>
{% url 'task_home' as task_home %}
{% url 'taskapp:home' as task_home %}
<li{% if task_home in request.path %} class="active"{% endif %}>
<a href="{{ task_home }}">
<span class="glyphicon glyphicon-tasks"></span> Задачи
{% if tasks_count > 0 %}<span class="badge">{{ tasks_count }}</span>{% endif %}
</a></li>
{% url 'tarifs_link' as tarifs_link %}
<li{% if tarifs_link in request.path %} class="active"{% endif %}>
<a href="{{ tarifs_link }}">
{% url 'tarifs:home' as tarifs_home %}
<li{% if tarifs_home in request.path %} class="active"{% endif %}>
<a href="{{ tarifs_home }}">
<span class="glyphicon glyphicon-usd"></span> тарифы
</a></li>
{% url 'privmsg_home' as privmsg_home %}
{% url 'privmsg:home' as privmsg_home %}
<li{% if privmsg_home in request.path %} class="active"{% endif %}>
<a href="{{ privmsg_home }}">
<span class="glyphicon glyphicon-envelope"></span> внутренняя переписка
</a></li>
{% url 'pool_home_link' as pool_home_link %}
<li{% if pool_home_link in request.path %} class="active"{% endif %}>
<a href="{{ pool_home_link }}">
{% url 'ip_pool:home' as ip_pool_home %}
<li{% if ip_pool_home in request.path %} class="active"{% endif %}>
<a href="{{ ip_pool_home }}">
<span class="glyphicon glyphicon-compressed"></span> ip пул
</a></li>
{% url 'devs_link' as devs_link %}
<li{% if devs_link in request.path %} class="active"{% endif %}>
<a href="{{ devs_link }}">
{% url 'devapp:devs' as devapp_devs %}
<li{% if devapp_devs in request.path %} class="active"{% endif %}>
<a href="{{ devapp_devs }}">
<span class="glyphicon glyphicon-hdd"></span> железки
</a></li>

8
templates/base_without_left.html

@ -24,7 +24,7 @@
<div><i class="black icon-cross"></i> ваш ip <b>{{ client_ipaddress }}</b></div>
<div><i class="black icon-trash"></i> траффик за сегодня <b>45 Tb</b></div>
</section>
<form action="{% url 'search_home_link' %}" method="get" id="searchform">
<form action="{% url 'searchapp:home' %}" method="get" id="searchform">
<input type="text" name="s" placeholder="Введите текст сюда">
<input type="submit" class="btn btn-blue" value="Найти">
</form>
@ -39,16 +39,16 @@
<a href="dfdfsdf">Движение средств</a>
</li>
<li>
<a href="{% url 'stat_home' %}">График траффика</a>
<a href="{% url 'statistics:home' %}">График траффика</a>
</li>
<!--<li>
<a target="_blank" href="{ % url 'gmap:index' %}">Карта</a>
</li>-->
<li>
<a href="{% url 'settings_chinfo_link' %}">Настройки</a>
<a href="{% url 'acc_app:setup_info' %}">Настройки</a>
</li>
<li>
<a href="{% url 'logout_link' %}">Выйти</a>
<a href="{% url 'acc_app:logout' %}">Выйти</a>
</li>
</ul>
</nav>

4
templates/clientsideapp/debt_buy.html

@ -16,7 +16,7 @@
<h3 class="panel-title">Оплатить задолженность</h3>
</div>
<div class="panel-body">
<form role="form" action="{% url 'client_debt_buy' debt.id %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'client_side:debt_buy' debt.id %}" method="post">{% csrf_token %}
<div class="checkbox">
<label>
<input type="checkbox" checked name="sure">
@ -38,7 +38,7 @@
<button type="submit" class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-save"></span> Подтвердить
</button>
<a href="{% url 'client_debts' %}" class="btn btn-sm btn-default">
<a href="{% url 'client_side:debts' %}" class="btn btn-sm btn-default">
<span class="glyphicon glyphicon-remove-circle"></span> Отменить
</a>
</div>

2
templates/clientsideapp/debts.html

@ -34,7 +34,7 @@
{% endif %}
</td>
<td class="text-center">
<a href="{% url 'client_debt_buy' debt.id %}" class="btn btn-sm btn-success" title="Оплатить">
<a href="{% url 'client_side:debt_buy' debt.id %}" class="btn btn-sm btn-success" title="Оплатить">
<span class="glyphicon glyphicon-usd"></span>
</a>
</td>

20
templates/clientsideapp/ext.html

@ -28,19 +28,19 @@
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
{% url 'client_home' as client_home %}
<li{% if client_home == request.path %} class="active"{% endif %}>
<a href="{{ client_home }}">Личный кабинет</a>
{% url 'client_side:home' as client_side_home %}
<li{% if client_side_home == request.path %} class="active"{% endif %}>
<a href="{{ client_side_home }}">Личный кабинет</a>
</li>
{% url 'client_pays' as client_pays %}
<li{% if client_pays == request.path %} class="active"{% endif %}>
<a href="{{ client_pays }}">Платежи</a>
{% url 'client_side:pays' as client_side_pays %}
<li{% if client_side_pays == request.path %} class="active"{% endif %}>
<a href="{{ client_side_pays }}">Платежи</a>
</li>
{% url 'client_buy' as client_buy %}
<li{% if client_buy == request.path %} class="active"{% endif %}>
<a href="{{ client_buy }}">Подключить услугу</a>
{% url 'client_side:buy' as client_side_buy %}
<li{% if client_side_buy == request.path %} class="active"{% endif %}>
<a href="{{ client_side_buy }}">Подключить услугу</a>
</li>
<li>
@ -55,7 +55,7 @@
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Другое <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Подать заявку</a></li>
<li><a href="{% url 'client_debts' %}">Просмотреть и оплатить долги <span class="badge">2</span></a>
<li><a href="{% url 'client_side:debts' %}">Просмотреть и оплатить долги <span class="badge">2</span></a>
</li>
<li><a href="#">Сеансы подключений</a></li>
<li class="divider"></li>

4
templates/devapp/dev.html

@ -11,9 +11,9 @@
{% endif %}
<form role="form" action="
{% if devid == 0 %}
{% url 'devs_add_link' %}
{% url 'devapp:add' %}
{% else %}
{% url 'devs_edit_link' devid %}
{% url 'devapp:edit' devid %}
{% endif %}" method="post">{% csrf_token %}
<div class="form-group">

8
templates/devapp/devices.html

@ -23,16 +23,16 @@
<tbody>
{% for dev in devices %}
<tr>
<td><a href="{% url 'devs_view_link' dev.id %}">{{ dev.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' dev.id %}">{{ dev.ip_address }}</a></td>
<td>{{ dev.comment }}</td>
<td>{{ dev.get_devtype_display }}</td>
<td><a href="{% url 'devs_del_link' dev.id %}" class="btn btn-danger btn-sm">
<td><a href="{% url 'devapp:del' dev.id %}" class="btn btn-danger btn-sm">
<span class="glyphicon glyphicon-remove"></span>
</a></td>
</tr>
{% empty %}
<tr>
<td colspan="4">Нет созданных устройств, <a href="{% url 'devs_add_link' %}">создать</a></td>
<td colspan="4">Нет созданных устройств, <a href="{% url 'devapp:add' %}">создать</a></td>
</tr>
{% endfor %}
</tbody>
@ -40,7 +40,7 @@
<tfoot>
<tr>
<td colspan="4">
<a href="{% url 'devs_add_link' %}" class="btn btn-success btn-sm">
<a href="{% url 'devapp:add' %}" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-plus"></span> Добавить
</a>
</td>

6
templates/devapp/ext.htm

@ -3,7 +3,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'devs_link' %}">Устройства</a></li>
<li><a href="{% url 'devapp:devs' %}">Устройства</a></li>
<li class="active">{{ dev.ip_address }}</li>
</ol>
@ -13,9 +13,9 @@
</div>
<ul class="nav nav-tabs">
<li class="active"><a href="#livetab_content" data-tab-remote="{% url 'devs_view_link' dev.id %}" role="tab"
<li class="active"><a href="#livetab_content" data-tab-remote="{% url 'devapp:view' dev.id %}" role="tab"
data-toggle="tab">Порты {{ dev.ip_address }}</a></li>
<li><a href="#livetab_content" data-tab-remote="{% url 'devs_edit_link' dev.id %}" role="tab" data-toggle="tab">Редактировать</a>
<li><a href="#livetab_content" data-tab-remote="{% url 'devapp:edit' dev.id %}" role="tab" data-toggle="tab">Редактировать</a>
</li>
</ul>

4
templates/ip_pool/add_pool.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'pool_home_link' %}">IP Пул</a></li>
<li><a href="{% url 'ip_pool:home' %}">IP Пул</a></li>
<li class="active">Добавить</li>
</ol>
@ -18,7 +18,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'pool_add_link' %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'ip_pool:add' %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="start_ip">Начальный ip</label>

8
templates/ip_pool/index.html

@ -27,11 +27,11 @@
<td>{{ pl.1 }}</td>
<td>{{ pl.2 }}</td>
<td colspan="2" class="btn-group">
<a href="{% url 'pool_ips_link' %}?ips={{ pl.0 }}&ipe={{ pl.1 }}"
<a href="{% url 'ip_pool:ips' %}?ips={{ pl.0 }}&ipe={{ pl.1 }}"
class="btn btn-sm btn-primary">
<span class="glyphicon glyphicon-edit"></span>
</a>
<a href="{% url 'pool_ips_del_link' %}?ips={{ pl.0 }}&ipe={{ pl.1 }}"
<a href="{% url 'ip_pool:ips_del' %}?ips={{ pl.0 }}&ipe={{ pl.1 }}"
class="btn btn-sm btn-danger">
<span class="glyphicon glyphicon-remove-circle"></span>
</a>
@ -40,14 +40,14 @@
{% empty %}
<tr>
<td colspan="5">Нет ни одного пула зарезервированных ip адресов. <a
href="{% url 'pool_add_link' %}">Создать</a></td>
href="{% url 'ip_pool:add' %}">Создать</a></td>
</tr>
{% endfor %}
</tbody>
<tfoot>
<tr>
<td colspan="5">
<a href="{% url 'pool_add_link' %}" class="btn btn-sm btn-success">
<a href="{% url 'ip_pool:add' %}" class="btn btn-sm btn-success">
<span class="glyphicon glyphicon-plus"></span>
</a>
</td>

8
templates/ip_pool/ips.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'pool_home_link' %}">IP Пул</a></li>
<li><a href="{% url 'ip_pool:home' %}">IP Пул</a></li>
<li class="active">Редактировать/Просмотреть</li>
</ol>
@ -26,7 +26,7 @@
<td>{{ pi.id }}</td>
<td>{{ pi.ip }}</td>
<td>{% if pi.abon %}
<a href="{% url 'abonhome_link' pi.abon.group.id pi.abon.id %}">{{ pi.abon.username }}</a>
<a href="{% url 'abonapp:abon_home' pi.abon.group.id pi.abon.id %}">{{ pi.abon.username }}</a>
{% else %}---{% endif %}
</td>
<td>
@ -35,7 +35,7 @@
<span class="glyphicon glyphicon-remove-circle"></span>
</button>
{% else %}
<a href="{% url 'pool_del_ip_link' %}?id={{ pi.id }}" class="btn btn-sm btn-danger">
<a href="{% url 'ip_pool:del_ip' %}?id={{ pi.id }}" class="btn btn-sm btn-danger">
<span class="glyphicon glyphicon-remove-circle"></span>
</a>
{% endif %}
@ -44,7 +44,7 @@
{% empty %}
<tr>
<td colspan="4">Нет ни одного пула зарезервированных ip адресов. <a
href="{% url 'pool_add_link' %}">Создать</a></td>
href="{% url 'ip_pool:add' %}">Создать</a></td>
</tr>
{% endfor %}
</tbody>

4
templates/private_messages/item.html

@ -1,7 +1,7 @@
<tr{% if not msg.is_viewed %} class="green"{% endif %}>
<td><input type="checkbox" id="c{{ msg.id }}"><label for="c{{ msg.id }}" class="checkbox"></label></td>
<td>{{ msg.text }}</td>
<td><a href="{% url 'other_profile' msg.sender.id %}">{{ msg.sender.get_full_name }}</a></td>
<td><a href="{% url 'acc_app:other_profile' msg.sender.id %}">{{ msg.sender.get_full_name }}</a></td>
<td>{{ msg.date_send }}</td>
<td><a href="{% url 'privmsg_delitem' msg.id %}" class="btn btn-blue jsdel"><i class="icon-trash"></i></a></td>
<td><a href="{% url 'privmsg:delitem' msg.id %}" class="btn btn-blue jsdel"><i class="icon-trash"></i></a></td>
</tr>

2
templates/private_messages/send_form.html

@ -1,4 +1,4 @@
<form action="{% url 'privmsg_send_message' %}?a={{ a }}" method="post" accept-charset="UTF-8"
<form action="{% url 'privmsg:send_message' %}?a={{ a }}" method="post" accept-charset="UTF-8"
class="lightblock">{% csrf_token %}
<div class="lghtbx_head">
<h3>Отправить сообщение</h3>

4
templates/searchapp/index.html

@ -6,7 +6,7 @@
<h3 class="panel-title">Поиск по &quot;{{ s }}&quot;</h3>
</div>
<div class="panel-body">
<form role="form" action="{% url 'search_home_link' %}" method="get">
<form role="form" action="{% url 'searchapp:home' %}" method="get">
<div class="form-group">
<label for="srfield">Измените тут строку поиска</label>
@ -22,7 +22,7 @@
</form>
<div class="list-group">
{% for ab in abons %}
<a href="{% url 'abonhome_link' ab.group.id ab.id %}" target="_blank" class="list-group-item">
<a href="{% url 'abonapp:abon_home' ab.group.id ab.id %}" target="_blank" class="list-group-item">
<h4 class="list-group-item-heading">{{ ab.username|safe }}</h4>
<p class="list-group-item-text">

4
templates/tariff_app/editTarif.html

@ -4,7 +4,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'tarifs_link' %}">Тарифы</a></li>
<li><a href="{% url 'tarifs:home' %}">Тарифы</a></li>
<li class="active">
{% if tarif_id == 0 %}
Добавить
@ -23,7 +23,7 @@
{% if warntext %}
<div class="alert-danger">{{ warntext }}</div>
{% endif %}
<form role="form" action="{% url 'tarifs_edit_link' tarif_id %}" method="post">{% csrf_token %}
<form role="form" action="{% url 'tarifs:edit' tarif_id %}" method="post">{% csrf_token %}
<div class="form-group">
<label for="id_title">Название тарифа</label>

18
templates/tariff_app/tarifs.html

@ -14,31 +14,31 @@
<thead>
<tr>
<th>
<a href="{% url 'tarifs_link' %}?order_by=title&dir={{ dir|default:"down" }}">
<a href="{% url 'tarifs:home' %}?order_by=title&dir={{ dir|default:"down" }}">
Тариф
</a>
{% if order_by == 'title' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'tarifs_link' %}?order_by=speedIn&dir={{ dir|default:"down" }}">
<a href="{% url 'tarifs:home' %}?order_by=speedIn&dir={{ dir|default:"down" }}">
Входящая скорость
</a>
{% if order_by == 'speedIn' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'tarifs_link' %}?order_by=speedOut&dir={{ dir|default:"down" }}">
<a href="{% url 'tarifs:home' %}?order_by=speedOut&dir={{ dir|default:"down" }}">
Исходящая скорость
</a>
{% if order_by == 'speedOut' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'tarifs_link' %}?order_by=amount&dir={{ dir|default:"down" }}">
<a href="{% url 'tarifs:home' %}?order_by=amount&dir={{ dir|default:"down" }}">
Стоимость
</a>
{% if order_by == 'amount' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
</th>
<th>
<a href="{% url 'tarifs_link' %}?order_by=time_of_action&dir={{ dir|default:"down" }}">
<a href="{% url 'tarifs:home' %}?order_by=time_of_action&dir={{ dir|default:"down" }}">
Время действия
</a>
{% if order_by == 'time_of_action' %}<span class="glyphicon glyphicon-filter"></span>{% endif %}
@ -50,19 +50,19 @@
<tbody>
{% for tar in tariflist %}
<tr>
<td><a href="{% url 'tarifs_edit_link' tar.id %}"><b>{{ tar.title }}</b></a></td>
<td><a href="{% url 'tarifs:edit' tar.id %}"><b>{{ tar.title }}</b></a></td>
<td>{{ tar.speedIn }}</td>
<td>{{ tar.speedOut }}</td>
<td>{{ tar.amount }} руб</td>
<td>{{ tar.time_of_action }} дней</td>
<td>{{ tar.calc_type }}</td>
<td><a href="{% url 'tarifs_del_link' tar.id %}" class="btn btn-sm btn-danger">
<td><a href="{% url 'tarifs:del' tar.id %}" class="btn btn-sm btn-danger">
<span class="glyphicon glyphicon-remove-circle"></span>
</a></td>
</tr>
{% empty %}
<tr>
<td colspan="7">Ещё нет созданных тарифов, <a href="{% url 'tarifs_add_link' %}" class="lgtbx">создать</a>
<td colspan="7">Ещё нет созданных тарифов, <a href="{% url 'tarifs:add' %}" class="lgtbx">создать</a>
</td>
</tr>
{% endfor %}
@ -71,7 +71,7 @@
<tfoot>
<tr>
<td colspan="7">
<a href="{% url 'tarifs_add_link' %}" class="btn btn-sm btn-success">
<a href="{% url 'tarifs:add' %}" class="btn btn-sm btn-success">
<span class="glyphicon glyphicon-plus"></span> Добавить
</a>
</td>

6
templates/taskapp/add_edit_task.html

@ -3,7 +3,7 @@
<ol class="breadcrumb">
<li><span class="glyphicon glyphicon-home"></span></li>
<li><a href="{% url 'task_home' %}">Задачи</a></li>
<li><a href="{% url 'taskapp:home' %}">Задачи</a></li>
<li class="active">{% if task_id %}Редактировать{% else %}Создать{% endif %}</li>
</ol>
@ -21,9 +21,9 @@
<div class="panel-body">
{% if task_id %}
<form role="form" action="{% url 'task_edit' task_id %}"
<form role="form" action="{% url 'taskapp:edit' task_id %}"
{% else %}
<form role="form" action="{% url 'task_add' %}"
<form role="form" action="{% url 'taskapp:add' %}"
{% endif %} method="post" enctype="multipart/form-data">
{% csrf_token %}<input type="hidden" name="MAX_FILE_SIZE" value="409600"/>

10
templates/taskapp/ext.htm

@ -21,27 +21,27 @@
<ul class="nav nav-tabs">
<li class="active">
<a href="#livetab_content" data-tab-remote="{% url 'task_home' %}" role="tab" data-toggle="tab">
<a href="#livetab_content" data-tab-remote="{% url 'taskapp:home' %}" role="tab" data-toggle="tab">
Новые задачи
</a>
</li>
<li>
<a href="#livetab_content" data-tab-remote="{% url 'active_tasks' %}" role="tab" data-toggle="tab">
<a href="#livetab_content" data-tab-remote="{% url 'taskapp:active_tasks' %}" role="tab" data-toggle="tab">
Активные задачи
</a>
</li>
<li>
<a href="#livetab_content" data-tab-remote="{% url 'finished_tasks' %}" role="tab" data-toggle="tab">
<a href="#livetab_content" data-tab-remote="{% url 'taskapp:finished_tasks' %}" role="tab" data-toggle="tab">
Выполненные задачи
</a>
</li>
<li>
<a href="#livetab_content" data-tab-remote="{% url 'own_tasks' %}" role="tab" data-toggle="tab">
<a href="#livetab_content" data-tab-remote="{% url 'taskapp:own_tasks' %}" role="tab" data-toggle="tab">
Назначенные мной задачи
</a>
</li>
<li>
<a href="#livetab_content" data-tab-remote="{% url 'all_tasks' %}" role="tab" data-toggle="tab">
<a href="#livetab_content" data-tab-remote="{% url 'taskapp:my_tasks' %}" role="tab" data-toggle="tab">
Все мои задачи
</a>
</li>

18
templates/taskapp/tasklist.html

@ -32,24 +32,26 @@
<td>{{ task.id }}</td>
<td>{{ task.descr }}</td>
<td><a href="{% url 'other_profile' task.recipient.id %}" title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }}</a></td>
<td><a href="{% url 'other_profile' task.author.id %}" title="{{ task.author.get_full_name }}">{{ task.author.username }}</a></td>
<td><a href="{% url 'acc_app:other_profile' task.recipient.id %}" title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }}</a></td>
<td><a href="{% url 'acc_app:other_profile' task.author.id %}" title="{{ task.author.get_full_name }}">{{ task.author.username }}</a></td>
<td>{{ task.get_mode_display }}</td>
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td><a href="{% url 'devs_view_link' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td>{{ task.time_of_create|date:'d N yг H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group btn-group-justified">
<a href="{% url 'task_begin' task.id %}" class="btn btn-primary btn-xs" title="Начать">
<a href="{% url 'taskapp:begin' task.id %}" class="btn btn-primary btn-xs" title="Начать">
<span class="glyphicon glyphicon-cog"></span>
</a>
<a href="{% url 'task_finish' task.id %}" class="btn btn-success btn-xs" title="Завершить">
<a href="{% url 'taskapp:finish' task.id %}" class="btn btn-success btn-xs" title="Завершить">
<span class="glyphicon glyphicon-ok"></span>
</a>
<a href="{% url 'task_edit' task.id %}" class="btn btn-default btn-xs" title="Редактировать">
{% if perms.taskapp.can_change_task %}
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-default btn-xs" title="Редактировать">
<span class="glyphicon glyphicon-edit"></span>
</a>
{% endif %}
</td>
</tr>
{% empty %}
@ -61,9 +63,7 @@
<tfoot>
<tr>
<td colspan="13">
<a href="{% url 'task_add' %}" class="btn btn-sm btn-success" title="Создать новую задачу">
<span class="glyphicon glyphicon-plus"></span> Добавить задачу
</a>
{% include 'taskapp/footer_btns.html' %}
</td>
</tr>
</tfoot>

28
templates/taskapp/tasklist_active.html

@ -32,26 +32,30 @@
<td>{{ task.id }}</td>
<td>{{ task.descr }}</td>
<td><a href="{% url 'other_profile' task.recipient.id %}"
<td><a href="{% url 'acc_app:other_profile' task.recipient.id %}"
title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }}</a></td>
<td><a href="{% url 'other_profile' task.author.id %}"
<td><a href="{% url 'acc_app:other_profile' task.author.id %}"
title="{{ task.author.get_full_name }}">{{ task.author.username }}</a></td>
<td>{{ task.get_mode_display }}</td>
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td><a href="{% url 'devs_view_link' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td>{{ task.time_of_create|date:'d N yг H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group">
<a href="{% url 'task_finish' task.id %}" class="btn btn-sm btn-success" title="Завершить">
<a href="{% url 'taskapp:finish' task.id %}" class="btn btn-sm btn-success" title="Завершить">
<span class="glyphicon glyphicon-ok"></span>
</a>
<a href="{% url 'task_edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<span class="glyphicon glyphicon-edit"></span>
</a>
<a href="#" class="btn btn-sm btn-danger disabled" title="Удалить">
<span class="glyphicon glyphicon-remove-circle"></span>
</a>
{% if perms.taskapp.can_change_task %}
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<span class="glyphicon glyphicon-edit"></span>
</a>
{% endif %}
{% if perms.taskapp.can_delete_task %}
<a href="#" class="btn btn-sm btn-danger disabled" title="Удалить">
<span class="glyphicon glyphicon-remove-circle"></span>
</a>
{% endif %}
</td>
</tr>
{% empty %}
@ -63,9 +67,7 @@
<tfoot>
<tr>
<td colspan="13">
<a href="{% url 'task_add' %}" class="btn btn-sm btn-success" title="Создать новую задачу">
<span class="glyphicon glyphicon-plus"></span> Добавить задачу
</a>
{% include 'taskapp/footer_btns.html' %}
</td>
</tr>
</tfoot>

12
templates/taskapp/tasklist_finish.html

@ -32,18 +32,18 @@
<td>{{ task.id }}</td>
<td>{{ task.descr }}</td>
<td><a href="{% url 'other_profile' task.recipient.id %}"
<td><a href="{% url 'acc_app:other_profile' task.recipient.id %}"
title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }}</a></td>
<td><a href="{% url 'other_profile' task.author.id %}"
<td><a href="{% url 'acc_app:other_profile' task.author.id %}"
title="{{ task.author.get_full_name }}">{{ task.author.username }}</a></td>
<td>{{ task.get_mode_display }}</td>
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td><a href="{% url 'devs_view_link' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td>{{ task.time_of_create|date:'d N yг H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td colspan="3" class="btn-group">
<a href="{% url 'task_edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<span class="glyphicon glyphicon-edit"></span>
</a>
<a href="#" class="btn btn-sm btn-danger disabled" title="Удалить">
@ -60,9 +60,7 @@
<tfoot>
<tr>
<td colspan="13">
<a href="{% url 'task_add' %}" class="btn btn-sm btn-success" title="Создать новую задачу">
<span class="glyphicon glyphicon-plus"></span> Добавить задачу
</a>
{% include 'taskapp/footer_btns.html' %}
</td>
</tr>
</tfoot>

12
templates/taskapp/tasklist_own.html

@ -31,19 +31,19 @@
<td>{{ task.id }}</td>
<td>{{ task.descr }}</td>
<td><a href="{% url 'other_profile' task.recipient.id %}"
<td><a href="{% url 'acc_app:other_profile' task.recipient.id %}"
title="{{ task.recipient.get_full_name }}">{{ task.recipient.username }}</a></td>
<td>{{ task.get_mode_display }}</td>
<td>{{ task.get_state_display }}</td>
<td>{{ task.get_priority_display }}</td>
<td><a href="{% url 'devs_view_link' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td><a href="{% url 'devapp:view' task.device.id %}" target="_blank">{{ task.device.ip_address }}</a></td>
<td>{{ task.time_of_create|date:'d N yг H:i:s' }}</td>
<td>{% if task.attachment %}<a href="{{ task.attachment.url }}" target="_blank">{{ task.attachment.name }}</a>{% else %}&horbar;{% endif %}</td>
<td class="btn-group">
<a href="{% url 'task_edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<a href="{% url 'taskapp:edit' task.id %}" class="btn btn-sm btn-default" title="Редактировать">
<span class="glyphicon glyphicon-edit"></span>
</a>
<a href="{% url 'task_delete' task.id %}" class="btn btn-sm btn-danger" title="Удалить">
<a href="{% url 'taskapp:delete' task.id %}" class="btn btn-sm btn-danger" title="Удалить">
<span class="glyphicon glyphicon-remove-circle"></span>
</a>
</td>
@ -57,9 +57,7 @@
<tfoot>
<tr>
<td colspan="10">
<a href="{% url 'task_add' %}" class="btn btn-sm btn-success" title="Создать новую задачу">
<span class="glyphicon glyphicon-plus"></span> Добавить задачу
</a>
{% include 'taskapp/footer_btns.html' %}
</td>
</tr>
</tfoot>

Loading…
Cancel
Save