mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-16 21:12:13 +00:00
Minor python cleanup
This commit is contained in:
@@ -71,7 +71,7 @@ def screenshot_failure_cls(cls):
|
||||
|
||||
|
||||
# Checks if animation is done
|
||||
class animation_is_finished():
|
||||
class animation_is_finished:
|
||||
def __call__(self, driver):
|
||||
numberAnimating = driver.execute_script('return $(":animated").length')
|
||||
finished = numberAnimating == 0
|
||||
|
||||
@@ -202,7 +202,8 @@ class EventChecklistForm(forms.ModelForm):
|
||||
}
|
||||
|
||||
# Two possible formats
|
||||
def parsedatetime(self, date_string):
|
||||
@staticmethod
|
||||
def parsedatetime(date_string):
|
||||
try:
|
||||
return timezone.make_aware(datetime.strptime(date_string, '%Y-%m-%dT%H:%M:%S'))
|
||||
except ValueError:
|
||||
|
||||
118
RIGS/ical.py
118
RIGS/ical.py
@@ -9,6 +9,69 @@ import datetime
|
||||
import pytz
|
||||
|
||||
|
||||
def item_guid(item): # use the rig-id as the ical unique event identifier
|
||||
return item.pk
|
||||
|
||||
|
||||
def item_updated(item): # some ical clients will display this
|
||||
return item.last_edited_at
|
||||
|
||||
|
||||
def item_location(item):
|
||||
return item.venue
|
||||
|
||||
|
||||
def item_end_datetime(item):
|
||||
if isinstance(item.latest_time, datetime.date): # Ical end_datetime is non-inclusive, so add a day
|
||||
return item.latest_time + datetime.timedelta(days=1)
|
||||
|
||||
return item.latest_time
|
||||
|
||||
|
||||
def item_start_datetime(item):
|
||||
return item.earliest_time
|
||||
|
||||
|
||||
def items(params):
|
||||
# include events from up to 1 year ago
|
||||
start = datetime.datetime.now() - datetime.timedelta(days=365)
|
||||
filter = Q(start_date__gte=start)
|
||||
|
||||
typeFilters = Q(pk=None) # Need something that is false for every entry
|
||||
|
||||
if params['dry-hire']:
|
||||
typeFilters = typeFilters | Q(dry_hire=True, is_rig=True)
|
||||
|
||||
if params['non-rig']:
|
||||
typeFilters = typeFilters | Q(is_rig=False)
|
||||
|
||||
if params['rig']:
|
||||
typeFilters = typeFilters | Q(is_rig=True, dry_hire=False)
|
||||
|
||||
statusFilters = Q(pk=None) # Need something that is false for every entry
|
||||
|
||||
if params['cancelled']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.CANCELLED)
|
||||
if params['provisional']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.PROVISIONAL)
|
||||
if params['confirmed']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.CONFIRMED) | Q(status=models.Event.BOOKED)
|
||||
|
||||
filter = filter & typeFilters & statusFilters
|
||||
|
||||
return models.Event.objects.filter(filter).order_by('-start_date').select_related('person', 'organisation',
|
||||
'venue', 'mic')
|
||||
|
||||
|
||||
def description(params):
|
||||
desc = "Calendar generated by RIGS system. This includes event types: " + ('Rig, ' if params['rig'] else '') + (
|
||||
'Non-rig, ' if params['non-rig'] else '') + ('Dry Hire ' if params['dry-hire'] else '') + '\n'
|
||||
desc = desc + "Includes events with status: " + ('Cancelled, ' if params['cancelled'] else '') + (
|
||||
'Provisional, ' if params['provisional'] else '') + ('Confirmed/Booked, ' if params['confirmed'] else '')
|
||||
|
||||
return desc
|
||||
|
||||
|
||||
class CalendarICS(ICalFeed):
|
||||
"""
|
||||
A simple event calender
|
||||
@@ -39,44 +102,6 @@ class CalendarICS(ICalFeed):
|
||||
|
||||
return params
|
||||
|
||||
def description(self, params):
|
||||
desc = "Calendar generated by RIGS system. This includes event types: " + ('Rig, ' if params['rig'] else '') + (
|
||||
'Non-rig, ' if params['non-rig'] else '') + ('Dry Hire ' if params['dry-hire'] else '') + '\n'
|
||||
desc = desc + "Includes events with status: " + ('Cancelled, ' if params['cancelled'] else '') + (
|
||||
'Provisional, ' if params['provisional'] else '') + ('Confirmed/Booked, ' if params['confirmed'] else '')
|
||||
|
||||
return desc
|
||||
|
||||
def items(self, params):
|
||||
# include events from up to 1 year ago
|
||||
start = datetime.datetime.now() - datetime.timedelta(days=365)
|
||||
filter = Q(start_date__gte=start)
|
||||
|
||||
typeFilters = Q(pk=None) # Need something that is false for every entry
|
||||
|
||||
if params['dry-hire']:
|
||||
typeFilters = typeFilters | Q(dry_hire=True, is_rig=True)
|
||||
|
||||
if params['non-rig']:
|
||||
typeFilters = typeFilters | Q(is_rig=False)
|
||||
|
||||
if params['rig']:
|
||||
typeFilters = typeFilters | Q(is_rig=True, dry_hire=False)
|
||||
|
||||
statusFilters = Q(pk=None) # Need something that is false for every entry
|
||||
|
||||
if params['cancelled']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.CANCELLED)
|
||||
if params['provisional']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.PROVISIONAL)
|
||||
if params['confirmed']:
|
||||
statusFilters = statusFilters | Q(status=models.Event.CONFIRMED) | Q(status=models.Event.BOOKED)
|
||||
|
||||
filter = filter & typeFilters & statusFilters
|
||||
|
||||
return models.Event.objects.filter(filter).order_by('-start_date').select_related('person', 'organisation',
|
||||
'venue', 'mic')
|
||||
|
||||
def item_title(self, item):
|
||||
title = ''
|
||||
|
||||
@@ -98,18 +123,6 @@ class CalendarICS(ICalFeed):
|
||||
|
||||
return title
|
||||
|
||||
def item_start_datetime(self, item):
|
||||
return item.earliest_time
|
||||
|
||||
def item_end_datetime(self, item):
|
||||
if isinstance(item.latest_time, datetime.date): # Ical end_datetime is non-inclusive, so add a day
|
||||
return item.latest_time + datetime.timedelta(days=1)
|
||||
|
||||
return item.latest_time
|
||||
|
||||
def item_location(self, item):
|
||||
return item.venue
|
||||
|
||||
def item_description(self, item):
|
||||
# Create a nice information-rich description
|
||||
# note: only making use of information available to "non-keyholders"
|
||||
@@ -158,8 +171,3 @@ class CalendarICS(ICalFeed):
|
||||
# def item_created(self, item): #TODO - Implement created date-time (using django-reversion?) - not really necessary though
|
||||
# return ''
|
||||
|
||||
def item_updated(self, item): # some ical clients will display this
|
||||
return item.last_edited_at
|
||||
|
||||
def item_guid(self, item): # use the rig-id as the ical unique event identifier
|
||||
return item.pk
|
||||
|
||||
@@ -66,7 +66,7 @@ def paginator(context, adjacent_pages=3):
|
||||
if endPage >= paginator.num_pages - 1:
|
||||
endPage = paginator.num_pages + 1
|
||||
page_numbers = [n for n in range(startPage, endPage)
|
||||
if n > 0 and n <= paginator.num_pages]
|
||||
if 0 < n <= paginator.num_pages]
|
||||
|
||||
dict = {
|
||||
'request': context['request'],
|
||||
|
||||
@@ -3,6 +3,11 @@ from django.core.management.base import BaseCommand, CommandError
|
||||
from assets import models
|
||||
|
||||
|
||||
def delete_objects(model):
|
||||
for object in model.objects.all():
|
||||
object.delete()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Deletes testing sample data'
|
||||
|
||||
@@ -12,12 +17,8 @@ class Command(BaseCommand):
|
||||
if not (settings.DEBUG):
|
||||
raise CommandError('You cannot run this command in production')
|
||||
|
||||
self.delete_objects(models.AssetCategory)
|
||||
self.delete_objects(models.AssetStatus)
|
||||
self.delete_objects(models.Supplier)
|
||||
self.delete_objects(models.Connector)
|
||||
self.delete_objects(models.Asset)
|
||||
|
||||
def delete_objects(self, model):
|
||||
for object in model.objects.all():
|
||||
object.delete()
|
||||
delete_objects(models.AssetCategory)
|
||||
delete_objects(models.AssetStatus)
|
||||
delete_objects(models.Supplier)
|
||||
delete_objects(models.Connector)
|
||||
delete_objects(models.Asset)
|
||||
|
||||
@@ -53,7 +53,7 @@ pytest-django==4.1.0
|
||||
pytest-xdist==2.2.0
|
||||
pytest-cov==2.11.1
|
||||
raven==6.10.0
|
||||
reportlab==3.5.60
|
||||
reportlab==3.5.59
|
||||
requests==2.25.1
|
||||
retrying==1.3.3
|
||||
selenium==3.141.0
|
||||
|
||||
Reference in New Issue
Block a user