def import_nonrigs(delete=False): if (delete): try: models.Event.objects.filter(is_rig=False).delete() except BaseException: pass 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) mic = models.Profile.objects.get(pk=row[6]) object = models.Event() object.name = row[0] object.start_date = row[1] object.start_time = row[2] object.end_date = row[3] object.end_time = row[4] object.description = row[5] object.is_rig = False object.mic = mic print(object) object.save()
def import_rigs(delete=False): if delete: models.Event.objects.all().delete() cursor = setup_cursor() if cursor is None: return sql = """SELECT r.id, event, person_id, organisation_id, venue, description, status, start_date, start_time, end_date, end_time, access_date, access_time, meet_date, meet_time, meet_info, based_on_id, based_on_type, dry_hire, user_id, payment_method, order_no, payment_received, collectorsid FROM eventdetails AS e INNER JOIN rigs AS r ON e.describable_id = r.id WHERE describable_type = 'Rig' AND `venue` IS NOT NULL""" cursor.execute(sql) for row in cursor.fetchall(): print(row) person = models.Person.objects.get(pk=row[2]) if row[3]: organisation = models.Organisation.objects.get(pk=row[3]) else: organisation = None venue = models.Venue.objects.get(name__iexact=row[4].strip()) status = { 'Booked': models.Event.BOOKED, 'Provisional': models.Event.PROVISIONAL, 'Cancelled': models.Event.CANCELLED, } mic = models.Profile.objects.get(pk=row[19]) if row[16] and row[17] == "Rig": try: based_on = models.Event.objects.get(pk=row[16]) except ObjectDoesNotExist: based_on = None else: based_on = None with reversion.create_revision(): try: object = models.Event.objects.get(pk=row[0]) except ObjectDoesNotExist: object = models.Event(pk=row[0]) object.name = clean_ascii(row[1]) object.person = person object.organisation = organisation object.venue = venue object.notes = clean_ascii(row[5]) object.status = status[row[6]] object.start_date = row[7] object.start_time = row[8] object.end_date = row[9] object.end_time = row[10] if row[11] and row[12]: object.access_at = datetime.datetime.combine(row[11], row[12]) if row[13] and row[14]: object.meet_at = datetime.datetime.combine(row[13], row[14]) object.meet_info = row[15] object.based_on = based_on object.dry_hire = row[18] object.is_rig = True object.mic = mic object.payment_method = row[20] object.purchase_order = row[21] object.payment_received = row[22] object.collector = row[23] if object.dry_hire and object.end_date < datetime.date.today(): object.checked_in_by = mic object.save()
def test_latest_time(self): event = models.Event(name="TE LT", start_date=date(2016, 0o1, 0o1)) # Just start date self.assertEqual(event.latest_time, event.start_date) # Just end date event.end_date = date(2016, 1, 2) self.assertEqual(event.latest_time, event.end_date) # With end time event.end_time = time(23, 00) self.assertEqual(event.latest_time, self.create_datetime(2016, 1, 2, 23, 00))
def test_earliest_time(self): event = models.Event(name="TE ET", start_date=date(2016, 0o1, 0o1)) # Just a start date self.assertEqual(event.earliest_time, date(2016, 0o1, 0o1)) # With start time event.start_time = time(9, 00) self.assertEqual(event.earliest_time, self.create_datetime(2016, 1, 1, 9, 00)) # With access time event.access_at = self.create_datetime(2015, 12, 0o3, 9, 57) self.assertEqual(event.earliest_time, event.access_at) # With meet time event.meet_at = self.create_datetime(2015, 12, 0o3, 9, 55) self.assertEqual(event.earliest_time, event.meet_at) # Check order isn't important event.start_date = date(2015, 12, 0o3) self.assertEqual(event.earliest_time, self.create_datetime(2015, 12, 0o3, 9, 00))