Beispiel #1
0
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()
Beispiel #2
0
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()
Beispiel #3
0
    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))
Beispiel #4
0
    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))