From 2c4fb661760853d1557829769ad672e696c06930 Mon Sep 17 00:00:00 2001 From: Sami Date: Wed, 7 Sep 2022 23:48:58 +0500 Subject: [PATCH 1/2] resource and relevant objs del --- app/admin.py | 76 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/app/admin.py b/app/admin.py index 74f184d..80ae861 100644 --- a/app/admin.py +++ b/app/admin.py @@ -9,27 +9,28 @@ from django.http import HttpResponse import csv from django import forms from django.contrib.admin.widgets import AutocompleteSelect + + class autocomplete_fields_form(forms.ModelForm): """This form overrides autocomplete organization field for Person class """ + def __init__(self, *args, **kwargs): super(autocomplete_fields_form, self).__init__(*args, **kwargs) # self.fields['organization'].label = 'My new label' - class Meta: model = Person fields = '__all__' - widgets={ + widgets = { 'organization': forms.Select(attrs={'style': 'width:750px'}) - } - + } def download_csv(modeladmin, request, queryset): - name = queryset[0].__class__.__name__ + name = queryset[0].__class__.__name__ response = HttpResponse() response['Content-Disposition'] = "attachment; filename="+name+"_table.csv" first_row = [] @@ -40,12 +41,14 @@ def download_csv(modeladmin, request, queryset): writer = csv.writer(response) writer.writerow(first_row) for dic in queryset.values(): - temp_list = (list(dic.values())) + temp_list = (list(dic.values())) writer.writerow(temp_list) return response + download_csv.short_description = 'export (.csv)' + class PeopleResourceInline(admin.TabularInline): autocomplete_fields = ['resource'] model = PeopleResource @@ -64,12 +67,13 @@ class PersonAdmin(admin.ModelAdmin): PeopleRangeInline ] readonly_fields = ['id'] - search_fields = ['title', 'first_name', 'last_name', 'organisation', 'position', 'country__short_name', 'contact_email'] + search_fields = ['title', 'first_name', 'last_name', 'organisation', + 'position', 'country__short_name', 'contact_email'] fieldsets = ( (None, { 'fields': ( ('id', 'profile_on_web', 'news_letter'), - ('mr_mrs', 'title','full_name', 'position'), + ('mr_mrs', 'title', 'full_name', 'position'), ('first_name', 'last_name', 'search_name', 'status'), ('contact_email', 'email_2', 'skype', 'professional_phone'), 'organization', @@ -81,7 +85,7 @@ class PersonAdmin(admin.ModelAdmin): ('Research Scale', { 'classes': ('collapse',), 'fields': (('field_site', 'transect', 'mountain_top', 'mountain_range', 'landscape', 'regional', 'national',), - '_global'), + '_global'), }), ('Methods and tools', { 'classes': ('collapse',), @@ -107,7 +111,7 @@ class PersonAdmin(admin.ModelAdmin): list_display = ['id', 'full_name', 'organization'] #autocomplete_fields = ['organization'] - form = autocomplete_fields_form # adjust width of autocomplete_fields organization + form = autocomplete_fields_form # adjust width of autocomplete_fields organization list_per_page = settings.ADMIN_LIST_PER_PAGE ordering = ['full_name'] @@ -116,8 +120,11 @@ class PersonAdmin(admin.ModelAdmin): def get_field_queryset(self, db, db_field, request): queryset = super().get_field_queryset(db, db_field, request) if db_field.name == 'organization': - queryset = queryset.order_by('country','organisation_english','organisation_2','organisation_3', 'acronym') + queryset = queryset.order_by( + 'country', 'organisation_english', 'organisation_2', 'organisation_3', 'acronym') return queryset + + class ResourceKeywordInline(admin.TabularInline): autocomplete_fields = ['keyword'] model = ResourceKeyword @@ -139,10 +146,6 @@ class ResourcePeopleInline(admin.TabularInline): } - - - - class ResourceAdmin(admin.ModelAdmin): inlines = [ ResourceKeywordInline, @@ -182,8 +185,32 @@ class ResourceAdmin(admin.ModelAdmin): }), ) list_per_page = settings.ADMIN_LIST_PER_PAGE - actions = [download_csv] + def get_actions(self, request): + actions = super().get_actions(request) + if 'delete_selected' in actions: + del actions['delete_selected'] + return actions + + def delete_resource(self, request, obj): + for o in obj.all(): + resource_keyword = ResourceKeyword.objects.filter(resource=o.id) + for i in resource_keyword: + i.delete() + resource_range = ResourceRange.objects.filter(resource_title=o.id) + for i in resource_range: + i.delete() + resource_people = ResourcesPeople.objects.filter(resource=o.id) + for i in resource_people: + i.delete() + resource_people_resource = PeopleResource.objects.filter( + resource=o.id) + for i in resource_people_resource: + i.delete() + o.delete() + delete_resource.short_description = 'Delete Resource & Related Fields' + + actions = [download_csv, delete_resource] class RangeNameTranslationInline(admin.TabularInline): @@ -241,6 +268,7 @@ class RangeAdmin(admin.ModelAdmin): actions = [download_csv] + class PeopleOrganizationInline(admin.TabularInline): model = Person exclude = ['source_id', 'organisation', 'field_indexer'] @@ -252,15 +280,17 @@ class OrganizationAdmin(admin.ModelAdmin): PeopleOrganizationInline, ] readonly_fields = ('org_num1',) - search_fields = ['organisation_search', 'org_alpha_search', 'organisation_2', 'organisation_3', 'subject','organisation_english'] - list_display = ['org_num1', 'organisation_english', 'organisation_2', 'country'] + search_fields = ['organisation_search', 'org_alpha_search', + 'organisation_2', 'organisation_3', 'subject', 'organisation_english'] + list_display = ['org_num1', 'organisation_english', + 'organisation_2', 'country'] fieldsets = ( (None, { 'fields': ( 'org_num1', ('acronym', 'category', 'subject'), 'country', - ('organisation_english','tel', 'email', 'url',), + ('organisation_english', 'tel', 'email', 'url',), ('organisation_2', 'organisation_3'), 'organisation_original', ) @@ -275,8 +305,8 @@ class OrganizationAdmin(admin.ModelAdmin): ('Other details', { 'classes': ('collapse',), 'fields': ( - 'tags', - ), + 'tags', + ), }) ) ordering = ['organisation_english'] @@ -373,7 +403,8 @@ class SpeciesAdmin(admin.ModelAdmin): class TaxonRangeAdmin(admin.ModelAdmin): model = TaxonRange - search_fields = ['range__range_name', 'taxon', 'subrange_or_region', 'distribution', 'source', 'remarks'] + search_fields = ['range__range_name', 'taxon', + 'subrange_or_region', 'distribution', 'source', 'remarks'] list_display = ['range_name', 'taxon'] def range_name(self, obj): @@ -447,6 +478,7 @@ admin.site.register(Keyword, KeywordAdmin) # admin.site.register(Scale) # admin.site.register(Taxon) # admin.site.register(Field, FieldAdmin) +admin.site.disable_action('delete_selected') # LU models From 48a25858299ca533b96a85dfcb4330212c954991 Mon Sep 17 00:00:00 2001 From: Sami Date: Thu, 8 Sep 2022 22:44:24 +0500 Subject: [PATCH 2/2] person save method overload --- app/models.py | 160 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 106 insertions(+), 54 deletions(-) diff --git a/app/models.py b/app/models.py index 22f7e7d..8875ee0 100644 --- a/app/models.py +++ b/app/models.py @@ -31,7 +31,8 @@ class Field(models.Model): class FieldsPeople(models.Model): id = models.AutoField(primary_key=True) - person = models.ForeignKey('Person', models.DO_NOTHING, blank=True, null=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: @@ -53,8 +54,10 @@ class Method(models.Model): 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) + 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' @@ -92,10 +95,14 @@ class MountainRange(models.Model): #range_name_map = models.CharField(blank=True, null=True, unique=True, max_length=128) range_name = models.CharField(blank=True, null=True, max_length=128) range_name_ascii = models.CharField(blank=True, null=True, max_length=128) - 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, choices=MAP_UNIT_CHOICES) + 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, choices=MAP_UNIT_CHOICES) level = models.TextField(blank=True, null=True) level_text = models.TextField(blank=True, null=True) level_1 = models.TextField(blank=True, null=True) @@ -113,14 +120,16 @@ class MountainRange(models.Model): comments = models.TextField(blank=True, null=True) checked = models.BooleanField(default=False) source = models.TextField(blank=True, null=True) - range_alternate_id = models.CharField(blank=True, null=True, max_length=128) + range_alternate_id = models.CharField( + blank=True, null=True, max_length=128) geologic_region = models.TextField(blank=True, null=True) gmba_v2_id = models.PositiveIntegerField(blank=True, null=True) gmba_v2_id_str = models.TextField(blank=True, null=True) wiki_data_id = models.CharField(blank=True, null=True, max_length=25) wiki_data_url = models.URLField(blank=True, null=True) select_300 = models.BooleanField(default=False) - gmba_narrow = models.BooleanField(default=False, verbose_name="GMBA Standard") + gmba_narrow = models.BooleanField( + default=False, verbose_name="GMBA Standard") name_fr = models.CharField(blank=True, null=True, max_length=128) name_de = models.CharField(blank=True, null=True, max_length=128) name_es = models.CharField(blank=True, null=True, max_length=128) @@ -201,7 +210,8 @@ class Resource(models.Model): PEGASuS_Check_map_with_author = models.BooleanField(default=False) PEGASuS_polygon_ID = models.CharField(max_length=32, blank=True, null=True) PEGASuS_Polygon_comments = models.TextField(blank=True, null=True) - PEGASuS_Assessment_ID = models.CharField(max_length=32, blank=True, null=True) + PEGASuS_Assessment_ID = models.CharField( + max_length=32, blank=True, null=True) gloria = models.BooleanField(default=False) gnomo = models.BooleanField(default=False) lter = models.BooleanField(default=False) @@ -352,15 +362,20 @@ class GMBA_function(models.Model): class Organisation(models.Model): CATEGORY_CHOICES = ( ('Independent', 'Independent'), - ('Public administration > Research Institution', 'Public administration > Research Institution'), + ('Public administration > Research Institution', + 'Public administration > Research Institution'), ('Academia > University > Institute', 'Academia > University > Institute'), ('Academia > University', 'Academia > University'), - ('Public administration > Other Agency', 'Public administration > Other Agency'), + ('Public administration > Other Agency', + 'Public administration > Other Agency'), ('Private > NGO (not for profit)', 'Private > NGO (not for profit)'), ('Academia > Academy of Sciences', 'Academia > Academy of Sciences'), - ('Academia > Academy of Sciences > Institute', 'Academia > Academy of Sciences > Institute'), - ('Public administration > Government', 'Public administration > Government'), - ('Intergovernmental Agency > Research Institution', 'Intergovernmental Agency > Research Institution'), + ('Academia > Academy of Sciences > Institute', + 'Academia > Academy of Sciences > Institute'), + ('Public administration > Government', + 'Public administration > Government'), + ('Intergovernmental Agency > Research Institution', + 'Intergovernmental Agency > Research Institution'), ('Intergovernmental Agency', 'Intergovernmental Agency '), ('Private > Research Institution', 'Private > Research Institution'), ('Collection > Museum', 'Collection > Museum'), @@ -384,7 +399,8 @@ class Organisation(models.Model): ('Culture / arts', 'Culture / arts'), ('Geography', 'Geography'), ('Zoology', 'Zoology'), - ('Development / poverty / human rights', 'Development / poverty / human rights'), + ('Development / poverty / human rights', + 'Development / poverty / human rights'), ('Social Sciences', 'Social Sciences'), ('Earth Sciences', 'Earth Sciences'), ('Health', 'Health'), @@ -399,9 +415,12 @@ class Organisation(models.Model): org_num1 = models.AutoField(primary_key=True, verbose_name='ID') organisation_search = models.TextField(blank=True, null=True) org_alpha_search = models.TextField(blank=True, null=True) - organisation_english = models.CharField(max_length=256, blank=True, null=True, verbose_name='Organisation') - organisation_2 = models.CharField(max_length=256, blank=True, null=True, verbose_name='Department 1') - organisation_3 = models.CharField(max_length=256, blank=True, null=True, verbose_name='Department 2') + organisation_english = models.CharField( + max_length=256, blank=True, null=True, verbose_name='Organisation') + organisation_2 = models.CharField( + max_length=256, blank=True, null=True, verbose_name='Department 1') + organisation_3 = models.CharField( + max_length=256, blank=True, null=True, verbose_name='Department 2') organisation_original = models.TextField(blank=True, null=True) acronym = models.CharField(max_length=128, blank=True, null=True) street = models.CharField(max_length=256, blank=True, null=True) @@ -414,13 +433,16 @@ class Organisation(models.Model): url = models.URLField(blank=True, null=True) tel = models.CharField(max_length=128, blank=True, null=True) email = models.EmailField(blank=True, null=True) - country = models.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True, to_field='id') + 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, choices=CATEGORY_CHOICES) - subject = models.CharField(max_length=128, blank=True, null=True, choices=SUBJECT_CHOICES) + category = models.TextField( + blank=True, null=True, choices=CATEGORY_CHOICES) + subject = models.CharField( + max_length=128, blank=True, null=True, choices=SUBJECT_CHOICES) def __str__(self): if self.organisation_english: @@ -432,14 +454,12 @@ class Organisation(models.Model): name = f"{self.organisation_english}" name = f"{self.country} < {self.organisation_english} < {self.organisation_2} < {self.organisation_3} < {self.acronym}" - else: name = ' ---' return name - class RangeOnlineInfo(models.Model): id = models.AutoField(primary_key=True) # This is supposed to be linked to MountainRange via range_name_map, but the range_name_map @@ -456,8 +476,10 @@ class RangeOnlineInfo(models.Model): class RangeNameTranslation(models.Model): id = models.AutoField(primary_key=True) - range_name = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) - language_translation = models.ForeignKey(Language, models.DO_NOTHING, blank=True, null=True) + range_name = models.ForeignKey( + MountainRange, 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): @@ -510,8 +532,10 @@ class Keyword(models.Model): 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') + 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) @@ -534,8 +558,10 @@ class NamesImport(models.Model): 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(MountainRange, models.DO_NOTHING, blank=True, null=True) + resource_title = models.ForeignKey( + Resource, models.DO_NOTHING, blank=True, null=True) + range_name = models.ForeignKey( + MountainRange, models.DO_NOTHING, blank=True, null=True) def __str__(self): return '%s, %s' % (self.resource_title.title, self.range_name.name) @@ -543,7 +569,8 @@ class ResourceRange(models.Model): class LanguageLink(models.Model): id = models.AutoField(primary_key=True) - language_number_code = models.ForeignKey(Language, models.DO_NOTHING, blank=True, null=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): @@ -565,8 +592,10 @@ class Peak(models.Model): class Search(models.Model): id = models.AutoField(primary_key=True) - range_name = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) - repository = models.ForeignKey(Repository, models.DO_NOTHING, blank=True, null=True) + range_name = models.ForeignKey( + MountainRange, 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) @@ -589,12 +618,12 @@ class Person(models.Model): ('''Involved scientist Steering committee''', '''Involved scientist Steering committee'''), - ('Network', 'Network'), + ('Network', 'Network'), ('Newsletter only', 'Newsletter only'), ('''Steering committee Involved scientist''', '''Steering committee Involved scientist''') - ) + ) id = models.AutoField(primary_key=True) source_id = models.IntegerField(blank=True, null=True) title = models.CharField(blank=True, null=True, max_length=255) @@ -605,7 +634,9 @@ Involved scientist''') contact_email = models.EmailField(blank=True, null=True) # email_1 personal_url = models.URLField(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 '_'. + # Field renamed because it started with '_'. + field_indexer = models.TextField( + db_column='_indexer', blank=True, null=True) mr_mrs = models.TextField(blank=True, null=True, choices=MR_MRS_CHOICES) full_name = models.CharField(blank=True, null=True, max_length=100) @@ -616,12 +647,16 @@ Involved scientist''') mobile_number = models.CharField(blank=True, null=True, max_length=50) url = models.URLField(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') + 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, choices=GMBA_FUNCTION_CHOICES) + gmba_function = models.TextField( + blank=True, null=True, choices=GMBA_FUNCTION_CHOICES) news_letter = models.BooleanField(default=False) - country = models.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True, to_field='id') - organization = models.ForeignKey(Organisation, models.DO_NOTHING, blank=True, null=True) + country = models.ForeignKey( + Country, models.DO_NOTHING, blank=True, null=True, to_field='id') + organization = models.ForeignKey( + Organisation, models.DO_NOTHING, blank=True, null=True) birds = models.BooleanField(default=False) mammals = models.BooleanField(default=False) reptiles = models.BooleanField(default=False) @@ -646,7 +681,8 @@ Involved scientist''') 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)" + # "Qualitative social science methods (interviews, surveys)" + qualitative_ssm = models.BooleanField(default=False) genetic_analyses = models.BooleanField(default=False) field_site = models.BooleanField(default=False) transect = models.BooleanField(default=False) @@ -679,7 +715,7 @@ Involved scientist''') self.position if self and self.position else "", self.biography if self and self.biography else "" ] if self else "") - self.save() + # self.save() return True else: return False @@ -704,11 +740,16 @@ Involved scientist''') 'biography': self.biography or '', } + def save(self, *args, **kwargs): + self.index() + super(Person, self).save(*args, **kwargs) + class TaxaPeople(models.Model): id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - taxon = models.ForeignKey('Taxon', models.DO_NOTHING, blank=True, null=True) + taxon = models.ForeignKey( + 'Taxon', models.DO_NOTHING, blank=True, null=True) class Meta: db_table = 'taxa_people' @@ -720,7 +761,8 @@ class TaxaPeople(models.Model): class RangesPeople(models.Model): id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - range = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) + range = models.ForeignKey( + MountainRange, models.DO_NOTHING, blank=True, null=True) class Meta: db_table = 'ranges_people' @@ -732,7 +774,8 @@ class RangesPeople(models.Model): class ResourcesPeople(models.Model): id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - resource = models.ForeignKey(Resource, models.CASCADE, blank=True, null=True) + resource = models.ForeignKey( + Resource, models.CASCADE, blank=True, null=True) class Meta: db_table = 'resources_people' @@ -743,7 +786,8 @@ class ResourcesPeople(models.Model): class ScalesPeople(models.Model): id = models.AutoField(primary_key=True) - person = models.ForeignKey(Person, models.DO_NOTHING, blank=True, null=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: @@ -767,7 +811,8 @@ class Species(models.Model): class PeopleFunction(models.Model): id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - function = models.ForeignKey(GMBA_function, 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 @@ -775,8 +820,10 @@ class PeopleFunction(models.Model): 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(MountainRange, models.DO_NOTHING, blank=True, null=True) + scientific_name = models.ForeignKey( + Species, models.DO_NOTHING, blank=True, null=True) + range = models.ForeignKey( + MountainRange, models.DO_NOTHING, blank=True, null=True) endemic = models.TextField(blank=True, null=True) source_url = models.TextField(blank=True, null=True) @@ -787,7 +834,8 @@ class SpeciesRange(models.Model): class PeopleRange(models.Model): id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - range = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) + range = models.ForeignKey( + MountainRange, models.DO_NOTHING, blank=True, null=True) def __str__(self): return str(self.id) @@ -795,7 +843,8 @@ class PeopleRange(models.Model): class TaxonRange(models.Model): id = models.AutoField(primary_key=True) - range = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) + range = models.ForeignKey( + MountainRange, 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) @@ -826,7 +875,8 @@ class PeopleResource(models.Model): ) id = models.AutoField(primary_key=True) person = models.ForeignKey(Person, models.CASCADE, blank=True, null=True) - resource = models.ForeignKey(Resource, 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, choices=ROLES_CHOICES) def __str__(self): @@ -835,8 +885,10 @@ class PeopleResource(models.Model): class RangeCountry(models.Model): id = models.AutoField(primary_key=True) - range = models.ForeignKey(MountainRange, models.DO_NOTHING, blank=True, null=True) - country = models.ForeignKey(Country, models.DO_NOTHING, blank=True, null=True) + range = models.ForeignKey( + MountainRange, 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')