be4311c07e14feb728abc6425ee606ffaa611a58 markd Fri Jan 22 06:46:58 2021 -0800 merge with master diff --git src/hca/hcat/mysite/hcat/admin.py src/hca/hcat/mysite/hcat/admin.py index c3c1f6d..4bbc248 100644 --- src/hca/hcat/mysite/hcat/admin.py +++ src/hca/hcat/mysite/hcat/admin.py @@ -38,100 +38,113 @@ admin.site.register(Wrangler, WranglerAdmin) class LabAdmin(admin.ModelAdmin): autocomplete_fields = ['contributors', 'pi', 'grants', 'projects'] search_fields = ['short_name', 'institution', ] list_display = ['short_name', 'pi', 'institution',] admin.site.register(Lab, LabAdmin) class ProjectStatusAdmin(admin.ModelAdmin): list_display = ['status', 'description'] admin.site.register(ProjectStatus, ProjectStatusAdmin) +class TagAdmin(admin.ModelAdmin): + search_fields = ['tag', 'description'] + list_display = ['tag', 'description'] + autocomplete_fields = ['projects'] + +admin.site.register(Tag, TagAdmin) + class WranglingStatusAdmin(admin.ModelAdmin): list_display = ['status', 'description'] admin.site.register(WranglingStatus, WranglingStatusAdmin) -class EffortTypeAdmin(admin.ModelAdmin): +class ProjectSourceTypeAdmin(admin.ModelAdmin): list_display = ['short_name', 'description'] -admin.site.register(EffortType, EffortTypeAdmin) +admin.site.register(ProjectSourceType, ProjectSourceTypeAdmin) class TrackerAdmin(admin.ModelAdmin): readonly_fields = ['project','uuid','submission_id', 'submission_bundles_exported_count', 'aws_primary_bundle_count', 'gcp_primary_bundle_count', 'aws_analysis_bundle_count', 'gcp_analysis_bundle_count', 'azul_analysis_bundle_count', 'succeeded_workflows', 'matrix_bundle_count', 'matrix_cell_count'] list_display = ['project', 'submission_bundles_exported_count', 'aws_primary_bundle_count', 'gcp_primary_bundle_count', 'aws_analysis_bundle_count', 'gcp_analysis_bundle_count', 'azul_analysis_bundle_count', 'succeeded_workflows', 'matrix_bundle_count', 'matrix_cell_count'] admin.site.register(Tracker, TrackerAdmin) class TrackerInline(admin.TabularInline): model = Tracker verbose_name_plural = 'Post-submission tracking - bundles and cells' fields = ['submission_bundles_exported_count', 'aws_primary_bundle_count', 'aws_analysis_bundle_count', 'azul_analysis_bundle_count', 'succeeded_workflows', 'matrix_bundle_count', 'matrix_cell_count'] readonly_fields = ['submission_bundles_exported_count', 'aws_primary_bundle_count', 'aws_analysis_bundle_count', 'azul_analysis_bundle_count', 'succeeded_workflows', 'matrix_bundle_count', 'matrix_cell_count'] can_delete = False class ProjectAdmin(admin.ModelAdmin): - search_fields = ['short_name', 'title'] + search_fields = ['short_name', 'title', 'description'] autocomplete_fields = ["contributors", "labs", - "organ", "organ_part", "disease", "files", - "species", "sample_type", "assay_tech", "publications", - "grants", "files", "urls", "contacts", ] + "organ", "organ_part", "disease", + "species", "sample_type", "cdna_library_prep", "publications", + "grants", "urls", "contacts", "tags", "preservation_method"] list_display = ['short_name', 'stars', 'status', 'primary_wrangler', 'submit_date',] - list_filter = ['species', 'effort', 'primary_wrangler', 'status', 'assay_tech'] + list_filter = ['species', 'organ', 'disease', 'project_source', 'primary_wrangler', 'status', 'cdna_library_prep', 'tags'] inlines = [TrackerInline,] fieldsets = ( - ('overall', { 'fields': (('short_name', 'status', ), ('title', 'stars'), ('labs', 'consent'), ('git_ticket_url'))}), - ('biosample', { 'fields': (('species', 'sample_type'), ('organ', 'organ_part'), 'disease')}), - ('assay', { 'fields': (('assay_tech', 'cells_expected'))}), - ('pubs, people, and pay', { 'fields': ('description', 'publications', 'contributors', 'grants')}), - ('wrangling', { 'fields': ( + ('Overall', { 'fields': (('short_name', 'status'), ('title'), ('labs', 'consent'), ('tags', 'stars'))}), + ('Biosample', { 'fields': (('species', 'disease'), ('organ', 'organ_part'), ('sample_type', 'preservation_method'))}), + ('Assay', { 'fields': ('cdna_library_prep', 'cells_expected')}), + ('Pubs, people, and pay', { 'fields': ('description', 'publications', 'contributors', 'grants')}), + ('Wrangling', { 'fields': ( ('primary_wrangler', 'secondary_wrangler'), ('wrangling_status', 'comments'), - ('effort', 'origin_name',), - ('contacts', 'files'), - ('first_contact_date', 'last_contact_date'), + ('project_source', 'origin_name',), + ('contacts', 'first_contact_date', 'last_contact_date'), + ('git_ticket_url'), + ('wrangler_drive'), + ('staging_area', ), + ('shared_google_sheet'), )}), - ('submission steps', { 'fields': ( + ('Submission steps', { 'fields': ( ('questionnaire_date', 'questionnaire_comments'), ('tAndC_date', 'tAndC_comments'), ('sheet_template_date', 'sheet_template', ), - ('shared_google_sheet'), ('sheet_from_lab_date', 'sheet_from_lab', ), ('back_to_lab_date', 'back_to_lab', ), ('lab_review_date', 'lab_review_comments', ), - ('sheet_validated_date', 'sheet_that_validated', ), - ('staging_area_date', 'staging_area', ), - ('submit_date', 'submit_comments', ), + ('submit_date', 'sheet_submitted', ), )}), ) + def get_form(self, request, obj=None, **kwargs): + form = super(ProjectAdmin, self).get_form(request, obj, **kwargs) + form.base_fields['title'].widget.attrs['style'] = 'width: 60em;' + form.base_fields['staging_area'].widget.attrs['style'] = 'width: 50em;' + return form + admin.site.register(Project, ProjectAdmin) class GrantAdmin(admin.ModelAdmin): autocomplete_fields = ["funded_contributors", "funded_projects", "funded_labs", ] search_fields = ['grant_id','grant_title'] list_display = ['grant_id', 'funder', 'grant_title',] list_filter = ['funder'] admin.site.register(Grant, GrantAdmin) class FunderAdmin(admin.ModelAdmin): list_display = ['short_name', 'description',] admin.site.register(Funder, FunderAdmin) @@ -164,36 +177,42 @@ class OrganPartAdmin(admin.ModelAdmin): search_fields = ["short_name", "description"] list_display = ["short_name", "description"] autocomplete_fields = ['projects'] admin.site.register(OrganPart, OrganPartAdmin) class SampleTypeAdmin(admin.ModelAdmin): search_fields = ["short_name", "description"] list_display = ["short_name", "description"] admin.site.register(SampleType, SampleTypeAdmin) -class AssayTechAdmin(admin.ModelAdmin): +class PreservationMethodAdmin(admin.ModelAdmin): + search_fields = ["short_name", "description"] + list_display = ["short_name", "description"] + +admin.site.register(PreservationMethod, PreservationMethodAdmin) + +class CdnaLibraryPrepAdmin(admin.ModelAdmin): search_fields = ["short_name", "description"] list_display = ["short_name", "description"] autocomplete_fields = ['projects'] -admin.site.register(AssayTech, AssayTechAdmin) +admin.site.register(CdnaLibraryPrep, CdnaLibraryPrepAdmin) class PublicationAdmin(admin.ModelAdmin): search_fields = ["short_name", "title"] list_display = ["short_name", "title"] admin.site.register(Publication, PublicationAdmin) class UrlAdmin(admin.ModelAdmin): search_fields = ["short_name", "path"] list_display = ["short_name", "path"] admin.site.register(Url, UrlAdmin) class FileAdmin(admin.ModelAdmin): search_fields = ["short_name", "file"]