31 changed files with 443 additions and 7 deletions
-
1abonapp/__init__.py
-
1abonapp/apps.py
-
16abonapp/views.py
-
15accounts_app/views.py
-
0clientsideapp/__init__.py
-
3clientsideapp/admin.py
-
6clientsideapp/apps.py
-
0clientsideapp/migrations/__init__.py
-
5clientsideapp/models.py
-
3clientsideapp/tests.py
-
10clientsideapp/urls.py
-
17clientsideapp/views.py
-
6devapp/views.py
-
3djing/settings_example.py
-
1djing/urls.py
-
5djing/views.py
-
5ip_pool/views.py
-
2mapapp/views.py
-
10mydefs.py
-
3privatemessage/views.py
-
48static/clientside/ISPlaylist.m3u
-
BINstatic/clientside/bc.png
-
12static/clientside/custom.css
-
BINstatic/clientside/poe-splitter.jpg
-
3tariff_app/views.py
-
5taskapp/views.py
-
3templates/base.html
-
84templates/clientsideapp/buy.html
-
85templates/clientsideapp/ext.html
-
68templates/clientsideapp/index.html
-
26templates/clientsideapp/pays.html
@ -0,0 +1 @@ |
|||||
|
default_app_config = 'abonapp.apps.AbonappConfig' |
||||
@ -0,0 +1,3 @@ |
|||||
|
from django.contrib import admin |
||||
|
|
||||
|
# Register your models here. |
||||
@ -0,0 +1,6 @@ |
|||||
|
from django.apps import AppConfig |
||||
|
|
||||
|
|
||||
|
class ClientsideappConfig(AppConfig): |
||||
|
name = 'clientsideapp' |
||||
|
verbose_name = 'Client side application' |
||||
@ -0,0 +1,5 @@ |
|||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import models |
||||
|
|
||||
|
# Create your models here. |
||||
@ -0,0 +1,3 @@ |
|||||
|
from django.test import TestCase |
||||
|
|
||||
|
# Create your tests here. |
||||
@ -0,0 +1,10 @@ |
|||||
|
# -*- coding:utf-8 -*- |
||||
|
from django.conf.urls import url |
||||
|
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') |
||||
|
] |
||||
@ -0,0 +1,17 @@ |
|||||
|
from django.contrib.auth.decorators import login_required |
||||
|
from django.shortcuts import render |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
def home(request): |
||||
|
return render(request, 'clientsideapp/index.html') |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
def pays(request): |
||||
|
return render(request, 'clientsideapp/pays.html') |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
|
def buy_service(request): |
||||
|
return render(request, 'clientsideapp/buy.html') |
||||
@ -1,8 +1,13 @@ |
|||||
|
from django.contrib.auth.decorators import login_required |
||||
from django.shortcuts import redirect |
from django.shortcuts import redirect |
||||
|
|
||||
|
|
||||
|
@login_required |
||||
def home(request): |
def home(request): |
||||
|
if request.user.is_admin: |
||||
return redirect('profile') |
return redirect('profile') |
||||
|
else: |
||||
|
return redirect('client_home') |
||||
|
|
||||
|
|
||||
def finance_report(request): |
def finance_report(request): |
||||
|
|||||
@ -0,0 +1,48 @@ |
|||||
|
#EXTM3U |
||||
|
#EXTINF:-1,ПЕРВЫЙ КАНАЛ |
||||
|
udp://@239.255.1.15:1234 |
||||
|
#EXTINF:-1,Россия-1 |
||||
|
udp://@239.255.1.16:1234 |
||||
|
#EXTINF:-1,МАТЧ ТВ |
||||
|
udp://@239.255.1.17:1234 |
||||
|
#EXTINF:-1,НТВ |
||||
|
udp://@239.255.1.18:1234 |
||||
|
#EXTINF:-1,ПЯТЫЙ КАНАЛ |
||||
|
udp://@239.255.1.19:1234 |
||||
|
#EXTINF:-1,РОССИЯ-КУЛЬТУРА |
||||
|
udp://@239.255.1.20:1234 |
||||
|
#EXTINF:-1,Россия-24 |
||||
|
udp://@239.255.1.21:1234 |
||||
|
#EXTINF:-1,КАРУСЕЛЬ |
||||
|
udp://@239.255.1.22:1234 |
||||
|
#EXTINF:-1,ОТР |
||||
|
udp://@239.255.1.23:1234 |
||||
|
#EXTINF:-1,ТВ Центр |
||||
|
udp://@239.255.1.24:1234 |
||||
|
|
||||
|
#EXTINF:-1,РЕН ТВ |
||||
|
udp://@239.255.1.28:1234 |
||||
|
#EXTINF:-1,Спас |
||||
|
udp://@239.255.1.29:1234 |
||||
|
#EXTINF:-1,СТС |
||||
|
udp://@239.255.1.30:1234 |
||||
|
#EXTINF:-1,Домашний |
||||
|
udp://@239.255.1.31:1234 |
||||
|
#EXTINF:-1,ТВ3 |
||||
|
udp://@239.255.1.32:1234 |
||||
|
|
||||
|
#EXTINF:-1,Звезда |
||||
|
udp://@239.255.1.34:1234 |
||||
|
|
||||
|
#EXTINF:-1,Мир-24 |
||||
|
udp://@239.255.1.9:1234 |
||||
|
|
||||
|
#EXTINF:-1,ТНТ |
||||
|
udp://@239.255.1.35:1234 |
||||
|
#EXTINF:-1,МУЗ ТВ |
||||
|
udp://@239.255.1.36:1234 |
||||
|
#EXTINF:-1,Крым 24 |
||||
|
udp://@239.255.1.14:1234 |
||||
|
|
||||
|
#EXTINF:-1,Перец |
||||
|
udp://@239.255.1.12:1234 |
||||
|
After Width: 80 | Height: 71 | Size: 8.7 KiB |
@ -0,0 +1,12 @@ |
|||||
|
img.navbar-brand { |
||||
|
width: 59px; |
||||
|
height: 50px; |
||||
|
padding: 0; |
||||
|
margin: 0 15px 0 0; |
||||
|
} |
||||
|
body > .container { |
||||
|
padding: 60px 15px 0; |
||||
|
} |
||||
|
.table thead { |
||||
|
background-color: #ddd; |
||||
|
} |
||||
|
After Width: 800 | Height: 571 | Size: 125 KiB |
@ -0,0 +1,84 @@ |
|||||
|
{% extends 'clientsideapp/ext.html' %} |
||||
|
{% block client_main %} |
||||
|
|
||||
|
<div class="page-header"> |
||||
|
<h3>Заказать услугу</h3> |
||||
|
<p>Ваша текущая услуга <a href="#dv">Стандартный</a> за <b>130</b> руб.</p> |
||||
|
</div> |
||||
|
<div class="container"> |
||||
|
<div class="row"> |
||||
|
<div class="col-lg-4"> |
||||
|
<h4>Ваши услуги</h4> |
||||
|
<ul class="list-group"> |
||||
|
<li class="list-group-item"> |
||||
|
<a href="#del" class="btn btn-xs btn-link" title="Удалить услугу из списка"> |
||||
|
<span class="glyphicon glyphicon-remove"></span> |
||||
|
</a> |
||||
|
<span class="badge">130</span> |
||||
|
<a href="#sdv"><b>Стандартный</b></a> |
||||
|
</li> |
||||
|
<li class="list-group-item"> |
||||
|
<a href="#del" class="btn btn-xs btn-link" title="Удалить услугу из списка"> |
||||
|
<span class="glyphicon glyphicon-remove"></span> |
||||
|
</a> |
||||
|
<span class="badge">500</span> |
||||
|
<a href="#dsg">Премиум</a> |
||||
|
</li> |
||||
|
<li class="list-group-item"> |
||||
|
<a href="#del" class="btn btn-xs btn-link" title="Удалить услугу из списка"> |
||||
|
<span class="glyphicon glyphicon-remove"></span> |
||||
|
</a> |
||||
|
<span class="badge">500</span> |
||||
|
<a href="#dsg">Премиум</a> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div> |
||||
|
<div class="col-lg-8"> |
||||
|
<h4>Выберите ещё услугу</h4> |
||||
|
<div class="container-fluid"> |
||||
|
<div class="row"> |
||||
|
<div class="col-lg-4"> |
||||
|
<h3>Название услуги</h3> |
||||
|
<p>Опис</p> |
||||
|
<a href="#" class="btn btn-default"> |
||||
|
<span class="glyphicon glyphicon-shopping-cart"></span> Купить |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-4"> |
||||
|
<h3>Название услуги</h3> |
||||
|
<p>Описание услуги, длинное длинное</p> |
||||
|
<a href="#" class="btn btn-default"> |
||||
|
<span class="glyphicon glyphicon-shopping-cart"></span> Купить |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-4"> |
||||
|
<h3>Название услуги</h3> |
||||
|
<p>Описание услуги, длинное длинное</p> |
||||
|
<a href="#" class="btn btn-default"> |
||||
|
<span class="glyphicon glyphicon-shopping-cart"></span> Купить |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-4"> |
||||
|
<h3>Название услуги</h3> |
||||
|
<p>Описание услуги, длинное длинное</p> |
||||
|
<a href="#" class="btn btn-default"> |
||||
|
<span class="glyphicon glyphicon-shopping-cart"></span> Купить |
||||
|
</a> |
||||
|
</div> |
||||
|
<div class="col-lg-4"> |
||||
|
<h3>Название услуги</h3> |
||||
|
<p>Описание услуги, длинное длинное</p> |
||||
|
<a href="#" class="btn btn-default"> |
||||
|
<span class="glyphicon glyphicon-shopping-cart"></span> Купить |
||||
|
</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
{% endblock %} |
||||
@ -0,0 +1,85 @@ |
|||||
|
<!DOCTYPE HTML> |
||||
|
<html> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
|
<title>User side</title> |
||||
|
<link href="/static/css/bootstrap.min.css" rel="stylesheet"> |
||||
|
<link href="/static/css/bootstrap-theme.min.css" rel="stylesheet"> |
||||
|
<link href="/static/clientside/custom.css" rel="stylesheet"> |
||||
|
<script src="/static/js/jquery-2.2.4.min.js"></script> |
||||
|
<script src="/static/js/bootstrap.min.js"></script> |
||||
|
<link rel="shortcut icon" href="/static/img/favicon_m.ico"> |
||||
|
</head> |
||||
|
<body> |
||||
|
<!-- Fixed navbar --> |
||||
|
<div class="navbar navbar-default navbar-fixed-top" role="navigation"> |
||||
|
<div class="container"> |
||||
|
<div class="navbar-header"> |
||||
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> |
||||
|
<span class="sr-only">Toggle navigation</span> |
||||
|
<span class="icon-bar"></span> |
||||
|
<span class="icon-bar"></span> |
||||
|
<span class="icon-bar"></span> |
||||
|
</button> |
||||
|
<img src="/static/clientside/bc.png" class="navbar-brand"> |
||||
|
</div> |
||||
|
<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> |
||||
|
</li> |
||||
|
|
||||
|
{% url 'client_pays' as client_pays %} |
||||
|
<li{% if client_pays == request.path %} class="active"{% endif %}> |
||||
|
<a href="{{ client_pays }}">Платежи</a> |
||||
|
</li> |
||||
|
|
||||
|
{% url 'client_buy' as client_buy %} |
||||
|
<li{% if client_buy == request.path %} class="active"{% endif %}> |
||||
|
<a href="{{ client_buy }}">Подключить услугу</a> |
||||
|
</li> |
||||
|
|
||||
|
<li> |
||||
|
<a href="#"> |
||||
|
Сообщения из администрации |
||||
|
<span class="badge">14</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
|
||||
|
<li><a href="#contact">График трафика</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="#">Подать заявку</a></li> |
||||
|
<li><a href="#">Another action</a></li> |
||||
|
<li><a href="#">Сеансы подключений</a></li> |
||||
|
<li class="divider"></li> |
||||
|
<li class="dropdown-header">Nav header</li> |
||||
|
<li><a href="#">Separated link</a></li> |
||||
|
<li><a href="#">Выйти</a></li> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</ul> |
||||
|
</div><!--/.nav-collapse --> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
<!-- Begin page content --> |
||||
|
<div class="container"> |
||||
|
{% block client_main %}{% endblock %} |
||||
|
</div> |
||||
|
|
||||
|
<div id="footer"> |
||||
|
<div class="container"> |
||||
|
<p class="text-muted">Place sticky footer content here.</p> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,68 @@ |
|||||
|
{% extends 'clientsideapp/ext.html' %} |
||||
|
{% block client_main %} |
||||
|
|
||||
|
<div class="page-header"> |
||||
|
<h3>Тарифы на оказание услуг</h3> |
||||
|
<p>Остаток на счету <b>126</b> руб<br> |
||||
|
Скачать <a href="/static/clientside/ISPlaylist.m3u">IPTV список каналов</a>, кодировка UTF-8</p> |
||||
|
</div> |
||||
|
<table class="table table-striped table-bordered"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>Стоимость (руб)</th> |
||||
|
<th>Услуга</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>100-200</td> |
||||
|
<td>Вызов мастера, цена в зависимости от дальности от Нижнегорска</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>300</td> |
||||
|
<td>Настройка роутера</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>30 руб/метр</td> |
||||
|
<td>Замена кабеля</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>50</td> |
||||
|
<td>Обжать кабель</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>300</td> |
||||
|
<td>Настройка антены</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>4500</td> |
||||
|
<td>Замена антены</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>2300, 2100</td> |
||||
|
<td>Купить и настроить роутер (2,1 антенки)</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>100</td> |
||||
|
<td>Установка драйвера (с настройкой сетевых установок)</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>~</td> |
||||
|
<td>"Что-то не работает" – по договорённости</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>400</td> |
||||
|
<td>Замена блока питания</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>200</td> |
||||
|
<td>Замена <a target="_blank" href="/static/clientside/poe-splitter.jpg">инжектора питания POE</a></td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>200</td> |
||||
|
<td>Настройка TV</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
|
||||
|
{% endblock %} |
||||
@ -0,0 +1,26 @@ |
|||||
|
{% extends 'clientsideapp/ext.html' %} |
||||
|
{% block client_main %} |
||||
|
|
||||
|
<div class="page-header"> |
||||
|
<h3>Проведённые платежи</h3> |
||||
|
</div> |
||||
|
<table class="table table-striped table-bordered"> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>Сумма транзакции (руб)</th> |
||||
|
<th>Дата транзакции</th> |
||||
|
<th>Автор платежа</th> |
||||
|
<th>Комментарий</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>100</td> |
||||
|
<td>08 Сентябрь 2016, 02:30:40</td> |
||||
|
<td><a target="_blank" href="/accounts/1">bashmak</a></td> |
||||
|
<td>Покупка тарифного плана через админку, тариф "New2"</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</table> |
||||
|
|
||||
|
{% endblock %} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue