research package

Module contents

A reusable Django app to manage research information.

Submodules

research.admin module

class research.admin.CollaboratorsInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
email(instance) → str
extra = 0
fields = ('user_id', 'title', 'first_name', 'last_name', 'username', 'email')
first_name(instance) → str
has_add_permission(request, instance)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

last_name(instance) → str
media
model

alias of research.models.study.Study_collaborators

readonly_fields = ('user_id', 'title', 'first_name', 'last_name', 'username', 'email')
title(instance) → str
username(instance) → str
verbose_name_plural = 'Collaborators'
class research.admin.DecadeBornListFilter(request, params, model, model_admin)

Bases: django.contrib.admin.filters.SimpleListFilter

DECADES = ('40s', '50s', '60s', '70s', '80s', '90s', '00s')
lookups(request, model_admin)

Returns a list of tuples. The first element in each tuple is the coded value for the option that will appear in the URL query. The second element is the human-readable name for the option that will appear in the right sidebar.

parameter_name = 'decade'
queryset(request, queryset)

Returns the filtered queryset based on the value provided in the query string and retrievable via self.value().

title = 'decade born'
class research.admin.GroupAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

inlines = (<class 'research.admin.ScanInline'>,)
list_display = ('id', 'study_', 'title', 'description', 'mri_scan_count')
list_filter = ('title', ('study__title', <class 'research.admin.custom_titled_filter.<locals>.Wrapper'>))
media
mri_scan_count(instance: research.models.group.Group) → int
readonly_fields = ('study_', 'mri_scan_count')
search_fields = ('study__title', 'title', 'description')
study_(instance: research.models.group.Group) → str
class research.admin.MeasurementDefinitionAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('id', 'title', 'description', 'content_type', 'n_collected')
media
n_collected(instance: research.models.measurement_definition.MeasurementDefinition) → int
class research.admin.ProcedureAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

inlines = (<class 'research.admin.StudyInline'>, <class 'research.admin.ProcedureStepInline'>)
list_display = ('id', 'title', 'description', 'step_count')
media
step_count(instance: research.models.procedure.Procedure) → int
class research.admin.ProcedureInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
can_delete = False
description(instance) → str
extra = 0
fields = ('id_link', 'title', 'description')
has_add_permission(request, instance)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

media
model

alias of research.models.study.Study_procedures

readonly_fields = ('id_link', 'title', 'description')
title(instance) → str
verbose_name_plural = 'Procedures'
class research.admin.ProcedureStepInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
can_delete = False
event_description(instance: research.models.procedure_step.ProcedureStep) → str
event_title(instance: research.models.procedure_step.ProcedureStep) → str
event_type(instance: research.models.procedure_step.ProcedureStep) → str
extra = 0
fields = ('index_link', 'event_type', 'event_title', 'event_description')
has_add_permission(request, instance: research.models.procedure_step.ProcedureStep)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

media
model

alias of research.models.procedure_step.ProcedureStep

readonly_fields = ('index_link', 'event_type', 'event_title', 'event_description')
verbose_name_plural = 'Steps'
class research.admin.ScanInline(parent_model, admin_site)

Bases: django_admin_inline_paginator.admin.TabularInlinePaginated

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
comments(instance) → str
description(instance) → str
download(instance) → str
echo_time(instance) → float
extra = 0
fields = ('id_link', 'subject', 'session', 'number', 'time', 'description', 'echo_time', 'inversion_time', 'repetition_time', 'spatial_resolution', 'comments', 'download')
has_add_permission(request, instance)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

inversion_time(instance) → float
media
model

alias of django_mri.models.scan.Scan_study_groups

number(instance) → int
readonly_fields = ('id_link', 'subject', 'session', 'number', 'time', 'description', 'echo_time', 'inversion_time', 'repetition_time', 'spatial_resolution', 'comments', 'download')
repetition_time(instance) → float
session(instance) → str
spatial_resolution(instance) → str

