Fixed event importer and imported

This commit is contained in:
tec
2014-11-06 01:29:12 +00:00
parent 028c43cff5
commit 6dfccd11e0

View File

@@ -14,7 +14,6 @@ from RIGS import models
import reversion import reversion
from datetime import datetime from datetime import datetime
def setup_cursor(): def setup_cursor():
try: try:
cursor = connections['legacy'].cursor() cursor = connections['legacy'].cursor()
@@ -135,48 +134,65 @@ def import_venues(delete=False):
object = models.Venue(name=row[0], three_phase_available=row[1]) object = models.Venue(name=row[0], three_phase_available=row[1])
object.save() object.save()
def clean_ascii(text):
return ''.join([i if ord(i) < 128 else '' for i in text])
def import_rigs(): def import_rigs():
cursor = setup_cursor() cursor = setup_cursor()
if cursor is None: if cursor is None:
return return
sql = """SELECT e.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, user_id, payment_method, order_no, payment_received, collectorsid FROM eventdetails AS e LEFT JOIN rigs AS r ON e.id = r.id WHERE describable_type = 'Rig'""" sql = """SELECT e.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.id = r.id WHERE describable_type = 'Rig' AND venue IS NOT NULL"""
cursor.execute(sql) cursor.execute(sql)
for row in cursor.fetchall(): for row in cursor.fetchall():
with transaction.atomic(), reversion.revision(): print(row)
venue = models.Venue.objects.get(name__iexact=row[4]) person = models.Person.objects.get(pk=row[2])
status = { if row[3]:
'Booked': models.Event.BOOKED, organisation = models.Organisation.objects.get(pk=row[3])
'Provisional': models.Event.PROVISIONAL, else:
'Cancelled': models.Event.CANCELLED, organisation = None
} venue = models.Venue.objects.get(name__iexact=row[4])
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 transaction.atomic(), reversion.create_revision():
try: try:
object = models.Event.objects.get(pk=row[0]) object = models.Event.objects.get(pk=row[0])
except ObjectDoesNotExist: except ObjectDoesNotExist:
object = models.Event(pk=row[0]) object = models.Event(pk=row[0])
object.name = row[1] object.name = clean_ascii(row[1])
object.person = row[2] object.person = person
object.organisation = row[3] object.organisation = organisation
object.venue = venue object.venue = venue
object.notes = row[5] object.notes = clean_ascii(row[5])
object.status = status[row[6]] object.status = status[row[6]]
object.start_date = row[7] object.start_date = row[7]
object.start_time = row[8] object.start_time = row[8]
object.end_date = row[9] object.end_date = row[9]
object.end_time = row[10] object.end_time = row[10]
object.access_at = datetime.combine(row[11], row[12]) if row[11] and row[12]:
object.meet_at = datetime.combine(row[13], row[14]) object.access_at = datetime.combine(row[11], row[12])
if row[13] and row[14]:
object.meet_at = datetime.combine(row[13], row[14])
object.meet_info = row[15] object.meet_info = row[15]
if row[17] == "Rig": object.based_on = based_on
object.based_on = row[16]
object.dry_hire = row[18] object.dry_hire = row[18]
object.is_rig = True object.is_rig = True
object.mic = row[19] object.mic = mic
object.payment_method = row[20] object.payment_method = row[20]
object.purchase_order = row[21] object.purchase_order = row[21]
object.payment_received = row[22] object.payment_received = row[22]
object.collector = row[23] object.collector = row[23]
object.save()
def main(): def main():
# import_users() # import_users()