You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
3.4 KiB
Python
149 lines
3.4 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
"""
|
|
Authors : Jean-Damien Généro
|
|
Affiliation : French National Center for Scientific Research (CNRS)
|
|
Assigned at the Centre de recherches historiques (CRH, UMR 8558)
|
|
Date : 2022-10-11
|
|
Update :
|
|
"""
|
|
|
|
|
|
import re
|
|
import typing as t
|
|
|
|
import peewee
|
|
from flask import url_for
|
|
from playhouse.sqlite_ext import FTS5Model, RowIDField, SearchField
|
|
|
|
from app.app import db
|
|
|
|
|
|
class BaseModel(peewee.Model):
|
|
class Meta:
|
|
database = db
|
|
|
|
class Institution(BaseModel):
|
|
id_institution = peewee.AutoField()
|
|
full_label = peewee.TextField()
|
|
inst_label = peewee.TextField()
|
|
art_inst = peewee.TextField()
|
|
inst_place = peewee.TextField()
|
|
inst_rank = peewee.TextField()
|
|
inst_type = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Institution'
|
|
|
|
|
|
class State(BaseModel):
|
|
id_state = peewee.AutoField()
|
|
state_label = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'State'
|
|
|
|
class House(BaseModel):
|
|
id_house = peewee.AutoField()
|
|
house_label = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'House'
|
|
|
|
class Intervention_type(BaseModel):
|
|
id_intev = peewee.AutoField()
|
|
interv_label = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Intervention_type'
|
|
|
|
class Production_place(BaseModel):
|
|
id_place = peewee.AutoField()
|
|
placename = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Production_place'
|
|
|
|
|
|
class Diplo_type(BaseModel):
|
|
id_diplo_type = peewee.AutoField()
|
|
diplo_label = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Diplo_type'
|
|
|
|
|
|
class Document(BaseModel):
|
|
id_document = peewee.AutoField()
|
|
inst_doc = peewee.ForeignKeyField(Institution, backref='documents')
|
|
collection_doc = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Document'
|
|
|
|
class Agent(BaseModel):
|
|
id_agent = peewee.AutoField()
|
|
agent_name = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Agent'
|
|
|
|
|
|
class Acte(BaseModel):
|
|
id_acte = peewee.AutoField()
|
|
num_acte = peewee.IntegerField()
|
|
filename = peewee.TextField()
|
|
date_time = peewee.TextField() # YYYY-MM-DD
|
|
date = peewee.TextField() # verbose
|
|
prod_place_acte = peewee.ForeignKeyField(Production_place, backref='actes')
|
|
analysis = peewee.TextField()
|
|
doc_acte = peewee.ForeignKeyField(Document, backref='actes')
|
|
ref_acte = peewee.TextField() # cote
|
|
state_doc = peewee.ForeignKeyField(State, backref='actes')
|
|
diplo_type_acte = peewee.ForeignKeyField(Diplo_type, backref='actes')
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Acte'
|
|
|
|
class Transcribed_by(BaseModel):
|
|
id_transcr = peewee.AutoField()
|
|
transcr_acte = peewee.ForeignKeyField(Acte, backref='transcribed_bys')
|
|
transcr_agent = peewee.ForeignKeyField(Agent, backref='transcribed_bys')
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Transcribed_by'
|
|
|
|
class Individual(BaseModel):
|
|
id_indiv = peewee.AutoField()
|
|
name_indiv = peewee.TextField()
|
|
role_indiv = peewee.TextField()
|
|
house_indiv = peewee.ForeignKeyField(House, backref='individuals')
|
|
date1 = peewee.TextField()
|
|
date2 = peewee.TextField()
|
|
date3 = peewee.TextField()
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Individual'
|
|
|
|
class Involved_in(BaseModel):
|
|
id_involved_in = peewee.AutoField()
|
|
involved_in_acte = peewee.ForeignKeyField(Acte, backref='involved_ins')
|
|
involved_in_prince = peewee.ForeignKeyField(Individual, backref='involved_ins')
|
|
invol_in_interv = peewee.ForeignKeyField(Intervention_type, backref='involved_ins')
|
|
|
|
class Meta:
|
|
database = db
|
|
db_table = 'Involved_in'
|