Passed
Pull Request — devel (#90)
by Paolo
07:13
created

OrphanSubmissionAdmin.short_message()   A

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 2
rs 10
c 0
b 0
f 0
cc 1
nop 2
1
# -*- coding: utf-8 -*-
2
"""
3
Created on Fri Jul  6 11:39:15 2018
4
5
@author: Paolo Cozzi <[email protected]>
6
"""
7
8
from django.contrib import admin
9
from django.template.defaultfilters import truncatechars
10
11
from .models import (
12
    Account, ManagedTeam, Submission, SubmissionData, OrphanSample,
13
    OrphanSubmission)
14
15
16
class SubmissionAdmin(admin.ModelAdmin):
17
    list_display = (
18
        'id', 'submission_id', 'submission_title', 'usi_submission_name',
19
        'created_at', 'updated_at', 'status', 'samples_count',
20
        'samples_status', 'short_message',
21
    )
22
23
    list_select_related = ('uid_submission',)
24
25
    def short_message(self, obj):
26
        return truncatechars(obj.message, 40)
27
28
    # rename column in admin
29
    short_message.short_description = "Message"
30
31
    def submission_id(self, obj):
32
        return obj.uid_submission.id
33
34
    def submission_title(self, obj):
35
        return obj.uid_submission.title
36
37
    list_filter = ('uid_submission__owner', 'status')
38
39
    list_per_page = 15
40
41
    # I cannot edit a auto_add_now field
42
    readonly_fields = ('uid_submission', 'created_at', 'updated_at')
43
44
    fields = (
45
        'uid_submission', 'usi_submission_name', 'created_at', 'updated_at',
46
        'message', 'status', 'samples_count', 'samples_status'
47
    )
48
49
50
class SubmissionDataAdmin(admin.ModelAdmin):
51
    list_display = (
52
        'id', 'short_submission', 'submission_id', 'submission_title',
53
        'status', 'content_type', 'object_id'
54
    )
55
56
    def short_submission(self, obj):
57
        return obj.submission.usi_submission_name
58
59
    # rename column in admin
60
    short_submission.short_description = "USI Submission"
61
62
    def status(self, obj):
63
        return obj.submission.get_status_display()
64
65
    def submission_id(self, obj):
66
        return obj.submission.uid_submission.id
67
68
    def submission_title(self, obj):
69
        return obj.submission.uid_submission.title
70
71
    list_filter = (
72
        'submission__uid_submission__owner',
73
        'submission__status')
74
75
    list_per_page = 15
76
77
    # Fields I don't want to edit
78
    readonly_fields = ('submission',)
79
80
    fields = (
81
        'submission', 'content_type',
82
        'object_id'
83
    )
84
85
86
class AccountAdmin(admin.ModelAdmin):
87
    list_display = (
88
        'user', 'name', 'team'
89
    )
90
91
    list_per_page = 15
92
93
94
class OrphanSubmissionAdmin(admin.ModelAdmin):
95
    list_display = (
96
        'usi_submission_name', 'created_at', 'updated_at',
97
        'status', 'samples_count', 'samples_status', 'short_message',
98
    )
99
100
    def short_message(self, obj):
101
        return truncatechars(obj.message, 40)
102
103
    # rename column in admin
104
    short_message.short_description = "Message"
105
106
    list_filter = ('status',)
107
108
    list_per_page = 15
109
110
    # I cannot edit a auto_add_now field
111
    readonly_fields = ('created_at', 'updated_at')
112
113
    fields = (
114
        'usi_submission_name', 'created_at', 'updated_at',
115
        'message', 'status', 'samples_count', 'samples_status'
116
    )
117
118
119
class OrphanSampleAdmin(admin.ModelAdmin):
120
    list_display = (
121
        'biosample_id', 'found_at', 'ignore', 'name', 'team', 'status',
122
        'short_submission', 'removed', 'removed_at'
123
    )
124
125
    list_select_related = ('submission', 'team')
126
127
    def short_submission(self, obj):
128
        if obj.submission:
129
            return obj.submission.usi_submission_name
130
        else:
131
            return None
132
133
    # rename column in admin
134
    short_submission.short_description = "USI Submission"
135
136
    # I cannot edit a auto_add_now field
137
    readonly_fields = ('found_at', 'removed_at')
138
139
    list_filter = ('ignore', 'status', 'removed')
140
141
    list_per_page = 15
142
143
144
# --- registering applications
145
146
147
# Register your models here.
148
admin.site.register(Account, AccountAdmin)
149
admin.site.register(ManagedTeam)
150
admin.site.register(Submission, SubmissionAdmin)
151
admin.site.register(SubmissionData, SubmissionDataAdmin)
152
admin.site.register(OrphanSubmission, OrphanSubmissionAdmin)
153
admin.site.register(OrphanSample, OrphanSampleAdmin)
154