gmba_django/app/models.py

707 lines
26 KiB
Python

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
# * Rearrange models' order
# * Make sure each model has one field with primary_key=True
# * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models
class AlembicVersion(models.Model):
version_num = models.TextField()
class Meta:
managed = False
db_table = 'alembic_version'
class Field(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField(blank=True, null=True)
class Meta:
db_table = 'field'
def __str__(self): return self.name
def dict(self):
return {'id': self.id, 'name': self.name}
class FieldsPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey('Person', models.DO_NOTHING, blank=True, null=True)
field = models.ForeignKey(Field, models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'fields_people'
class Method(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField(blank=True, null=True)
class Meta:
db_table = 'method'
def __str__(self): return self.name
def dict(self):
return {'id': self.id, 'name': self.name}
class MethodsPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey('Person', models.DO_NOTHING, blank=True, null=True)
method = models.ForeignKey(Method, models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'methods_people'
class Range(models.Model):
id = models.AutoField(primary_key=True)
source_id = models.IntegerField(blank=True, null=True)
gmba_id = models.TextField(blank=True, null=True)
name = models.TextField(blank=True, null=True)
countries = models.TextField(blank=True, null=True)
range_name_map = models.TextField(blank=True, null=True, unique=True)
range_name = models.TextField(blank=True, null=True)
range_name_ascii = models.TextField(blank=True, null=True)
range_name_language = models.TextField(blank=True, null=True)
mother_range = models.TextField(blank=True, null=True)
feature = models.TextField(blank=True, null=True)
map_unit = models.TextField(blank=True, null=True)
level = models.TextField(blank=True, null=True)
level_text = models.TextField(blank=True, null=True)
level_1 = models.TextField(blank=True, null=True)
level_2 = models.TextField(blank=True, null=True)
level_3 = models.TextField(blank=True, null=True)
latitude = models.TextField(blank=True, null=True)
longitude = models.TextField(blank=True, null=True)
orogeny = models.TextField(blank=True, null=True)
area = models.TextField(blank=True, null=True)
GMBA_v1_id = models.TextField(blank=True, null=True)
peak_elevation = models.TextField(blank=True, null=True)
peak_name = models.TextField(blank=True, null=True)
peak_latitude = models.TextField(blank=True, null=True)
peak_longitude = models.TextField(blank=True, null=True)
comments = models.TextField(blank=True, null=True)
checked = models.TextField(blank=True, null=True)
source = models.TextField(blank=True, null=True)
range_alternate_id = models.TextField(blank=True, null=True)
geologic_region = models.TextField(blank=True, null=True)
gmba_v2_id = models.TextField(blank=True, null=True)
gmba_v2_id_str = models.TextField(blank=True, null=True)
wiki_data_id = models.TextField(blank=True, null=True)
wiki_data_url = models.TextField(blank=True, null=True)
select_300 = models.TextField(blank=True, null=True)
gmba_narrow = models.TextField(blank=True, null=True)
name_fr = models.TextField(blank=True, null=True)
name_de = models.TextField(blank=True, null=True)
name_es = models.TextField(blank=True, null=True)
name_pt = models.TextField(blank=True, null=True)
name_cn = models.TextField(blank=True, null=True)
name_ru = models.TextField(blank=True, null=True)
name_tr = models.TextField(blank=True, null=True)
perimeter = models.TextField(blank=True, null=True)
color_all = models.TextField(blank=True, null=True)
color_basic = models.TextField(blank=True, null=True)
color_300 = models.TextField(blank=True, null=True)
elev_low = models.TextField(blank=True, null=True)
elev_high = models.TextField(blank=True, null=True)
elev_range = models.TextField(blank=True, null=True)
elev_avg = models.TextField(blank=True, null=True)
class Meta:
db_table = 'range'
def __str__(self):
return self.range_name if self else '--'
def dict(self):
return {
'id': self.id,
'name': self.name,
'gmba_id': self.gmba_id,
'countries': self.countries,
}
class Resource(models.Model):
id = models.AutoField(primary_key=True)
source_id = models.IntegerField(blank=True, null=True)
title = models.TextField(blank=True, null=True)
url = models.TextField(blank=True, null=True)
citation = models.TextField(blank=True, null=True)
abstract = models.TextField(blank=True, null=True)
type = models.TextField(blank=True, null=True)
author_keywords = models.TextField(blank=True, null=True)
lat = models.TextField(blank=True, null=True)
lon = models.TextField(blank=True, null=True)
stars = models.TextField(blank=True, null=True)
PEGASuS_Check_map_with_author = models.TextField(blank=True, null=True)
PEGASuS_polygon_ID = models.TextField(blank=True, null=True)
PEGASuS_Polygon_comments = models.TextField(blank=True, null=True)
PEGASuS_Assessment_ID = models.TextField(blank=True, null=True)
gloria = models.TextField(blank=True, null=True)
gnomo = models.TextField(blank=True, null=True)
lter = models.TextField(blank=True, null=True)
ltser = models.TextField(blank=True, null=True)
miren = models.TextField(blank=True, null=True)
team = models.TextField(blank=True, null=True)
inventory = models.TextField(blank=True, null=True)
doi = models.TextField(blank=True, null=True)
wiki_data_id = models.TextField(blank=True, null=True)
class Meta:
db_table = 'resource'
def __str__(self):
return self.title
def dict(self):
return {
'id': self.id,
'title': self.title or '',
'citation': self.citation or '',
'url': self.url or '',
'abstract': self.abstract or '',
}
class Scale(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField(blank=True, null=True)
class Meta:
db_table = 'scale'
def __str__(self):
return self.name
class Taxon(models.Model):
id = models.AutoField(primary_key=True)
name = models.TextField(blank=True, null=True)
class Meta:
db_table = 'taxon'
def __str__(self): return self.name
def dict(self):
return {'id': self.id, 'name': self.name}
# LU models
class Country(models.Model):
id = models.AutoField(primary_key=True)
short_name = models.TextField(blank=True, null=True)
formal_name = models.TextField(blank=True, null=True)
membership_within_un_system = models.TextField(blank=True, null=True)
continent = models.TextField(blank=True, null=True)
eu_ms = models.TextField(blank=True, null=True)
eea_ms = models.TextField(blank=True, null=True)
iso3 = models.TextField(blank=True, null=True)
iso2 = models.TextField(blank=True, null=True)
def __str__(self):
return self.short_name if self else '--'
class GMBA_SpeciesGroup(models.Model):
id = models.AutoField(primary_key=True)
species_group = models.TextField(blank=True, null=True)
def __str__(self):
return self.species_group
class Language(models.Model):
id = models.AutoField(primary_key=True)
language = models.TextField(blank=True, null=True)
def __str__(self):
return self.language
class PeopleStatus(models.Model):
id = models.AutoField(primary_key=True)
status = models.TextField(blank=True, null=True)
def __str__(self):
return self.status
class RangeType(models.Model):
id = models.AutoField(primary_key=True)
range_type = models.TextField(blank=True, null=True)
def __str__(self):
return self.range_type
class RedListCategory(models.Model):
id = models.AutoField(primary_key=True)
red_list_category = models.TextField(blank=True, null=True)
def __str__(self):
return self.red_list_category
class TaxonStatus(models.Model):
id = models.AutoField(primary_key=True)
taxon_status = models.TextField(blank=True, null=True)
def __str__(self):
return self.taxon_status
class TaxonUnit(models.Model):
id = models.AutoField(primary_key=True)
taxon_unit = models.TextField(blank=True, null=True)
def __str__(self):
return self.taxon_unit
class TrendsQuality(models.Model):
id = models.AutoField(primary_key=True)
trend = models.TextField(blank=True, null=True)
def __str__(self):
return self.trend
class TrendsQuantity(models.Model):
id = models.AutoField(primary_key=True)
trend = models.TextField(blank=True, null=True)
def __str__(self):
return self.trend
class Source(models.Model):
id = models.AutoField(primary_key=True)
source = models.TextField(blank=True, null=True)
def __str__(self):
return self.source
class Repository(models.Model):
id = models.AutoField(primary_key=True)
repository_name = models.TextField(blank=True, null=True)
repository_url = models.TextField(blank=True, null=True)
def __str__(self):
return '%s --- %s' % (self.repository_name, self.repository_url)
class GMBA_function(models.Model):
id = models.AutoField(primary_key=True)
gmba_function = models.TextField(blank=True, null=True)
def __str__(self):
return self.gmba_function
class Organization(models.Model):
org_num1 = models.AutoField(primary_key=True)
organisation_search = models.TextField(blank=True, null=True)
org_alpha_search = models.TextField(blank=True, null=True)
organisation_english = models.TextField(blank=True, null=True)
organisation_2 = models.TextField(blank=True, null=True)
organisation_3 = models.TextField(blank=True, null=True)
organisation_original = models.TextField(blank=True, null=True)
acronym = models.TextField(blank=True, null=True)
street = models.TextField(blank=True, null=True)
po_box = models.TextField(blank=True, null=True)
postcode = models.TextField(blank=True, null=True)
city = models.TextField(blank=True, null=True)
region = models.TextField(blank=True, null=True)
search_url = models.TextField(blank=True, null=True)
lat_long = models.TextField(blank=True, null=True)
url = models.TextField(blank=True, null=True)
tel = models.TextField(blank=True, null=True)
email = models.TextField(blank=True, null=True)
country = models.TextField(blank=True, null=True)
tags = models.TextField(blank=True, null=True)
description = models.TextField(blank=True, null=True)
northing = models.TextField(blank=True, null=True)
easting = models.TextField(blank=True, null=True)
category = models.TextField(blank=True, null=True)
subject = models.TextField(blank=True, null=True)
def __str__(self):
return self.organisation_english
class RangeOnlineInfo(models.Model):
id = models.AutoField(primary_key=True)
range_name = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True, to_field='range_name_map')
info_source = models.TextField(blank=True, null=True)
url = models.TextField(blank=True, null=True)
def __str__(self):
return self.range_name
class RangeNameTranslation(models.Model):
id = models.AutoField(primary_key=True)
range_name = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
language_translation = models.ForeignKey(Language, models.DO_NOTHING, blank=True, null=True)
range_name_translation = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s' % (self.range_name, self.language_translation.language)
class AddElevation(models.Model):
id = models.AutoField(primary_key=True)
gmba_v2_id = models.TextField(blank=True, null=True)
elev_min = models.TextField(blank=True, null=True)
elev_max = models.TextField(blank=True, null=True)
elev_range = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s' % (self.gmba_v2_id, self.elev_range)
class GMBA_V2_Centroid(models.Model):
id = models.AutoField(primary_key=True)
gridcode = models.TextField(blank=True, null=True)
area = models.TextField(blank=True, null=True)
latitude = models.TextField(blank=True, null=True)
longitude = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s, %s' % (self.gridcode, self.latitude, self.longitude)
class ImportGeom210915(models.Model):
id = models.AutoField(primary_key=True)
gmba_v2_id = models.TextField(blank=True, null=True)
area = models.TextField(blank=True, null=True)
perimeter = models.TextField(blank=True, null=True)
color_all = models.TextField(blank=True, null=True)
color_basic = models.TextField(blank=True, null=True)
def __str__(self):
return self.gmba_v2_id
class Keyword(models.Model):
keyword_id = models.AutoField(primary_key=True)
mother = models.TextField(blank=True, null=True)
keyword = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s' % (self.keyword, self.mother)
class ResourceKeyword(models.Model):
id = models.AutoField(primary_key=True)
resource = models.ForeignKey(Resource, models.DO_NOTHING, blank=True, null=True)
keyword = models.ForeignKey(Keyword, models.DO_NOTHING, blank=True, null=True, to_field='keyword_id')
def __str__(self):
return '%s - %s' % (self.resource.title, self.keyword.keyword)
class NamesImport(models.Model):
id = models.AutoField(primary_key=True)
gmba_v2_id = models.TextField(blank=True, null=True)
cn = models.TextField(blank=True, null=True)
de = models.TextField(blank=True, null=True)
es = models.TextField(blank=True, null=True)
fr = models.TextField(blank=True, null=True)
pt = models.TextField(blank=True, null=True)
ru = models.TextField(blank=True, null=True)
tr = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s - %s - %s' % (self.gmba_v2_id, self.cn, self.de, self.fr)
class ResourceRange(models.Model):
id = models.AutoField(primary_key=True)
resource_title = models.ForeignKey(Resource, models.DO_NOTHING, blank=True, null=True)
range_name = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
def __str__(self):
return '%s, %s' % (self.resource_title.title, self.range_name.name)
class LanguageLink(models.Model):
id = models.AutoField(primary_key=True)
language_number_code = models.ForeignKey(Language, models.DO_NOTHING, blank=True, null=True)
language_letter_code = models.TextField(blank=True, null=True)
def __str__(self):
return '%s - %s' % (self.language_number_code.language, self.language_letter_code)
class Peak(models.Model):
id = models.AutoField(primary_key=True)
point_name = models.TextField(blank=True, null=True)
latitude = models.TextField(blank=True, null=True)
longitude = models.TextField(blank=True, null=True)
type = models.TextField(blank=True, null=True)
elevation = models.TextField(blank=True, null=True)
link = models.TextField(blank=True, null=True)
def __str__(self):
return self.point_name
class Search(models.Model):
id = models.AutoField(primary_key=True)
range_name = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
repository = models.ForeignKey(Repository, models.DO_NOTHING, blank=True, null=True)
search_string = models.TextField(blank=True, null=True)
search_date = models.TextField(blank=True, null=True)
result = models.TextField(blank=True, null=True)
number_of_records = models.TextField(blank=True, null=True)
stored = models.TextField(blank=True, null=True)
def __str__(self):
return self.search_string if self else ' -- '
class Person(models.Model):
id = models.AutoField(primary_key=True)
source_id = models.IntegerField(blank=True, null=True)
title = models.TextField(blank=True, null=True)
first_name = models.TextField(blank=True, null=True)
last_name = models.TextField(blank=True, null=True)
organisation = models.TextField(blank=True, null=True)
position = models.TextField(blank=True, null=True)
contact_email = models.TextField(blank=True, null=True) # email_1
personal_url = models.TextField(blank=True, null=True) # url ?
biography = models.TextField(blank=True, null=True)
field_indexer = models.TextField(db_column='_indexer', blank=True, null=True) # Field renamed because it started with '_'.
mr_mrs = models.TextField(blank=True, null=True)
full_name = models.TextField(blank=True, null=True)
search_name = models.TextField(blank=True, null=True)
email_2 = models.TextField(blank=True, null=True)
skype = models.TextField(blank=True, null=True)
professional_phone = models.TextField(blank=True, null=True)
mobile_number = models.TextField(blank=True, null=True)
url = models.TextField(blank=True, null=True)
field_of_expertise = models.TextField(blank=True, null=True)
status = models.ForeignKey(PeopleStatus, models.DO_NOTHING, blank=True, null=True, to_field='id')
entry_date = models.TextField(blank=True, null=True, editable=False)
gmba_function = models.TextField(blank=True, null=True)
news_letter = models.BooleanField(default=False)
country = models.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True, to_field='id')
organization = models.ForeignKey(Organization, models.DO_NOTHING, blank=True, null=True)
birds = models.BooleanField(default=False)
mammals = models.BooleanField(default=False)
reptiles = models.BooleanField(default=False)
amphibians = models.BooleanField(default=False)
fish = models.BooleanField(default=False)
insects = models.BooleanField(default=False)
molluscs = models.BooleanField(default=False)
crustaceans = models.BooleanField(default=False)
arachnids = models.BooleanField(default=False)
angiosperms = models.BooleanField(default=False)
gymnosperms = models.BooleanField(default=False)
fungi = models.BooleanField(default=False)
algae = models.BooleanField(default=False)
microbes = models.BooleanField(default=False)
biological_field_sampling = models.BooleanField(default=False)
data_mining = models.BooleanField(default=False)
remote_sensing = models.BooleanField(default=False)
gis = models.BooleanField(default=False)
spatial_analysis = models.BooleanField(default=False)
statistical_analysis = models.BooleanField(default=False)
modelling = models.BooleanField(default=False)
assessment = models.BooleanField(default=False)
meta_analysis = models.BooleanField(default=False)
synthesis = models.BooleanField(default=False)
qualitative_ssm = models.BooleanField(default=False) #"Qualitative social science methods (interviews, surveys)"
genetic_analyses = models.BooleanField(default=False)
field_site = models.BooleanField(default=False)
transect = models.BooleanField(default=False)
mountain_top = models.BooleanField(default=False)
mountain_range = models.BooleanField(default=False)
landscape = models.BooleanField(default=False)
regional = models.BooleanField(default=False)
national = models.BooleanField(default=False)
_global = models.BooleanField(default=False)
geographic_area_of_expertise = models.TextField(blank=True, null=True)
profile_on_web = models.BooleanField(default=False)
updated = models.BooleanField(default=False)
orcid = models.TextField(blank=True, null=True)
web_of_science = models.TextField(blank=True, null=True)
twitter = models.TextField(blank=True, null=True)
instagram = models.TextField(blank=True, null=True)
class Meta:
db_table = 'person'
def get_regional(self):
return False
def index(self):
self.field_indexer = " ".join([
self.first_name, self.last_name, self.organisation, self.position, self.biography
])
return True
def fullname(self):
return " ".join([self.title, self.first_name, self.last_name])
def __str__(self):
return self.fullname()
def dict(self):
return {
'id': self.id,
'fullname': self.fullname(),
'organisation': self.organisation or '',
'position': self.position or '',
'country': self.country or '',
'personal_url': self.personal_url or '',
'personal_urls': self.personal_url.split(';'),
'biography': self.biography or '',
}
class TaxaPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
taxon = models.ForeignKey('Taxon', models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'taxa_people'
def __str__(self):
return self.person.full_name
class RangesPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
range = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'ranges_people'
def __str__(self):
return self.person.full_name
class ResourcesPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
resource = models.ForeignKey(Resource, models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'resources_people'
def __str__(self):
return self.person.full_name
class ScalesPeople(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
scale = models.ForeignKey(Scale, models.DO_NOTHING, blank=True, null=True)
class Meta:
db_table = 'scales_people'
def __str__(self):
return self.person.full_name
class Species(models.Model):
id = models.AutoField(primary_key=True)
scientific_name = models.TextField(blank=True, null=True)
_class = models.TextField(blank=True, null=True)
english_name = models.TextField(blank=True, null=True)
url = models.TextField(blank=True, null=True)
def __str__(self):
return '%s, %s, %s' % (self.scientific_name, self._class, self.english_name)
class PeopleFunction(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
function = models.ForeignKey(GMBA_function, models.DO_NOTHING, blank=True, null=True)
def __str__(self):
return self.person.full_name
class SpeciesRange(models.Model):
id = models.AutoField(primary_key=True)
scientific_name = models.ForeignKey(Species, models.DO_NOTHING, blank=True, null=True)
range = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
endemic = models.TextField(blank=True, null=True)
source_url = models.TextField(blank=True, null=True)
def __str__(self):
return self.scientific_name.scientific_name if self and self.scientific_name else ' -- '
class PeopleRange(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
range = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
def __str__(self):
return str(self.id)
class TaxonRange(models.Model):
id = models.AutoField(primary_key=True)
range = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
taxon = models.TextField(blank=True, null=True)
subrange_or_region = models.TextField(blank=True, null=True)
taxon_status = models.TextField(blank=True, null=True)
distribution = models.TextField(blank=True, null=True)
redlist = models.TextField(blank=True, null=True)
count_unit = models.TextField(blank=True, null=True)
number_of_units = models.TextField(blank=True, null=True)
source = models.TextField(blank=True, null=True)
remarks = models.TextField(blank=True, null=True)
def __str__(self):
return self.taxon if self.taxon else '--'
class Role(models.Model):
id = models.AutoField(primary_key=True)
role = models.TextField(blank=True, null=True)
def __str__(self):
return self.role if self.role else '--'
class PeopleResource(models.Model):
id = models.AutoField(primary_key=True)
person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=True)
resource = models.ForeignKey(Resource, models.DO_NOTHING, blank=True, null=True)
role = models.TextField(blank=True, null=True)
p_r_role = models.ForeignKey(Role, models.DO_NOTHING, blank=True, null=True)
def __str__(self):
return self.person.full_name if self.person else ' -- '
class RangeCountry(models.Model):
id = models.AutoField(primary_key=True)
range = models.ForeignKey(Range, models.DO_NOTHING, blank=True, null=True)
country = models.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True)
def __str__(self):
return '%s --- %s' % (self.range.range_name if self.range else 'None', self.country.short_name if self.country else 'None')