update admin panel users

This commit is contained in:
Vyacheslav Anzhiganov 2015-12-11 08:23:56 +03:00
parent 26b2b64371
commit 4be4d21514
5 changed files with 133 additions and 7 deletions

View file

@ -26,3 +26,26 @@ class ControllerManageUsers:
'total': models.Users.select().count(),
'items': models.Users.select()
}
def item_get(self, user_id):
return models.Users.select().where(models.Users.id == user_id)[0]
class ControllerManageUsersDetails:
def exists(self, user_id):
if models.UsersDetails.select().where(models.UsersDetails.user == user_id).count() == 0:
return False
return True
def item_get(self, user_id):
return models.UsersDetails.select().where(models.UsersDetails.user == user_id)[0]
class ControllerManageUsersBalance:
def exists(self, user_id):
if models.UsersBalance.select().where(models.UsersBalance.user == user_id).count() == 0:
return False
return True
def item_get(self, user_id):
return models.UsersBalance.select().where(models.UsersBalance.user == user_id)[0]

View file

@ -12,6 +12,9 @@ from app import models
from app.cloud.controllers.common import special_match
from app.cloud.controllers.common import ControllerMessagesEmail
from app.cloud.controllers.administrators import ControllerAdministrators
from app.cloud.controllers.users.manage import ControllerManageUsers
from app.cloud.controllers.users.manage import ControllerManageUsersDetails
from app.cloud.controllers.users.manage import ControllerManageUsersBalance
viewAdministrator = Blueprint('administrator', __name__, url_prefix='/administrator')
@ -83,13 +86,31 @@ def users():
# auth user
if not ControllerAdministrators().auth(session['admin_email'], session['admin_password']):
return redirect(url_for("administrator.logout"))
# формируем массив со списком пользователей
users_items = {
'total': models.Users.select().count(),
'items': models.Users.select()
}
#
return render_template('administrator/users/index.html', users=users_items)
return render_template(
'administrator/users/index.html',
users=ControllerManageUsers().items_get()
)
@viewAdministrator.route('/users/details/<uuid:user_id>')
def user_details(user_id):
# check session
if not ControllerAdministrators().check_session():
return redirect(url_for("administrator.logout"))
# auth user
if not ControllerAdministrators().auth(session['admin_email'], session['admin_password']):
return redirect(url_for("administrator.logout"))
# check exists user by uuid
if not ControllerManageUsers().exists_by_id(user_id):
return redirect(url_for('administrator.users'))
#
return render_template(
'administrator/users/details.html',
user_account=ControllerManageUsers().item_get(user_id),
user_details=ControllerManageUsersDetails().item_get(user_id),
user_balance=ControllerManageUsersBalance().item_get(user_id),
)
@viewAdministrator.route('/rules/')

View file

@ -55,6 +55,8 @@ class Ips(PgSQLModel):
ipv6 = CharField()
ipv4_gateway = CharField()
ipv6_gateway = CharField()
# 0 - free
# 1 - used
status = IntegerField()
@ -100,6 +102,9 @@ class UsersBalanceTransactions(PgSQLModel):
amount = FloatField(default=0, null=False)
created = DateTimeField(default=datetime.datetime.now)
notified = IntegerField(null=False, default=0)
# success
# process
# fail
status = TextField(null=False)
@ -115,6 +120,12 @@ class Containers(PgSQLModel):
user = ForeignKeyField(Users)
ipv4 = CharField()
ipv6 = CharField()
# 0
# 1
# 2
# 3
# 4
# 5
status = IntegerField()

View file

@ -0,0 +1,71 @@
{% extends 'administrator/_layout.auth.html' %}
{% block title %}User details{% endblock %}
{% block subtitle %}User details{% endblock %}
{% block content %}
<h4>Account</h4>
<table class="table table-border">
<tbody>
<tr>
<td>ID</td>
<td>{{ user_account['id'] }}</td>
</tr>
<tr>
<td>Email</td>
<td>{{ user_account['email'] }}</td>
</tr>
<tr>
<td>Status</td>
<td>{{ user_account['status'] }}</td>
</tr>
</tbody>
</table>
<h4>Details</h4>
<a href="">Edit</a>
<table class="table">
<tbody>
<tr>
<td>First name</td>
<td>{{ user_details['fname'] }}</td>
</tr>
<tr>
<td>Last name</td>
<td>{{ user_details['lname'] }}</td>
</tr>
<tr>
<td>Address</td>
<td>{{ user_details['address'] }}</td>
</tr>
<tr>
<td>City</td>
<td>{{ user_details['city'] }}</td>
</tr>
<tr>
<td>Country</td>
<td>{{ user_details['country'] }}</td>
</tr>
<tr>
<td>State</td>
<td>{{ user_details['state'] }}</td>
</tr>
<tr>
<td>ZIP code</td>
<td>{{ user_details['zipcode'] }}</td>
</tr>
</tbody>
</table>
<h4>Balance</h4>
<a href="">Add money</a>
<table class="table">
<tbody>
<tr>
<td>Balance</td>
<td>{{ user_balance['balance'] }}</td>
</tr>
</tbody>
</table>
<h4>Transactions history</h4>
...
{% endblock %}

View file

@ -24,7 +24,7 @@
<td>{{ user.email }}</td>
<td>{{ user.status }}</td>
<td>
<a href="#myModal" id="myModal">Edit</a>
<a href="{{ url_for('administrator.user_details', user_id=user.id) }}">Edit</a>
</td>
</tr>
{% endfor %}