Changes to importer:

Added delete method to all importers
Added nonrig importing
Venue import optimisation

Reran importer for empty DB
Reset password appropriately

Added view permission to all models where needed.
Migrated DB to reflect.

Fixed all print buttons on event detail.
This commit is contained in:
Tom Price
2014-12-08 02:42:18 +00:00
parent de153badcd
commit ea61bda578
6 changed files with 135 additions and 10 deletions

View File

@@ -27,7 +27,9 @@ def setup_cursor():
def clean_ascii(text):
return ''.join([i if ord(i) < 128 else '' for i in text])
def import_users():
def import_users(delete=False):
if(delete):
models.Event.objects.get(is_rig=False).delete()
cursor = setup_cursor()
if cursor is None:
return
@@ -50,7 +52,9 @@ def import_users():
print("Created " + str(object))
def import_people():
def import_people(delete=False):
if(delete):
models.Event.objects.get(is_rig=False).delete()
cursor = setup_cursor()
if cursor is None:
return
@@ -76,7 +80,9 @@ def import_people():
print("Found: " + person.__str__())
def import_organisations():
def import_organisations(delete=False):
if(delete):
models.Event.objects.get(is_rig=False).delete()
cursor = setup_cursor()
if cursor is None:
return
@@ -98,7 +104,9 @@ def import_organisations():
print("Found: " + object.__str__())
def import_vat_rates():
def import_vat_rates(delete=False):
if(delete):
models.Event.objects.get(is_rig=False).delete()
cursor = setup_cursor()
if cursor is None:
return
@@ -122,7 +130,7 @@ def import_venues(delete=False):
cursor = setup_cursor()
if cursor is None:
return
sql = """SELECT `venue`, `threephasepower` FROM `eventdetails` WHERE `venue` IS NOT NULL"""
sql = """SELECT `venue`, `threephasepower` FROM `eventdetails` GROUP BY `venue` WHERE `venue` IS NOT NULL"""
cursor.execute(sql)
for row in cursor.fetchall():
print(("Searching for %s", row[0]))
@@ -226,6 +234,26 @@ def import_eventitem(delete=True):
with reversion.create_revision():
event.save()
def import_nonrigs(delete=False):
if(delete):
models.Event.objects.get(is_rig=False).delete()
cursor = setup_cursor()
if cursor is None:
return
sql = """SELECT name, start_date, start_time, end_date, end_time, description, user_id FROM non_rigs WHERE active = 1;"""
cursor.execute(sql)
for row in cursor.fetchall():
print(row)
with transaction.atomic(), reversion.create_revision():
event = models.Event()
event.name = row[0]
event.start_date = row[1]
event.start_time = row[2]
event.end_date = row[3]
event.end_time = row[4]
event.description = row[5]
event.mic = models.Profile.objects.get(pk=row[6])
event.save()
def main():
# import_users()
@@ -233,9 +261,9 @@ def main():
# import_organisations()
# import_vat_rates()
# import_venues(True)
# import_events()
# import_rigs(False)
import_eventitem(True)
# import_eventitem(True)
import_nonrigs(True)
if __name__ == "__main__":

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('RIGS', '0012_auto_20141106_0253'),
]
operations = [
migrations.AlterField(
model_name='event',
name='person',
field=models.ForeignKey(blank=True, null=True, to='RIGS.Person'),
preserve_default=True,
),
]

View File

@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('RIGS', '0013_auto_20141202_0041'),
]
operations = [
migrations.AlterField(
model_name='event',
name='venue',
field=models.ForeignKey(blank=True, to='RIGS.Venue', null=True),
preserve_default=True,
),
migrations.AlterField(
model_name='eventitem',
name='event',
field=models.ForeignKey(related_name='items', blank=True, to='RIGS.Event'),
preserve_default=True,
),
]

View File

@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('RIGS', '0014_auto_20141208_0220'),
]
operations = [
migrations.AlterModelOptions(
name='event',
options={'permissions': (('view_event', 'Can view Events'),)},
),
migrations.AlterModelOptions(
name='organisation',
options={'permissions': (('view_organisation', 'Can view Organisations'),)},
),
migrations.AlterModelOptions(
name='person',
options={'permissions': (('view_person', 'Can view Persons'),)},
),
migrations.AlterModelOptions(
name='venue',
options={'permissions': (('view_venue', 'Can view Venues'),)},
),
]

View File

@@ -24,6 +24,7 @@ class Profile(AbstractUser):
def name(self):
return self.get_full_name() + ' "' + self.initials + '"'
class RevisionMixin(object):
@property
def last_edited_at(self):
@@ -52,6 +53,11 @@ class Person(models.Model, RevisionMixin):
string += "*"
return string
class Meta:
permissions = (
('view_person', 'Can view Persons'),
)
@reversion.register
class Organisation(models.Model, RevisionMixin):
@@ -69,6 +75,11 @@ class Organisation(models.Model, RevisionMixin):
if len(self.notes) > 0:
string += "*"
return string
class Meta:
permissions = (
('view_organisation', 'Can view Organisations'),
)
class VatManager(models.Manager):
@@ -120,6 +131,11 @@ class Venue(models.Model, RevisionMixin):
if self.notes and len(self.notes) > 0:
string += "*"
return string
class Meta:
permissions = (
('view_venue', 'Can view Venues'),
)
class EventManager(models.Manager):
@@ -170,7 +186,7 @@ class Event(models.Model, RevisionMixin):
name = models.CharField(max_length=255)
person = models.ForeignKey('Person', null=True, blank=True)
organisation = models.ForeignKey('Organisation', blank=True, null=True)
venue = models.ForeignKey('Venue')
venue = models.ForeignKey('Venue', blank=True, null=True)
description = models.TextField(blank=True, null=True)
notes = models.TextField(blank=True, null=True)
status = models.IntegerField(choices=EVENT_STATUS_CHOICES, default=PROVISIONAL)
@@ -229,6 +245,11 @@ class Event(models.Model, RevisionMixin):
def __str__(self):
return str(self.pk) + ": " + self.name
class Meta:
permissions = (
('view_event', 'Can view Events'),
)
class EventItem(models.Model):

View File

@@ -107,7 +107,7 @@
<div class="btn-group btn-page">
<a href="{% url 'event_update' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-edit"></span></a>
<a href="{#% url event_print event.pk %#}" class="btn btn-default"><span
<a href="{% url 'event_print' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-print"></span></a>
</div>
</div>
@@ -129,7 +129,7 @@
<div class="btn-group btn-page">
<a href="{% url 'event_update' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-edit"></span></a>
<a href="{#% url event_print event.pk %#}" class="btn btn-default"><span
<a href="{% url 'event_print' event.pk %}" class="btn btn-default"><span
class="glyphicon glyphicon-print"></span></a>
</div>
<div>Last edited at {{ object.last_edited_at|date:"SHORT_DATETIME_FORMAT" }} by {{ object.last_edited_by }}.