Returns a nicely formatted representation of the scan’s spatial resolution.

Parameters:instance (django_mri.Scan_study_groups) – Scan_study_groups instance
Returns:Formatted spatial resolution representation
Return type:str
subject(instance) → str
time(instance) → datetime.datetime
verbose_name_plural = 'Scans'
class research.admin.SessionInLine(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
can_delete = False
download(instance: django_mri.models.session.Session) → str
extra = 0
fields = ('id_link', 'time', 'measurement', 'scan_count', 'comments', 'download')
has_add_permission(request, instance: django_mri.models.session.Session)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

media
model

alias of django_mri.models.session.Session

readonly_fields = ('id_link', 'time', 'scan_count', 'download')
scan_count(instance: django_mri.models.session.Session) → int
verbose_name_plural = 'MRI Sessions'
class research.admin.StudyAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

exclude = ('subjects', 'collaborators', 'procedures')
fields = ('title', 'description', 'image', 'participant_list')
inlines = (<class 'research.admin.CollaboratorsInline'>, <class 'research.admin.ProcedureInline'>)
list_display = ('title', 'description', 'created')
media
participant_list(instance: research.models.study.Study) → str
readonly_fields = ('participant_list',)
class research.admin.StudyAssociationFilter(request, params, model, model_admin)

Bases: django.contrib.admin.filters.SimpleListFilter

lookups(request, model_admin)

Must be overridden to return a list of tuples (value, verbose value)

parameter_name = 'study participation'
queryset(request, queryset)

Return the filtered queryset.

title = 'study participation'
class research.admin.StudyInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

class Media

Bases: object

css = {'all': ('research/css/hide_admin_original.css',)}
can_delete = False
description(instance) → str
extra = 0
fields = ('id_link', 'title', 'description')
has_add_permission(request, instance: research.models.procedure_step.ProcedureStep)

Return True if the given request has permission to add an object. Can be overridden by the user in subclasses.

media
model

alias of research.models.study.Study_procedures

readonly_fields = ('id_link', 'title', 'description')
title(instance) → str
verbose_name_plural = 'Studies'
class research.admin.SubjectAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

actions = ('export_csv',)
changelist_view(request, extra_context=None)

The ‘change list’ admin view for this model.

export_csv(request, queryset)
inlines = (<class 'research.admin.SessionInLine'>,)
list_display = ('id', 'id_number', 'first_name', 'last_name', 'sex', 'date_of_birth', 'dominant_hand', 'n_mri_sessions')
list_filter = ('sex', 'dominant_hand', <class 'research.admin.DecadeBornListFilter'>, <class 'research.admin.StudyAssociationFilter'>)
media
n_mri_sessions(instance: research.models.subject.Subject) → int
readonly_fields = ('n_mri_sessions',)
search_fields = ('id', 'id_number', 'first_name', 'last_name', 'date_of_birth__year')
class research.admin.SubjectsInline(parent_model, admin_site)

Bases: django.contrib.admin.options.TabularInline

date_of_birth(instance)
extra = 0
first_name(instance)
id_number(instance)
last_name(instance)
media
model

alias of research.models.study.Study_subjects

readonly_fields = ('id_number', 'first_name', 'last_name', 'sex', 'date_of_birth')
sex(instance)
verbose_name_plural = 'Subjects'
class research.admin.TaskAdmin(model, admin_site)

Bases: django.contrib.admin.options.ModelAdmin

list_display = ('id', 'title', 'description')
media
research.admin.custom_titled_filter(title: str)

Copied from SO: https://stackoverflow.com/a/21223908/4416932

research.apps module

class research.apps.ResearchConfig(app_name, app_module)

Bases: django.apps.config.AppConfig

name = 'research'
ready()

Loads the app’s signals.

References

research.urls module

research.urls.path(route, view, kwargs=None, name=None, *, Pattern=<class 'django.urls.resolvers.RoutePattern'>)