Merge branch 'hotfixes' into web-calendar

This commit is contained in:
David Taylor
2015-06-29 19:40:01 +01:00
12 changed files with 50 additions and 42 deletions

View File

@@ -224,6 +224,15 @@ class EventManager(models.Manager):
).order_by('start_date', 'end_date', 'start_time', 'end_time', 'meet_at').select_related('person', 'organisation', 'venue', 'mic') ).order_by('start_date', 'end_date', 'start_time', 'end_time', 'meet_at').select_related('person', 'organisation', 'venue', 'mic')
return events return events
def events_in_bounds(self, start, end):
events = self.filter(
(models.Q(start_date__gte=start.date(), start_date__lte=end.date())) | # Start date in bounds
(models.Q(end_date__gte=start.date(), end_date__lte=end.date())) | # End date in bounds
(models.Q(access_at__gte=start, access_at__lte=end)) | # Access at in bounds
(models.Q(meet_at__gte=start, meet_at__lte=end)) # Meet at in bounds
).order_by('start_date', 'end_date', 'start_time', 'end_time', 'meet_at').select_related('person', 'organisation', 'venue', 'mic')
return events
def rig_count(self): def rig_count(self):
event_count = self.filter( event_count = self.filter(
(models.Q(start_date__gte=datetime.date.today(), end_date__isnull=True, dry_hire=False, (models.Q(start_date__gte=datetime.date.today(), end_date__isnull=True, dry_hire=False,

View File

@@ -171,9 +171,9 @@ class EventArchive(generic.ArchiveIndexView):
filter = Q(start_date__gte=start) filter = Q(start_date__gte=start)
if filter: if filter:
qs = self.model.objects.filter(filter) qs = self.model.objects.filter(filter).order_by('-start_date')
else: else:
qs = self.model.objects.all() qs = self.model.objects.all().order_by('-start_date')
# Preselect related for efficiency # Preselect related for efficiency
qs.select_related('person', 'organisation', 'venue', 'mic') qs.select_related('person', 'organisation', 'venue', 'mic')

View File

@@ -38,7 +38,7 @@
$('.date').each(function (index, dateElem) { $('.date').each(function (index, dateElem) {
var $dateElem = $(dateElem); var $dateElem = $(dateElem);
var formatted = moment($dateElem.attr('data-date'),"DD/MM/YYYY HH:mm").twitterLong(); var formatted = moment($dateElem.attr('data-date')).twitterLong();
$dateElem.text(formatted); $dateElem.text(formatted);
}); });

View File

@@ -27,7 +27,7 @@
</div> </div>
<div class="media-body"> <div class="media-body">
<h5>{{ version.revision.user.name }} <h5>{{ version.revision.user.name }}
<span class="pull-right"><small><span class="date" data-date="{{version.revision.date_created}}"></span></small></span> <span class="pull-right"><small><span class="date" data-date="{{version.revision.date_created|date:"c"}}"></span></small></span>
</h5> </h5>
{% endif %} {% endif %}

View File

@@ -5,12 +5,10 @@
<div class="row"> <div class="row">
{% if not request.is_ajax %} {% if not request.is_ajax %}
<div class="col-sm-12"> <div class="col-sm-12">
<div class="col-sm-8">
<h1> <h1>
{% if object.is_rig %}N{{ object.pk|stringformat:"05d" }}{% else %}{{ object.pk }}{% endif %} {% if object.is_rig %}N{{ object.pk|stringformat:"05d" }}{% else %}{{ object.pk }}{% endif %}
| {{ object.name }} | {{ object.name }} {% if event.dry_hire %}<span class="badge">Dry Hire</span>{% endif %}
</h1> </h1>
</div>
</div> </div>
<div class="col-sm-12 text-right"> <div class="col-sm-12 text-right">
<div class="btn-group btn-page"> <div class="btn-group btn-page">

View File

@@ -241,7 +241,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>24 Hour Emergency Contacts: 07825 065681 or 07825 065678</td> <td>24 Hour Emergency Contacts: 07825 065681 and 07825 065678</td>
</tr> </tr>
</blockTable> </blockTable>
</keepTogether> </keepTogether>

View File

@@ -38,7 +38,7 @@
<small>at {{ event.venue }}</small> <small>at {{ event.venue }}</small>
{% endif %} {% endif %}
{% if event.dry_hire %} {% if event.dry_hire %}
<span class="label label-default">Dry Hire</span> <span class="badge">Dry Hire</span>
{% endif %} {% endif %}
</h4> </h4>
{% if event.is_rig and not event.cancelled %} {% if event.is_rig and not event.cancelled %}

View File

@@ -2,8 +2,25 @@
<button title="Changes to {{ change.field.verbose_name }}" type="button" class="btn btn-default btn-xs" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content=' <button title="Changes to {{ change.field.verbose_name }}" type="button" class="btn btn-default btn-xs" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content='
{% if change.new %}<div class="alert alert-success {% if change.long %}overflow-ellipsis{% endif %}">{{change.new|linebreaksbr}}</div>{% endif %} {% if change.new %}
{% if change.old %}<div class="alert alert-danger {% if change.long %}overflow-ellipsis{% endif %}">{{change.old|linebreaksbr}}</div>{% endif %} <div class="alert alert-success {% if change.long %}overflow-ellipsis{% endif %}">
{% if change.linebreaks %}
{{change.new|linebreaksbr}}
{% else %}
{{change.new}}
{% endif %}
</div>
{% endif %}
{% if change.old %}
<div class="alert alert-danger {% if change.long %}overflow-ellipsis{% endif %}">
{% if change.linebreaks %}
{{change.old|linebreaksbr}}
{% else %}
{{change.old}}
{% endif %}
</div>
{% endif %}
'>{{ change.field.verbose_name }}</button> '>{{ change.field.verbose_name }}</button>

View File

@@ -145,8 +145,8 @@ urlpatterns = patterns('',
url(r'^ical/(?P<api_pk>\d+)/(?P<api_key>\w+)/rigs.ics$', api_key_required(ical.CalendarICS()), name="ics_calendar"), url(r'^ical/(?P<api_pk>\d+)/(?P<api_key>\w+)/rigs.ics$', api_key_required(ical.CalendarICS()), name="ics_calendar"),
# API # API
url(r'^api/(?P<model>\w+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"), url(r'^api/(?P<model>\w+)/$', login_required(views.SecureAPIRequest.as_view()), name="api_secure"),
url(r'^api/(?P<model>\w+)/(?P<pk>\d+)/$', (views.SecureAPIRequest.as_view()), name="api_secure"), url(r'^api/(?P<model>\w+)/(?P<pk>\d+)/$', login_required(views.SecureAPIRequest.as_view()), name="api_secure"),
# Legacy URL's # Legacy URL's
url(r'^rig/show/(?P<pk>\d+)/$', RedirectView.as_view(permanent=True,pattern_name='event_detail')), url(r'^rig/show/(?P<pk>\d+)/$', RedirectView.as_view(permanent=True,pattern_name='event_detail')),

View File

@@ -16,7 +16,7 @@ import simplejson
from reversion.models import Version from reversion.models import Version
from django.contrib.contenttypes.models import ContentType # Used to lookup the content_type from django.contrib.contenttypes.models import ContentType # Used to lookup the content_type
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.db.models import ForeignKey, IntegerField, EmailField from django.db.models import ForeignKey, IntegerField, EmailField, TextField
from RIGS import models, forms from RIGS import models, forms
import datetime import datetime
@@ -56,7 +56,13 @@ def model_compare(oldObj, newObj, excluded_keys=[]):
def long(self): def long(self):
if isinstance(self.field, EmailField): if isinstance(self.field, EmailField):
return True return True
return False return False
@property
def linebreaks(self):
if isinstance(self.field, TextField):
return True
return False
changes = [] changes = []

View File

@@ -221,8 +221,8 @@ class SecureAPIRequest(generic.View):
'venue': 'RIGS.view_venue', 'venue': 'RIGS.view_venue',
'person': 'RIGS.view_person', 'person': 'RIGS.view_person',
'organisation': 'RIGS.view_organisation', 'organisation': 'RIGS.view_organisation',
'profile': None, 'profile': 'RIGS.view_profile',
'event': 'RIGS.view_event', 'event': None,
} }
''' '''
@@ -300,10 +300,9 @@ class SecureAPIRequest(generic.View):
# Probably a calendar request # Probably a calendar request
start_datetime = datetime.datetime.strptime( start, "%Y-%m-%dT%H:%M:%SZ" ) start_datetime = datetime.datetime.strptime( start, "%Y-%m-%dT%H:%M:%SZ" )
end_datetime = datetime.datetime.strptime( end, "%Y-%m-%dT%H:%M:%SZ" ) end_datetime = datetime.datetime.strptime( end, "%Y-%m-%dT%H:%M:%SZ" )
all_objects = self.models[model].objects objects = self.models[model].objects.events_in_bounds(start_datetime,end_datetime)
results = [] results = []
filter = Q(start_date__lte=end_datetime) & Q(start_date__gte=start_datetime)
objects = all_objects.filter(filter).select_related('person', 'organisation', 'venue', 'mic').order_by('-start_date')
for item in objects: for item in objects:
data = { data = {
'pk': item.pk, 'pk': item.pk,
@@ -331,27 +330,6 @@ class SecureAPIRequest(generic.View):
if item.access_at: if item.access_at:
data['access_at'] = item.access_at.strftime('%Y-%m-%dT%H:%M:%SZ') data['access_at'] = item.access_at.strftime('%Y-%m-%dT%H:%M:%SZ')
if item.venue:
data['venue'] = item.venue.name
if item.person:
data['person'] = item.person.name
if item.organisation:
data['organisation'] = item.organisation.name
if item.mic:
data['mic'] = {
'name':item.mic.get_full_name(),
'initials':item.mic.initials
}
if item.description:
data['description'] = item.description
if item.notes:
data['notes'] = item.notes
data['url'] = str(reverse_lazy('event_detail',kwargs={'pk':item.pk})) data['url'] = str(reverse_lazy('event_detail',kwargs={'pk':item.pk}))
results.append(data) results.append(data)

View File

@@ -112,7 +112,7 @@
</li> </li>
</ul> </ul>
{% else %} {% else %}
<a href="{% url "login" %}?next={{ request.path }}"> <a href="{% url "login" %}">
<span class="icon-user"></span> <span class="icon-user"></span>
Login Login
</a> </a>