Skip to content
Snippets Groups Projects
Commit 6f84a115 authored by Jacek Lebioda's avatar Jacek Lebioda
Browse files

Item modification

parent 85e30971
No related branches found
No related tags found
1 merge request!123Resolve "Rooms management page"
Pipeline #
......@@ -7,8 +7,8 @@ from django.forms import ModelForm, Form
from django.utils.dates import MONTHS
from web.models import Appointment, AppointmentType, AppointmentTypeLink, \
Availability, ContactAttempt, FlyingTeam, Holiday, StudySubject, Room, \
Worker, Visit, VoucherType, VoucherTypePrice
Availability, ContactAttempt, FlyingTeam, Holiday, Item, \
StudySubject, Room, Worker, Visit, VoucherType, VoucherTypePrice
from web.models.constants import SUBJECT_TYPE_CHOICES
from web.views.notifications import get_filter_locations
......@@ -369,6 +369,12 @@ def validate_availability_conflict(self, cleaned_data, availability):
self.add_error('available_till', error)
class ItemForm(ModelForm):
class Meta:
model = Item
fields = "__all__"
class FlyingTeamAddForm(ModelForm):
class Meta:
model = FlyingTeam
......
{% extends "_base.html" %}
{% load static %}
{% load filters %}
{% block styles %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'AdminLTE/plugins/awesomplete/awesomplete.css' %}"/>
{% endblock styles %}
{% block ui_active_tab %}'equipment_and_rooms'{% endblock ui_active_tab %}
{% block page_header %}New equipment definition{% endblock page_header %}
{% block page_description %}{% endblock page_description %}
{% block title %}{{ block.super }} - Add new equipment definition{% endblock %}
{% block breadcrumb %}
{% include "equipment_and_rooms/equipment/breadcrumb.html" %}
{% endblock breadcrumb %}
{% block maincontent %}
<div class="box box-info">
<div class="box-header with-border">
<a href="{% url 'web.views.equipment' %}" class="btn btn-block btn-default">Go back (without changes)</a>
</div>
<form method="post" action="" class="form-horizontal">
{% csrf_token %}
<div class="box-body">
<div class="col-sm-6">
{% for field in form %}
<div class="form-group {% if field.errors %}has-error{% endif %}">
<label for="{# TODO #}" class="col-sm-4 control-label">
{{ field.label }}
</label>
<div class="col-sm-8">
{{ field|add_class:'form-control' }}
</div>
{% if field.errors %}
<span class="help-block">
{{ field.errors }}
</span>
{% endif %}
</div>
{% endfor %}
</div>
</div><!-- /.box-body -->
<div class="box-footer">
<div class="col-sm-6">
<button type="submit" class="btn btn-block btn-success">Add</button>
</div>
<div class="col-sm-6">
<a href="{% url 'web.views.equipment' %}" class="btn btn-block btn-default">Cancel</a>
</div>
</div><!-- /.box-footer -->
</form>
</div>
{% endblock %}
<li><a href="{% url 'web.views.appointments' %}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li><a href="{% url 'web.views.equipment_and_rooms' %}">Equipment and rooms</a></li>
<li class="active"><a href="{% url 'web.views.equipment_def' %}">Equipment definitions</a></li>
<li class="active"><a href="{% url 'web.views.equipment' %}">Equipment definitions</a></li>
{% extends "_base.html" %}
{% load static %}
{% load filters %}
{% block styles %}
{{ block.super }}
<link rel="stylesheet" href="{% static 'AdminLTE/plugins/awesomplete/awesomplete.css' %}"/>
{% endblock styles %}
{% block ui_active_tab %}'equipment_and_rooms'{% endblock ui_active_tab %}
{% block page_header %}Edit equipment definition{% endblock page_header %}
{% block page_description %}{% endblock page_description %}
{% block title %}{{ block.super }} - Edit equipment definition{% endblock %}
{% block breadcrumb %}
{% include "equipment_and_rooms/equipment/breadcrumb.html" %}
{% endblock breadcrumb %}
{% block maincontent %}
<div class="box box-info">
<div class="box-header with-border">
<a href="{% url 'web.views.equipment' %}" class="btn btn-block btn-default">Go back (without changes)</a>
</div>
<form method="post" action="" class="form-horizontal">
{% csrf_token %}
<div class="box-body">
<div class="col-sm-6">
{% for field in form %}
<div class="form-group {% if field.errors %}has-error{% endif %}">
<label for="{# TODO #}" class="col-sm-4 control-label">
{{ field.label }}
</label>
<div class="col-sm-8">
{{ field|add_class:'form-control' }}
</div>
{% if field.errors %}
<span class="help-block">
{{ field.errors }}
</span>
{% endif %}
</div>
{% endfor %}
</div>
</div><!-- /.box-body -->
<div class="box-footer">
<div class="col-sm-6">
<button type="submit" class="btn btn-block btn-success">Save</button>
</div>
<div class="col-sm-6">
<a href="{% url 'web.views.equipment' %}" class="btn btn-block btn-default">Cancel</a>
</div>
</div><!-- /.box-footer -->
</form>
</div>
{% endblock %}
......@@ -7,7 +7,7 @@
<link rel="stylesheet" href="{% static 'AdminLTE/plugins/datatables/dataTables.bootstrap.css' %}">
{% endblock styles %}
{% block ui_active_tab %}'eqdef'{% endblock ui_active_tab %}
{% block ui_active_tab %}'equipment_and_rooms'{% endblock ui_active_tab %}
{% block page_header %}Equipment definitions{% endblock page_header %}
{% block page_description %}{% endblock page_description %}
......@@ -18,7 +18,7 @@
{% block maincontent %}
<div>
<a class="btn btn-app">
<a class="btn btn-app" href="{% url 'web.views.equipment_add' %}">
<i class="fa fa-plus"></i> Add new equipment type
</a>
</div>
......@@ -31,6 +31,7 @@
<th>No.</th>
<th>Name</th>
<th>Is fixed?</th>
<th>Is disposable?</th>
<th>Edit</th>
<th>Delete</th>
</tr>
......@@ -42,16 +43,23 @@
<td>{{ equip.name }}</td>
<td>
{% if equip.isFixed %}
<button type="button" class="btn btn-block btn-danger">YES</button>
Yes
{% else %}
<button type="button" class="btn btn-block btn-success">NO</button>
No
{% endif %}
</td>
<td>
<button type="button" class="btn btn-block btn-default">Edit</button>
{% if equip.disposable %}
Yes
{% else %}
No
{% endif %}
</td>
<td>
<a href="{% url 'web.views.equipment_edit' equip.id %}" class="btn btn-block btn-default">Edit</button>
</td>
<td>
<button type="button" class="btn btn-block btn-default">Delete</button>
<a href="{% url 'web.views.equipment_delete' equip.id %}" class="btn btn-block btn-danger">Delete</button>
</td>
</tr>
{% endfor %}
......
......@@ -43,7 +43,7 @@
<div class="icon">
<i class="ion ion-settings"></i>
</div>
<a href="{% url 'web.views.equipment_def' %}" class="small-box-footer">
<a href="{% url 'web.views.equipment' %}" class="small-box-footer">
Edit <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
......@@ -78,36 +78,35 @@
Manage <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div>
<div class="col-md-3">
<div class="bg-green small-box">
<div class="inner">
<h4>Rooms</h4>
<div class="bg-green small-box">
<div class="inner">
<h4>Rooms</h4>
<p>&nbsp;</p>
</div>
<div class="icon">
<i class="ion ion-android-home"></i>
</div>
<a href="{% url 'web.views.equipment_and_rooms.rooms' %}" class="small-box-footer">
Manage <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
<p>&nbsp;</p>
</div>
<div class="icon">
<i class="ion ion-android-home"></i>
</div>
<a href="#" class="small-box-footer">
Manage <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
<div class="bg-green small-box">
<div class="inner">
<h4>Equipment in rooms</h4>
{% comment %}
<div class="bg-yellow small-box">
<div class="inner">
<h4>Equipment in rooms</h4>
<p>&nbsp;</p>
</div>
<div class="icon">
<i class="ion ion-medkit"></i>
</div>
<a href="#" class="small-box-footer">
Edit <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
{% endcomment %}
<p>&nbsp;</p>
</div>
<div class="icon">
<i class="ion ion-medkit"></i>
</div>
<a href="{% url 'web.views.equipment' %}" class="small-box-footer">
Edit <i class="fa fa-arrow-circle-right"></i>
</a>
</div>
</div>
{% comment %}
......
......@@ -38,6 +38,7 @@
</span>
</a>
<ul class="treeview-menu">
<li><a href="{% url 'web.views.equipment' %}">Equipment items</a></li>
<li><a href="{% url 'web.views.equipment_and_rooms.flying_teams' %}">Flying teams</a></li>
<li><a href="{% url 'web.views.kit_requests' %}">Kit requests</a></li>
<li><a href="{% url 'web.views.equipment_and_rooms.rooms' %}">Rooms</a></li>
......
......@@ -122,7 +122,10 @@ urlpatterns = [
####################
url(r'^equipment_and_rooms$', views.equipment.equipment_and_rooms, name='web.views.equipment_and_rooms'),
url(r'^equipment_and_rooms/equipment_def$', views.equipment.equipment_def, name='web.views.equipment_def'),
url(r'^equipment_and_rooms/equipment/add$', views.equipment.equipment_add, name='web.views.equipment_add'),
url(r'^equipment_and_rooms/equipment/edit/(?P<equipment_id>\d+)$', views.equipment.equipment_edit, name='web.views.equipment_edit'),
url(r'^equipment_and_rooms/equipment/delete/(?P<equipment_id>\d+)$', views.equipment.equipment_delete, name='web.views.equipment_delete'),
url(r'^equipment_and_rooms/equipment$', views.equipment.equipment, name='web.views.equipment'),
url(r'^equipment_and_rooms/kit_requests$', views.kit.kit_requests, name='web.views.kit_requests'),
url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/$', views.kit.kit_requests_send_mail,
name='web.views.kit_requests_send_mail'),
......
# coding=utf-8
from django.shortcuts import redirect
from django.shortcuts import redirect, get_object_or_404
from . import wrap_response
from ..models import Item
from ..forms.forms import ItemForm
def equipment_def(request):
def equipment(request):
equipment_list = Item.objects.order_by('-name')
context = {
'equipment_list': equipment_list
}
return wrap_response(request, "equipment_and_rooms/equipment/index.html", context)
def equipment_add(request):
0 // 0
if request.method == 'POST':
form = ItemForm(request.POST)
if form.is_valid():
form.save()
return redirect('web.views.equipment')
else:
form = ItemForm()
return wrap_response(request, 'equipment_and_rooms/equipment/add.html', {'form': form})
def equipment_edit(request, equipment_id):
the_item = get_object_or_404(Item, id=equipment_id)
if request.method == 'POST':
form = ItemForm(request.POST, instance=the_item)
if form.is_valid():
form.save()
return redirect('web.views.equipment')
else:
form = ItemForm(instance=the_item)
return wrap_response(request, 'equipment_and_rooms/equipment/edit.html', {'form': form})
def equipment_delete(request, equipment_id):
the_item = get_object_or_404(Item, id=equipment_id)
the_item.delete()
return redirect('web.views.equipment')
def equipment_add(request):
equipment_list = Item.objects.order_by('-name')
context = {
'equipment_list': equipment_list
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment