diff --git a/RIGS/importer.py b/RIGS/importer.py index db10a04d..0a8bbbe5 100644 --- a/RIGS/importer.py +++ b/RIGS/importer.py @@ -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__": diff --git a/RIGS/migrations/0013_auto_20141202_0041.py b/RIGS/migrations/0013_auto_20141202_0041.py new file mode 100644 index 00000000..9403ad12 --- /dev/null +++ b/RIGS/migrations/0013_auto_20141202_0041.py @@ -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, + ), + ] diff --git a/RIGS/migrations/0014_auto_20141208_0220.py b/RIGS/migrations/0014_auto_20141208_0220.py new file mode 100644 index 00000000..f8d97f8f --- /dev/null +++ b/RIGS/migrations/0014_auto_20141208_0220.py @@ -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, + ), + ] diff --git a/RIGS/migrations/0015_auto_20141208_0233.py b/RIGS/migrations/0015_auto_20141208_0233.py new file mode 100644 index 00000000..df842ece --- /dev/null +++ b/RIGS/migrations/0015_auto_20141208_0233.py @@ -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'),)}, + ), + ] diff --git a/RIGS/models.py b/RIGS/models.py index 682c3e2d..7c7823f2 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -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): diff --git a/RIGS/templates/RIGS/event_detail.html b/RIGS/templates/RIGS/event_detail.html index fe410f0c..f74de4e6 100644 --- a/RIGS/templates/RIGS/event_detail.html +++ b/RIGS/templates/RIGS/event_detail.html @@ -107,7 +107,7 @@
@@ -129,7 +129,7 @@