mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
Added list view & more stuff
This commit is contained in:
@@ -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'),
|
||||
)
|
||||
|
||||
9
rigForms/static/js/angular-schema-form/bootstrap.vertical-tabs.min.css
vendored
Executable file
9
rigForms/static/js/angular-schema-form/bootstrap.vertical-tabs.min.css
vendored
Executable 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)}
|
||||
@@ -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 %}
|
||||
|
||||
51
rigForms/templates/rigForms/form_list.html
Normal file
51
rigForms/templates/rigForms/form_list.html
Normal 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 %}
|
||||
@@ -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'),
|
||||
)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user