In [1]:
import csv, re

In [2]:
threedmodelsall = Threedmodel.objects.all()
for x in threedmodelsall:
    x.delete()

In [3]:
file = "data/Schachermeyr_threedmodels.csv"

In [4]:
with open(file, 'r', encoding ='utf-8') as data:
    reader = csv.reader(data)
    datalist = list(reader)

In [5]:
#create new model
for x in datalist[2:]:
    if x[22] != '':
        model = Threedmodel.objects.get_or_create(model_id=x[0],
                                             part=x[10],
                                             diameter=x[11],
                                             wall_thickness=x[12],
                                             surface_treatment_i=x[13],
                                             surface_treatment_o=x[14],
                                             surface_color_i=x[15],
                                             surface_color_o=x[16],
                                             decoration_color=x[17],
                                             decoration_description=x[18],
                                             fabric_color=x[25],
                                             hardness=x[26],
                                             sorting=x[27],
                                             density=x[28],
                                             pores=x[29],
                                             core_form=x[30],
                                             core_color=x[31],
                                             model_file='models/'+x[22]+'.nxs',
                                             model_thumbnail='thumbnails/'+x[22]+'.jpg')

In [6]:
# add metadata to model
for x in datalist[2:]:
    if x[22] != '':
        try:
            model = Threedmodel.objects.get(model_id=x[0])
            model.model_metadata = "metadata/{}.csv".format(x[22])
            model.save()
        except:
            print('error:'+x[22])

In [7]:
#add parameter data to model
for x in datalist[2:]:
    if x[22] != '':
        try:
            model = Threedmodel.objects.get(model_id=x[0])
            newName = re.sub('internet', 'Parameter', x[22])
            model.model_parameters = "parameters/{}.txt".format(newName)
            model.save()
        except:
            print('error:'+x[22])

In [8]:
#create contact and project objects

new_institution, _ = DC_researchevent_institution.objects.get_or_create(name="ÖAW, OREA")
new_contact1, _ = Contact.objects.get_or_create(
    first_name = "Eva",
    last_name = "Alram"
)
new_contact1.institution.add(new_institution)
new_contact1.save()

new_contact2, _ = Contact.objects.get_or_create(
    first_name = "Seta",
    last_name = "Stuhec"
)
new_contact2.institution.add(new_institution)
new_contact2.save()

new_project, _ = Project.objects.get_or_create(
    name = "Digitizing Early Farming Cultures",
    title = "Fritz Schachermeyr pottery collection",
    source = "ÖAW, OREA",
    language = "English/German",
    keywords = "3D, pottery, neolithic, Thessaly",
    publisher = "ÖAW, OREA",
    license = "CC-BY",
    access_rights = "Open access")

new_project.contact = ([new_contact1,new_contact2])

In [9]:
#add resource_metadata to model
for x in datalist[2:]:
    if x[22] != '':
        temp_model = Threedmodel.objects.get(model_id=x[0])
        temp_model.resource_metadata = new_project
        temp_model.save()

In [ ]: