3a16297829778f22d084827214ed1b6b650e866c
kent
  Thu Sep 5 16:31:51 2019 -0700
Making comments just text fields.  Making wranglers, curators, and software developers as separate tables with a link to plain old contributors.  A bunch of more minor changes that were easy to implement described in the 0.5 section of version.txt.

diff --git src/hca/hcat/mysite/hcat/admin.py src/hca/hcat/mysite/hcat/admin.py
index 110825e..68b7aec 100644
--- src/hca/hcat/mysite/hcat/admin.py
+++ src/hca/hcat/mysite/hcat/admin.py
@@ -1,188 +1,185 @@
 
 # Register your models here.
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
 from django.contrib import admin
 from .models import *
 
+class ContributorTypeAdmin(admin.ModelAdmin):
+    search_fields = ["short_name", "description"]
+    list_display = ["short_name", "description"]
+
+admin.site.register(ContributorType, ContributorTypeAdmin)
+
 class ContributorAdmin(admin.ModelAdmin):
-    list_filter = ['project_role']
-    autocomplete_fields = ['comments', 'projects', 'labs', 'grants']
-    search_fields = ['name', 'project_role', 'email',]
-    list_display = ['name', 'project_role', 'email', ]
+    list_filter = ['type']
+    autocomplete_fields = ['projects', 'labs', 'grants', 'type']
+    search_fields = ['name', 'type', 'email','city']
+    search_fields = ['name', 'email']
+    list_display = ['name', 'type', 'email','city']
+    list_display = ['name', 'email', 'type', 'city']
 
 admin.site.register(Contributor, ContributorAdmin)
 
+class SoftwareDeveloperAdmin(admin.ModelAdmin):
+    autocomplete_fields = ['who']
+    list_display = ['who', 'favorite_languages']
+
+admin.site.register(SoftwareDeveloper, SoftwareDeveloperAdmin)
+
+class CuratorAdmin(admin.ModelAdmin):
+    autocomplete_fields = ['who']
+    list_display = ['who', 'advisor', 'interests']
+
+admin.site.register(Curator, CuratorAdmin)
+
+class WranglerAdmin(admin.ModelAdmin):
+    autocomplete_fields = ['who']
+    list_display = ['who', 'favorite_site']
+
+admin.site.register(Wrangler, WranglerAdmin)
 
 class LabAdmin(admin.ModelAdmin):
-    autocomplete_fields = ['contributors', 'pi', 'contact', 'grants', 'projects', 'comments']
-    search_fields = ['short_name', 'pi', 'contact']
-    list_display = ['short_name', 'institution',]
+    autocomplete_fields = ['contributors', 'pi', 'grants', 'projects']
+    search_fields = ['short_name', 'pi', ]
+    list_display = ['short_name', 'pi', 'institution',]
 
 admin.site.register(Lab, LabAdmin)
 
 class ProjectStateAdmin(admin.ModelAdmin):
     list_display = ['state', 'description']
-    autocomplete_fields = ['comments']
     
 admin.site.register(ProjectState, ProjectStateAdmin)
 
 class EffortTypeAdmin(admin.ModelAdmin):
     list_display = ['short_name', 'description']
-    autocomplete_fields = ['comments']
     
 admin.site.register(EffortType, EffortTypeAdmin)
 
 class ProjectAdmin(admin.ModelAdmin):
     search_fields = ['short_name', 'title', 'contributors', 'labs', 'organ_part', 
-    #'organ', 
     'disease', 'species', 'grants']
     autocomplete_fields = ["contributors", "labs", 
     	"organ", "organ_part", "disease", "files",
-    	"species", "sample_type", "assay_type", "assay_tech", "publications", "comments", 
-	"grants", "files", "urls", "contacts", "responders", "submit_comments"]
+    	"species", "sample_type", "assay_type", "assay_tech", "publications", 
+	"grants", "files", "urls", "contacts", "responders"]
     list_display = ['short_name', 'stars', 'state_reached', 'wrangler1', 'title',]
-    list_filter = ['species', 'effort', 'state_reached', 'assay_tech']
+    list_filter = ['species', 'effort', 'wrangler1', 'state_reached', 'assay_tech']
     fieldsets = (
-        ('overall', { 'fields': (('short_name', 'state_reached', ), ('title', 'stars'), ('labs', 'consent'))}), 
+        ('overall', { 'fields': (('short_name', 'state_reached', ), ('title', 'stars'), ('labs', 'consent'), ('chat_url'))}), 
 	('wrangling',  { 'fields': (
 		('wrangler1', 'wrangler2'), 
 		('cur_state', 'comments'),
 		('effort', 'origin_name',),
 		('contacts', 'files'),
 		('first_contact_date', 'last_contact_date'),
 		'responders',
 		('first_response_date', 'last_response_date'),
 		)}),
 	('submission steps',  { 'fields': (
-		('questionnaire', 'questionnaire_date'),
+		('questionnaire_comments', 'questionnaire_date'),
 		('tAndC', 'tAndC_date'),
 		('sheet_template', 'sheet_template_date'),
 		('sheet_from_lab', 'sheet_from_lab_date'),
+		('curator_assigned', 'curator_assigned_date'),
 		('sheet_curated', 'sheet_curated_date'),
+                ('review_comments', 'review_accepted_date'),
 		('sheet_validated', 'sheet_validated_date'),
 		('staging_area', 'staging_area_date'),
 		('submit_comments', 'submit_date'),
 		)}),
 	('post-submit',  { 'fields': (
 		('cloud_date', 'pipeline_date', 'orange_date'),
 		)}),
         ('biosample',  { 'fields': (('species', 'sample_type'), ('organ', 'organ_part'), 'disease')}),
         ('assay', { 'fields': ('assay_type', 'assay_tech', 'cells_expected')}),
 	('pubs, people, and pay', { 'fields': ('description', 'publications', 'contributors', 'grants')}),
     )
-    def formfield_for_foreignkey(self, db_field, request, **kwargs):
-       if db_field.name == "wrangler1" or db_field.name == "wrangler2":
-           kwargs["queryset"] = Contributor.objects.filter(project_role="wrangler")
-       return super().formfield_for_foreignkey(db_field, request, **kwargs)
 
 admin.site.register(Project, ProjectAdmin)
 
 class GrantAdmin(admin.ModelAdmin):
-    autocomplete_fields = ["funded_contributors", "funded_projects", "funded_labs", "comments"]
+    autocomplete_fields = ["funded_contributors", "funded_projects", "funded_labs", ]
     search_fields = ["funded_contributors", "funded_projects", "funded_labs"]
     list_display = ['grant_id', 'funder', 'grant_title',]
     list_filter = ['funder']
 
 admin.site.register(Grant, GrantAdmin)
 
 class FunderAdmin(admin.ModelAdmin):
     list_display = ['short_name', 'description',]
-    autocomplete_fields = ['comments']
 
 admin.site.register(Funder, FunderAdmin)
 
 
 class SpeciesAdmin(admin.ModelAdmin):
     search_fields = ["common_name", "scientific_name", "ncbi_taxon"]
     list_display = ['common_name', 'scientific_name', 'ncbi_taxon',]
 
 admin.site.register(Species, SpeciesAdmin)
 
 class ConsentAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments']
 
 admin.site.register(Consent, ConsentAdmin)
 
 class DiseaseAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments', 'projects']
+    autocomplete_fields = ['projects']
 
 admin.site.register(Disease, DiseaseAdmin)
 
 class OrganAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    #autocomplete_fields = ['comments', 'projects']
-    autocomplete_fields = ['comments', ]
 
 admin.site.register(Organ, OrganAdmin)
 
 class OrganPartAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments', 'projects']
+    autocomplete_fields = ['projects']
 
 
 admin.site.register(OrganPart, OrganPartAdmin)
 
 class SampleTypeAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments']
 
 admin.site.register(SampleType, SampleTypeAdmin)
 
 class AssayTechAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments', 'projects']
+    autocomplete_fields = ['projects']
 
 admin.site.register(AssayTech, AssayTechAdmin)
 
 class AssayTypeAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "description"]
     list_display = ["short_name", "description"]
-    autocomplete_fields = ['comments', 'projects']
+    autocomplete_fields = ['projects']
 
 admin.site.register(AssayType, AssayTypeAdmin)
 
 class PublicationAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "title"]
     list_display = ["short_name", "title"]
-    autocomplete_fields = ['comments']
 
 admin.site.register(Publication, PublicationAdmin)
 
-class CommentTypeAdmin(admin.ModelAdmin):
-    search_fields = ["short_name", "description"]
-    list_display = ["short_name", "description"]
-    short_description = "emotion"
-
-admin.site.register(CommentType, CommentTypeAdmin)
-
-class CommentAdmin(admin.ModelAdmin):
-    search_fields = ["type", "text"]
-    list_display = ["type", "text"]
-    autocomplete_fields = ['projects', 'labs', 'contributors', 'grants', 'consents', 'organs', 'organ_parts', 'urls', 'files']
-    list_filter = ['type']
-
-admin.site.register(Comment, CommentAdmin)
-
 class UrlAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "path"]
     list_display = ["short_name", "path"]
-    autocomplete_fields = ['comments']
 
 admin.site.register(Url, UrlAdmin)
 
 class FileAdmin(admin.ModelAdmin):
     search_fields = ["short_name", "file"]
     list_display = ["short_name", "file"]
-    autocomplete_fields = ['comments']
 
 admin.site.register(File, FileAdmin)