mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-24 23:25:24 +00:00
Added users page
This commit is contained in:
parent
0c63e00711
commit
29b05745ad
16 changed files with 112 additions and 16 deletions
|
@ -1,6 +0,0 @@
|
||||||
from django.shortcuts import render
|
|
||||||
from django.contrib.auth.models import User
|
|
||||||
|
|
||||||
|
|
||||||
def accounts(request):
|
|
||||||
return
|
|
|
@ -11,7 +11,7 @@ from vrtManager import util
|
||||||
from libvirt import libvirtError
|
from libvirt import libvirtError
|
||||||
|
|
||||||
|
|
||||||
def create_instance(request, host_id):
|
def create_instance(request, compute_id):
|
||||||
"""
|
"""
|
||||||
:param request:
|
:param request:
|
||||||
:return:
|
:return:
|
||||||
|
@ -25,7 +25,7 @@ def create_instance(request, host_id):
|
||||||
storages = []
|
storages = []
|
||||||
networks = []
|
networks = []
|
||||||
meta_prealloc = False
|
meta_prealloc = False
|
||||||
compute = Compute.objects.get(id=host_id)
|
compute = Compute.objects.get(id=compute_id)
|
||||||
flavors = Flavor.objects.filter().order_by('id')
|
flavors = Flavor.objects.filter().order_by('id')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -78,7 +78,7 @@ def create_instance(request, host_id):
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
conn._defineXML(xml)
|
conn._defineXML(xml)
|
||||||
return HttpResponseRedirect(reverse('instance', args=[host_id, name]))
|
return HttpResponseRedirect(reverse('instance', args=[compute_id, name]))
|
||||||
except libvirtError as lib_err:
|
except libvirtError as lib_err:
|
||||||
error_messages.append(lib_err.message)
|
error_messages.append(lib_err.message)
|
||||||
if 'create' in request.POST:
|
if 'create' in request.POST:
|
||||||
|
@ -133,4 +133,4 @@ def create_instance(request, host_id):
|
||||||
error_messages.append(lib_err)
|
error_messages.append(lib_err)
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
return render('create.html', locals())
|
return render(request, 'create_instance.html', locals())
|
||||||
|
|
20
templates/create_instance.html
Normal file
20
templates/create_instance.html
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans "Compute" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
{% include 'sidebar.html' %}
|
||||||
|
|
||||||
|
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||||
|
<button type="button" class="btn btn-success pull-right"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
|
||||||
|
<h1 class="page-header">{{ compute.name }}</h1>
|
||||||
|
|
||||||
|
{% include 'errors.html' %}
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -6,7 +6,7 @@
|
||||||
<ul class="nav nav-sidebar">
|
<ul class="nav nav-sidebar">
|
||||||
<li {% active request "^/instance" %}><a href="{% url 'instances' %}"><span class="glyphicon glyphicon-th" aria-hidden="true"></span></a></li>
|
<li {% active request "^/instance" %}><a href="{% url 'instances' %}"><span class="glyphicon glyphicon-th" aria-hidden="true"></span></a></li>
|
||||||
<li {% active request "^/compute" %}><a href="{% url 'computes' %}"><span class="glyphicon glyphicon-tasks" aria-hidden="true"></span></a></li>
|
<li {% active request "^/compute" %}><a href="{% url 'computes' %}"><span class="glyphicon glyphicon-tasks" aria-hidden="true"></span></a></li>
|
||||||
<li {% active request "^/accaunt" %}><a href="#"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></a></li>
|
<li {% active request "^/user" %}><a href="{% url 'users' %}"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></a></li>
|
||||||
<li class="bottom-sticky">
|
<li class="bottom-sticky">
|
||||||
<a href="#"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span></a>
|
<a href="#"><span class="glyphicon glyphicon-cog" aria-hidden="true"></span></a>
|
||||||
<a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out" aria-hidden="true"></span></a>
|
<a href="{% url 'logout' %}"><span class="glyphicon glyphicon-log-out" aria-hidden="true"></span></a>
|
||||||
|
|
21
templates/user.html
Normal file
21
templates/user.html
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans "Accounts" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
{% include 'sidebar.html' %}
|
||||||
|
|
||||||
|
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||||
|
<button type="button" class="btn btn-success pull-right"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
|
||||||
|
<h1 class="page-header">{{ user.username }}</h1>
|
||||||
|
|
||||||
|
{% include 'errors.html' %}
|
||||||
|
|
||||||
|
{{ user }}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
38
templates/users.html
Normal file
38
templates/users.html
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans "Users" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
{% include 'sidebar.html' %}
|
||||||
|
|
||||||
|
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
|
||||||
|
<button type="button" class="btn btn-success pull-right"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button>
|
||||||
|
<h1 class="page-header">{% trans "Accounts" %}</h1>
|
||||||
|
|
||||||
|
{% include 'errors.html' %}
|
||||||
|
|
||||||
|
{% for user in users %}
|
||||||
|
<div id="{{ user.username }}" class="col-xs-6 col-sm-4">
|
||||||
|
<div class="panel {% if user.is_active %}panel-success{% else %}panel-danger{% endif %} panel-data">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title"><strong>{{ user.username }}</strong>
|
||||||
|
<a data-toggle="modal" href="{% url 'user' user.id %}" class="pull-right"
|
||||||
|
title="{% trans "Edit" %}">
|
||||||
|
<span class="glyphicon glyphicon-cog"></span>
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>Status: {% if user.is_active %}Active{% else %}Blocked{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -7,7 +7,7 @@ from django.db import models, migrations
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('accounts', '0001_initial'),
|
('users', '0001_initial'),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
23
users/views.py
Normal file
23
users/views.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
|
|
||||||
|
def users(request):
|
||||||
|
"""
|
||||||
|
:param request:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
users = User.objects.filter(is_staff=False, is_superuser=False)
|
||||||
|
|
||||||
|
return render(request, 'users.html', locals())
|
||||||
|
|
||||||
|
def user(request, user_id):
|
||||||
|
"""
|
||||||
|
:param request:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
user = User.objects.get(id=user_id)
|
||||||
|
|
||||||
|
return render(request, 'user.html', locals())
|
|
@ -23,7 +23,7 @@ INSTALLED_APPS = (
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'computes',
|
'computes',
|
||||||
'instances',
|
'instances',
|
||||||
'accounts',
|
'users',
|
||||||
'create',
|
'create',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ urlpatterns = patterns('',
|
||||||
|
|
||||||
url(r'^secret/(\d+)/$', 'secrets.views.secrets', name='secrets'),
|
url(r'^secret/(\d+)/$', 'secrets.views.secrets', name='secrets'),
|
||||||
|
|
||||||
# url(r'^accounts/$', 'accounts.views.accounts', name='accounts'),
|
url(r'^users/$', 'users.views.users', name='users'),
|
||||||
# url(r'^account/(\d+)/$', 'accounts.views.account', name='account'),
|
url(r'^user/(\d+)/$', 'users.views.user', name='user'),
|
||||||
#
|
|
||||||
url(r'^console/$', 'console.views.console', name='console'),
|
url(r'^console/$', 'console.views.console', name='console'),
|
||||||
url(r'^create/(\d+)/$', 'create.views.create_instance', name='create_instance'),
|
url(r'^create/(\d+)/$', 'create.views.create_instance', name='create_instance'),
|
||||||
(r'^admin/', include(admin.site.urls)),
|
(r'^admin/', include(admin.site.urls)),
|
||||||
|
|
Loading…
Reference in a new issue