# 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 Language(models.Model): id = models.AutoField(primary_key=True) language = models.TextField(blank=True, null=True) def __str__(self): return self.language 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 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.ForeignKey(Language, models.DO_NOTHING, blank=True, null=True, to_field='id') mother_range = models.ForeignKey("self", models.DO_NOTHING, blank=True, null=True, to_field='id') feature = models.ForeignKey(RangeType, models.DO_NOTHING, blank=True, null=True, to_field='id') 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.BooleanField(default=False, null=True, blank=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 and self.range_name else '--' def dict(self): return { 'id': self.id, 'name': self.range_name, 'gmba_id': self.gmba_id, 'countries': self.countries, } class Resource(models.Model): STAR_CHOICES = ( ("", ""), ("-", "-"), ("*", "*"), ("**", "**"), ("***", "***"), ("****", "****"), ("*****", "*****"), ) 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, choices=STAR_CHOICES) 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 PeopleStatus(models.Model): id = models.AutoField(primary_key=True) status = models.TextField(blank=True, null=True) def __str__(self): return self.status 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.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True, to_field='id') 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) 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')