mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-23 00:12:15 +00:00
Rewrote UI for person and organisation detail pages - now matches design of event_detail and is generally much prettier. Also happens to fix issue #6
This commit is contained in:
@@ -9,6 +9,7 @@ from django.utils.encoding import python_2_unicode_compatible
|
|||||||
import reversion
|
import reversion
|
||||||
import string
|
import string
|
||||||
import random
|
import random
|
||||||
|
from collections import Counter
|
||||||
from django.core.urlresolvers import reverse_lazy
|
from django.core.urlresolvers import reverse_lazy
|
||||||
|
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
@@ -91,9 +92,13 @@ class Person(models.Model, RevisionMixin):
|
|||||||
def organisations(self):
|
def organisations(self):
|
||||||
o = []
|
o = []
|
||||||
for e in Event.objects.filter(person=self).select_related('organisation'):
|
for e in Event.objects.filter(person=self).select_related('organisation'):
|
||||||
if e.organisation and e.organisation not in o:
|
if e.organisation:
|
||||||
o.append(e.organisation)
|
o.append(e.organisation)
|
||||||
return o
|
|
||||||
|
#Count up occurances and put them in descending order
|
||||||
|
c = Counter(o)
|
||||||
|
stats = c.most_common()
|
||||||
|
return stats
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def latest_events(self):
|
def latest_events(self):
|
||||||
@@ -131,9 +136,13 @@ class Organisation(models.Model, RevisionMixin):
|
|||||||
def persons(self):
|
def persons(self):
|
||||||
p = []
|
p = []
|
||||||
for e in Event.objects.filter(organisation=self).select_related('person'):
|
for e in Event.objects.filter(organisation=self).select_related('person'):
|
||||||
if e.person and e.person not in p:
|
if e.person:
|
||||||
p.append(e.person)
|
p.append(e.person)
|
||||||
return p
|
|
||||||
|
#Count up occurances and put them in descending order
|
||||||
|
c = Counter(p)
|
||||||
|
stats = c.most_common()
|
||||||
|
return stats
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def latest_events(self):
|
def latest_events(self):
|
||||||
|
|||||||
@@ -1,82 +1,109 @@
|
|||||||
{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
|
{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
|
||||||
{% load widget_tweaks %}
|
{% load widget_tweaks %}
|
||||||
|
|
||||||
{% block title %}{{ object.name }}{% endblock %}
|
{% block title %}Organisation {{ object.pk|stringformat:"05d" }} |{{ object.name }}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if not request.is_ajax %}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<h3>{{ object.name }}<br/>
|
|
||||||
<span class="small"><a href="{% url 'organisation_history' object.pk %}" title="View Revision History">
|
|
||||||
Last edited at {{ object.last_edited_at|date:"d/m/Y H:i" }} by {{ object.last_edited_by.name }}
|
|
||||||
</a></span>
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="pull-right">
|
|
||||||
<a href="{% url 'organisation_update' object.pk %}" class="btn btn-primary">Edit <span
|
|
||||||
class="glyphicon glyphicon-pencil"></span></a>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
{% if not request.is_ajax %}
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<h1>Organisation {{ object.pk|stringformat:"05d" }} | {{ object.name }}</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-12 text-right">
|
||||||
|
<div class="btn-group btn-page">
|
||||||
|
<a href="{% url 'organisation_update' object.pk %}" class="btn btn-default"><span
|
||||||
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h4>Details</h4>
|
<div class="panel panel-info">
|
||||||
<dl class="dl-horizontal">
|
<div class="panel-heading">Organisation Details</div>
|
||||||
<dt>Name</dt>
|
<div class="panel-body">
|
||||||
<dd>{{ object.name }}</dd>
|
<dl class="dl-horizontal">
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>{{ object.name }}</dd>
|
||||||
|
|
||||||
<dt>Phone</dt>
|
<dt>Phone</dt>
|
||||||
<dd><a href="tel:{{ object.phone }}">{{ object.phone }}</a></dd>
|
<dd><a href="tel:{{ object.phone }}">{{ object.phone }}</a></dd>
|
||||||
|
|
||||||
<dt>Email</dt>
|
<dt>Email</dt>
|
||||||
<dd><a href="mailto:{{ object.email }}">{{ object.email }}</a></dd>
|
<dd><a href="mailto:{{ object.email }}"><span class="overflow-ellipsis">{{ object.email }}</span></a></dd>
|
||||||
|
|
||||||
<dt>Address</dt>
|
<dt>Address</dt>
|
||||||
<dd>{{ object.address|linebreaksbr }}</dd>
|
<dd>{{ object.address|linebreaksbr }}</dd>
|
||||||
|
|
||||||
<dt>Notes</dt>
|
<dt>Notes</dt>
|
||||||
<dd>{{ object.notes|linebreaksbr }}</dd>
|
<dd>{{ object.notes|linebreaksbr }}</dd>
|
||||||
|
|
||||||
<dt>Union Account</dt>
|
<dt>Union Account</dt>
|
||||||
<dd>{{ object.union_account|yesno|capfirst }}</dd>
|
<dd>{{ object.union_account|yesno|capfirst }}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h4>People</h4>
|
<div class="panel panel-default">
|
||||||
<ul class="list-unstyled">
|
<div class="panel-heading">Associated People</div>
|
||||||
{% for person in object.persons %}
|
<div class="panel-body">
|
||||||
<li><a href="{% url 'person_detail' person.pk %}">{{ person.name }}</a></li>
|
<div class="list-group">
|
||||||
{% endfor %}
|
{% for person,count in object.persons %}
|
||||||
</ul>
|
<a class="list-group-item" href="{% url 'person_detail' person.pk %}">{{ person.pk|stringformat:"05d" }} | {{ person.name }} <span class="badge" title="{{count}} events with {{person.name}} for {{object.name}}">{{count}}</span></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<h4>Events</h4>
|
<div class="panel panel-default">
|
||||||
{% with object.latest_events as events %}
|
<div class="panel-heading">Associated Events</div>
|
||||||
{% include 'RIGS/event_table.html' %}
|
<div class="panel-body">
|
||||||
{% endwith %}
|
{% with object.latest_events as events %}
|
||||||
|
{% include 'RIGS/event_table.html' %}
|
||||||
|
{% endwith %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{% if not request.is_ajax %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 text-right">
|
||||||
|
<div class="btn-group btn-page">
|
||||||
|
<a href="{% url 'organisation_update' object.pk %}" class="btn btn-default"><span
|
||||||
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href="{% url 'organisation_history' object.pk %}" title="View Revision History">
|
||||||
|
Last edited {{ object.last_edited_at }} by {{ object.last_edited_by.name }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% if request.is_ajax %}
|
{% if request.is_ajax %}
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-10 align-left">
|
<div class="col-sm-12 text-right">
|
||||||
<a href="{% url 'organisation_history' object.pk %}" title="View Revision History">
|
<div class="btn-group btn-page">
|
||||||
Last edited at {{ object.last_edited_at }} by {{ object.last_edited_by.name }}
|
<a href="{% url 'organisation_detail' object.pk %}" class="btn btn-default"><span
|
||||||
</a>
|
class="glyphicon glyphicon-eye-open"></span> Open Page</a>
|
||||||
</div>
|
<a href="{% url 'organisation_update' object.pk %}" class="btn btn-default"><span
|
||||||
<div class="col-sm-2">
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
<div class="pull-right">
|
</div>
|
||||||
<a href="{% url 'organisation_update' object.pk %}" class="btn btn-primary">Edit <span
|
<div>
|
||||||
class="glyphicon glyphicon-pencil"></span></a>
|
<a href="{% url 'organisation_history' object.pk %}" title="View Revision History">
|
||||||
|
Last edited {{ object.last_edited_at }} by {{ object.last_edited_by.name }}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,74 +1,106 @@
|
|||||||
{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
|
{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %}
|
||||||
{% load widget_tweaks %}
|
{% load widget_tweaks %}
|
||||||
|
|
||||||
{% block title %}{{ object.name }}{% endblock %}
|
{% block title %}Person {{ object.pk|stringformat:"05d" }} | {{ object.name }}{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-6">
|
{% if not request.is_ajax %}
|
||||||
<h4>Details</h4>
|
<div class="col-sm-12">
|
||||||
{% if not request.is_ajax %}
|
<h1>Person {{ object.pk|stringformat:"05d" }} | {{ object.name }}</h1>
|
||||||
<h3>{{ object.name }}<br/>
|
</div>
|
||||||
<span class="small"><a href="{% url 'person_history' object.pk %}" title="View Revision History">
|
|
||||||
Last edited at {{ object.last_edited_at|date:"d/m/Y H:i" }} by {{ object.last_edited_by.name }}
|
<div class="col-sm-12 text-right">
|
||||||
</a></span>
|
<div class="btn-group btn-page">
|
||||||
</h3>
|
<a href="{% url 'person_update' object.pk %}" class="btn btn-default"><span
|
||||||
<div class="pull-right">
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
<a href="{% url 'person_update' object.pk %}" class="btn btn-primary">Edit <span
|
|
||||||
class="glyphicon glyphicon-pencil"></span></a>
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
</div>
|
||||||
<div class="">
|
{% endif %}
|
||||||
<dl class="dl-horizontal">
|
<div class="col-sm-6">
|
||||||
<dt>Name</dt>
|
<div class="panel panel-info">
|
||||||
<dd>{{ object.name }}</dd>
|
<div class="panel-heading">Person Details</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<dl class="dl-horizontal">
|
||||||
|
<dt>Name</dt>
|
||||||
|
<dd>{{ object.name }}</dd>
|
||||||
|
|
||||||
<dt>Phone</dt>
|
<dt>Phone</dt>
|
||||||
<dd><a href="tel:{{ object.phone }}">{{ object.phone }}</a></dd>
|
<dd><a href="tel:{{ object.phone }}">{{ object.phone }}</a></dd>
|
||||||
|
|
||||||
<dt>Email</dt>
|
<dt>Email</dt>
|
||||||
<dd><a href="mailto:{{ object.email }}">{{ object.email }}</a></dd>
|
<dd><a href="mailto:{{ object.email }}"><span class="overflow-ellipsis">{{ object.email }}</span></a></dd>
|
||||||
|
|
||||||
<dt>Address</dt>
|
<dt>Address</dt>
|
||||||
<dd>{{ object.address|linebreaksbr }}</dd>
|
<dd>{{ object.address|linebreaksbr }}</dd>
|
||||||
|
|
||||||
<dt>Notes</dt>
|
<dt>Notes</dt>
|
||||||
<dd>{{ object.notes|linebreaksbr }}</dd>
|
<dd>{{ object.notes|linebreaksbr }}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h4>Organisations</h4>
|
<div class="panel panel-default">
|
||||||
<ul class="list-unstyled">
|
<div class="panel-heading">Associated Organisations</div>
|
||||||
{% for organisation in object.organisations %}
|
<div class="panel-body">
|
||||||
<li><a href="{% url 'organisation_detail' organisation.pk %}">{{ organisation.name }}</a></li>
|
<div class="list-group">
|
||||||
{% endfor %}
|
{% for organisation,count in object.organisations %}
|
||||||
</ul>
|
<a class="list-group-item" href="{% url 'organisation_detail' organisation.pk %}">{{ organisation.pk|stringformat:"05d" }} | {{ organisation.name }} <span class="badge" title="{{count}} events with {{object.name}} for {{organisation.name}}">{{count}}</span></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<h4>Events</h4>
|
<div class="panel panel-default">
|
||||||
{% with object.latest_events as events %}
|
<div class="panel-heading">Associated Events</div>
|
||||||
{% include 'RIGS/event_table.html' %}
|
<div class="panel-body">
|
||||||
{% endwith %}
|
{% with object.latest_events as events %}
|
||||||
|
{% include 'RIGS/event_table.html' %}
|
||||||
|
{% endwith %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{% if not request.is_ajax %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 text-right">
|
||||||
|
<div class="btn-group btn-page">
|
||||||
|
<a href="{% url 'person_update' object.pk %}" class="btn btn-default"><span
|
||||||
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a href="{% url 'person_history' object.pk %}" title="View Revision History">
|
||||||
|
Last edited {{ object.last_edited_at }} by {{ object.last_edited_by.name }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% if request.is_ajax %}
|
{% if request.is_ajax %}
|
||||||
{% block footer %}
|
{% block footer %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-10 align-left">
|
<div class="col-sm-12 text-right">
|
||||||
<a href="{% url 'person_history' object.pk %}" title="View Revision History">
|
<div class="btn-group btn-page">
|
||||||
Last edited at {{ object.last_edited_at|date:"d/m/Y H:i" }} by {{ object.last_edited_by.name }}
|
<a href="{% url 'person_detail' object.pk %}" class="btn btn-default"><span
|
||||||
</a>
|
class="glyphicon glyphicon-eye-open"></span> Open Page</a>
|
||||||
</div>
|
<a href="{% url 'person_update' object.pk %}" class="btn btn-default"><span
|
||||||
<div class="col-sm-2">
|
class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||||
<div class="pull-right">
|
</div>
|
||||||
<a href="{% url 'person_update' object.pk %}" class="btn btn-primary">Edit <span
|
<div>
|
||||||
class="glyphicon glyphicon-pencil"></span></a>
|
<a href="{% url 'person_history' object.pk %}" title="View Revision History">
|
||||||
|
Last edited {{ object.last_edited_at }} by {{ object.last_edited_by.name }}
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user