mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-24 00:42:17 +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'
|
get_latest_by = 'start_at'
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.comment + " " + str(self.start_at)
|
return self.schema_type.name + "|" + self.comment + " " + str(self.start_at)
|
||||||
|
|
||||||
@reversion.register
|
@reversion.register
|
||||||
class Form(models.Model, RevisionMixin):
|
class Form(models.Model, RevisionMixin):
|
||||||
@@ -52,5 +52,6 @@ class Form(models.Model, RevisionMixin):
|
|||||||
permissions = (
|
permissions = (
|
||||||
('create_form', 'Can complete a form'),
|
('create_form', 'Can complete a form'),
|
||||||
('update_form', 'Can change 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 title %}An event checklist{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div ng-controller="FormController">
|
<div class="col-sm-12">
|
||||||
<form name="theForm" sf-schema="schema" sf-form="form" sf-model="model" ng-submit="onSubmit(theForm)">
|
<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>
|
</form>
|
||||||
</div>
|
</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/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/schema-form.min.js"%}"></script>
|
||||||
<script type="text/javascript" src="{% static "js/angular-schema-form/bootstrap-decorator.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>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
@@ -37,6 +48,13 @@
|
|||||||
$scope.schema = {{ object.schema.schema }};
|
$scope.schema = {{ object.schema.schema }};
|
||||||
|
|
||||||
$scope.form = {{ object.schema.layout }};
|
$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 }};
|
$scope.model = {{ object.data }};
|
||||||
{% endautoescape %}
|
{% 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'),
|
name='create_form'),
|
||||||
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
|
url(r'^(?P<pk>\d+)/$', permission_required_with_403('rigForms.update_form')(views.FormUpdate.as_view()),
|
||||||
name='update_form'),
|
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.shortcuts import get_object_or_404
|
||||||
from django.http.response import HttpResponseRedirect
|
from django.http.response import HttpResponseRedirect
|
||||||
from django.core.urlresolvers import reverse_lazy, reverse, NoReverseMatch
|
from django.core.urlresolvers import reverse_lazy, reverse, NoReverseMatch
|
||||||
|
from django.db.models import Q
|
||||||
|
|
||||||
import RIGS
|
import RIGS
|
||||||
|
|
||||||
@@ -57,3 +58,23 @@ class FormUpdate(generic.UpdateView):
|
|||||||
return reverse_lazy('update_form', kwargs={
|
return reverse_lazy('update_form', kwargs={
|
||||||
'pk': self.object.pk,
|
'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