Added list view & more stuff

This commit is contained in:
David Taylor
2015-08-08 16:52:15 +03:00
committed by Tom Price
parent 153dacbf22
commit 0e42999d3e
6 changed files with 105 additions and 3 deletions

View File

@@ -39,7 +39,7 @@ class Schema(models.Model, RevisionMixin):
get_latest_by = 'start_at'
def __str__(self):
return self.comment + " " + str(self.start_at)
return self.schema_type.name + "|" + self.comment + " " + str(self.start_at)
@reversion.register
class Form(models.Model, RevisionMixin):
@@ -52,5 +52,6 @@ class Form(models.Model, RevisionMixin):
permissions = (
('create_form', 'Can complete a form'),
('update_form', 'Can change a form'),
('view_form', 'Can view forms'),
)

View File

@@ -0,0 +1,9 @@
/*!
* bootstrap-vertical-tabs - v1.2.1
* https://dbtek.github.io/bootstrap-vertical-tabs
* 2014-11-07
* Copyright (c) 2014 İsmail Demirbilek
* License: MIT
*/
.tabs-left,.tabs-right{border-bottom:none;padding-top:2px}.tabs-left{border-right:1px solid #ddd}.tabs-right{border-left:1px solid #ddd}.tabs-left>li,.tabs-right>li{float:none;margin-bottom:2px}.tabs-left>li{margin-right:-1px}.tabs-right>li{margin-left:-1px}.tabs-left>li.active>a,.tabs-left>li.active>a:focus,.tabs-left>li.active>a:hover{border-bottom-color:#ddd;border-right-color:transparent}.tabs-right>li.active>a,.tabs-right>li.active>a:focus,.tabs-right>li.active>a:hover{border-bottom:1px solid #ddd;border-left-color:transparent}.tabs-left>li>a{border-radius:4px 0 0 4px;margin-right:0;display:block}.tabs-right>li>a{border-radius:0 4px 4px 0;margin-right:0}.sideways{margin-top:50px;border:none;position:relative}.sideways>li{height:20px;width:120px;margin-bottom:100px}.sideways>li>a{border-bottom:1px solid #ddd;border-right-color:transparent;text-align:center;border-radius:4px 4px 0 0}.sideways>li.active>a,.sideways>li.active>a:focus,.sideways>li.active>a:hover{border-bottom-color:transparent;border-right-color:#ddd;border-left-color:#ddd}.sideways.tabs-left{left:-50px}.sideways.tabs-right{right:-50px}.sideways.tabs-right>li{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.sideways.tabs-left>li{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}

View File

@@ -6,9 +6,17 @@
{% block title %}An event checklist{% endblock %}
{% block content %}
<div ng-controller="FormController">
<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(theForm)">
<div class="col-sm-12">
<h2>"{{object.schema.schema_type.name}}" for "<a href="{% url 'event_detail' object.event.pk %}">N{{object.event.pk|stringformat:"05d"}} | {{object.event.name}}</a>"</h2>
<a href="{% url 'form_list' object.event.pk %}" class="btn btn-default" title="Rig Forms"><span class="glyphicon glyphicon-chevron-left"></span> <span class="hidden-xs">Other forms for N{{object.event.pk|stringformat:"05d"}}</span></a>
<hr/>
</div>
<div ng-controller="FormController" class="col-sm-12">
<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(theForm)">
</form>
</div>
@@ -29,6 +37,9 @@
<script type="text/javascript" src="{% static "js/angular-schema-form/ObjectPath.js"%}"></script>
<script type="text/javascript" src="{% static "js/angular-schema-form/schema-form.min.js"%}"></script>
<script type="text/javascript" src="{% static "js/angular-schema-form/bootstrap-decorator.min.js"%}"></script>
<link rel="stylesheet" type="text/css" href="{% static "js/angular-schema-form/bootstrap.vertical-tabs.min.css"%}"/>
<script>
$(document).ready(function () {
@@ -37,6 +48,13 @@
$scope.schema = {{ object.schema.schema }};
$scope.form = {{ object.schema.layout }};
{% comment %}
//This is useful for development, allowing the schema & layout to reside in the file system (you need to make the relevant files in the templates directory). Commented out for production
$scope.schema = {% include "rigForms/schema.js" %};
$scope.form = {% include "rigForms/layout.js" %};
{% endcomment %}
$scope.model = {{ object.data }};
{% endautoescape %}

View File

@@ -0,0 +1,51 @@
{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
{% load widget_tweaks %}
{% load static %}
{% block title %}List of Forms{% endblock %}
{% block content %}
<div class="col-sm-12">
<h2>Forms for "<a href="{% url 'event_detail' event.pk %}">N{{event.pk|stringformat:"05d"}} | {{event.name}}</a>"</h2>
</div>
<div class="col-sm-12 text-right">
<div class="btn-group btn-page">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-plus"></span> Add Form <span class="caret"></span>
</button>
<ul class="dropdown-menu">
{% for type in formTypes %}
<li><a href="{% url 'create_form' event_pk=event.pk type_pk=type.pk %}">{{type.name}}</a></li>
{% endfor %}
</ul>
</div>
</div>
<div class="col-sm-12">
<table class="table table-responsive table-hover">
<thead>
<tr>
<th>#</th>
<th>Form Type</th>
<th>Last Edited</th>
<th></th>
</tr>
</thead>
<tbody>
{% for object in object_list %}
<tr>
<td>{{ object.pk }}</td>
<td>{{ object.schema.schema_type.name }}</td>
<td>{{ object.last_edited_by }} at {{ object.last_edited_at }}</td>
<td class="text-right">
<a href="{% url 'update_form' object.pk %}" class="btn btn-default">
<span class="glyphicon glyphicon-pencil"></span>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}

View File

@@ -9,5 +9,7 @@ urlpatterns = patterns('',
name='create_form'),
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
name='update_form'),
url(r'^for-event/(?P<event_pk>\d+)/$', permission_required_with_403('rigForms.view_form')(views.FormList.as_view()),
name='form_list'),
)

View File

@@ -5,6 +5,7 @@ from rigForms import models
from django.shortcuts import get_object_or_404
from django.http.response import HttpResponseRedirect
from django.core.urlresolvers import reverse_lazy, reverse, NoReverseMatch
from django.db.models import Q
import RIGS
@@ -57,3 +58,23 @@ class FormUpdate(generic.UpdateView):
return reverse_lazy('update_form', kwargs={
'pk': self.object.pk,
})
class FormList(generic.ListView):
model = models.Form
def get_queryset(self):
event = get_object_or_404(RIGS.models.Event,pk=self.kwargs["event_pk"])
object_list = self.model.objects.filter(Q(event=event))
return object_list
def get_context_data(self):
context = super(FormList, self).get_context_data()
context['event'] = get_object_or_404(RIGS.models.Event,pk=self.kwargs["event_pk"])
context['formTypes'] = models.Type.objects.filter(Q(active=True))
return context