recordtransfer.admin - Manage record transfer models in admin site
Custom administration code for the admin site.
- recordtransfer.admin.linkify(field_name: str) Callable
Convert a foreign key value into clickable links.
If field_name is ‘parent’, link text will be str(obj.parent) Link will be admin url for the admin url for obj.parent.id:change
- recordtransfer.admin.job_file_delete(sender: Job, instance: Job, **kwargs) None
FileFields are not deleted automatically after Django 1.11, instead this receiver does it.
- class recordtransfer.admin.ReadOnlyAdmin(model, admin_site)
Bases:
ModelAdminA model admin that does not allow any editing/changing/ or deletions.
- Permissions:
add: Not allowed
change: Not allowed
delete: Not allowed
- readonly_fields: Sequence[str | Callable] = []
- get_readonly_fields(request: HttpRequest, obj: object = None) tuple
Return all fields as read-only for this model admin.
- has_add_permission(request: HttpRequest) bool
Determine whether add permission is granted for this model admin.
- has_change_permission(request: HttpRequest, obj: object = None) bool
Determine whether change permission is granted for this model admin.
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this model admin.
- property media
- class recordtransfer.admin.ReadOnlyInline(parent_model, admin_site)
Bases:
TabularInlineInline admin that does not allow any editing/changing/ or deletions.
- Permissions:
add: Not allowed
change: Not allowed
delete: Not allowed
- max_num = 0
- show_change_link = True
- has_add_permission(request: HttpRequest, obj: object = None) bool
Determine whether add permission is granted for this model admin.
- has_change_permission(request: HttpRequest, obj: object = None) bool
Determine whether change permission is granted for this model admin.
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this model admin.
- property media
- class recordtransfer.admin.SubmissionInline(parent_model, admin_site)
Bases:
ReadOnlyInlineInline admin for the Submission model.
- Permissions:
add: Not allowed
change: Not allowed - go to Submission page for change ability
delete: Only by superusers
- model
alias of
Submission
- fields: Sequence[str | Sequence[str]] = ['uuid', 'metadata']
- ordering: Sequence[str] | None = ['-submission_date']
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this inline admin. Returns True if the object exists and the requesting user is a superuser, otherwise False.
- property media
- class recordtransfer.admin.SubmissionGroupAdmin(model, admin_site)
Bases:
ReadOnlyAdminAdmin for the SubmissionGroup model. Submissions can be viewed in-line.
- Permissions:
add: Not allowed
change: Not allowed
delete: Only by superusers
- list_display: Sequence[str | Callable] = ['name', <function linkify.<locals>._linkify>, 'number_of_submissions_in_group']
- inlines: Sequence[type[InlineModelAdmin]] = [<class 'recordtransfer.admin.SubmissionInline'>]
- search_fields: Sequence[str] = ['name', 'uuid']
- ordering: Sequence[str] | None = ['-created_by']
- actions: Sequence[Callable[[Any, HttpRequest, QuerySet], HttpResponse | None] | str] | None = ['export_caais_csv', 'export_atom_2_6_csv', 'export_atom_2_3_csv', 'export_atom_2_2_csv', 'export_atom_2_1_csv']
- view_on_site = False
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this model admin. Returns True if the object exists and the requesting user is a superuser, otherwise False.
- export_caais_csv(request: HttpRequest, queryset: QuerySet) HttpResponse | None
Export CAAIS 1.0 CSV for submissions in the selected queryset.
- export_atom_2_6_csv(request: HttpRequest, queryset: QuerySet) HttpResponse | None
Export AtoM 2.6 Accession CSV for submissions in the selected queryset.
- export_atom_2_3_csv(request: HttpRequest, queryset: QuerySet) HttpResponse | None
Export AtoM 2.3 Accession CSV for submissions in the selected queryset.
- export_atom_2_2_csv(request: HttpRequest, queryset: QuerySet) HttpResponse | None
Export AtoM 2.2 Accession CSV for submissions in the selected queryset.
- export_atom_2_1_csv(request: HttpRequest, queryset: QuerySet) HttpResponse | None
Export AtoM 2.1 Accession CSV for submissions in the selected queryset.
- property media
- class recordtransfer.admin.SubmissionGroupInline(parent_model, admin_site)
Bases:
ReadOnlyInlineInline admin for viewing submission groups.
- Permissions:
add: Not allowed
change: Not allowed - go to SubmissionGroup page for change ability
delete: Not allowed - go to SubmissionGroup page for delete ability
- model
alias of
SubmissionGroup
- fields: Sequence[str | Sequence[str]] = ['name', 'description', 'number_of_submissions_in_group']
- readonly_fields: Sequence[str | Callable] = ['number_of_submissions_in_group']
- property media
- class recordtransfer.admin.SubmissionAdmin(model, admin_site)
Bases:
ModelAdminAdmin for the Submission model.
- Permissions:
add: Not allowed
change: Allowed
delete: Only by superusers
- change_form_template = 'admin/submission_change_form.html'
- form
alias of
SubmissionModelForm
- actions: Sequence[Callable[[Any, HttpRequest, QuerySet], HttpResponse | None] | str] | None = ['export_caais_csv', 'export_atom_2_6_csv', 'export_atom_2_3_csv', 'export_atom_2_2_csv', 'export_atom_2_1_csv']
- search_fields: Sequence[str] = ['uuid', 'metadata__accession_title', 'user__username', 'user__email']
- list_display: Sequence[str | Callable] = ['submission_date', 'uuid', 'file_count', <function linkify.<locals>._linkify>, <function linkify.<locals>._linkify>]
- ordering: Sequence[str] | None = ['-submission_date']
- readonly_fields: Sequence[str | Callable] = ['submission_date', 'user', 'upload_session', 'part_of_group', 'uuid']
- file_count(obj: Submission) str
Display the number of files uploaded to the submission.
- has_add_permission(request: HttpRequest) bool
Determine whether add permission is granted for this model admin.
- has_change_permission(request: HttpRequest, obj: object = None) bool
Determine whether change permission is granted for this model admin.
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this model admin.
- get_urls() list
Add extra views to admin.
- get_form(request: HttpRequest, obj: Submission | None = None, change: bool = False, **kwargs) type[ModelForm]
Conditionally add help_text to upload_session if one exists.
- create_zipped_bag(request: HttpRequest, object_id: str) HttpResponseRedirect
Start a background job to create a downloadable bag.
- Parameters:
request – The originating request
object_id – The ID for the submission
- export_caais_csv(request: HttpRequest, queryset: QuerySet) HttpResponse
Export CAAIS 1.0 CSV for submissions in the selected queryset.
- export_atom_2_6_csv(request: HttpRequest, queryset: QuerySet) HttpResponse
Export AtoM 2.6 Accession CSV for submissions in the selected queryset.
- export_atom_2_3_csv(request: HttpRequest, queryset: QuerySet) HttpResponse
Export AtoM 2.3 Accession CSV for submissions in the selected queryset.
- export_atom_2_2_csv(request: HttpRequest, queryset: QuerySet) HttpResponse
Export AtoM 2.2 Accession CSV for submissions in the selected queryset.
- export_atom_2_1_csv(request: HttpRequest, queryset: QuerySet) HttpResponse
Export AtoM 2.1 Accession CSV for submissions in the selected queryset.
- property media
- class recordtransfer.admin.JobAdmin(model, admin_site)
Bases:
ReadOnlyAdminAdmin for the Job model.
- Permissions:
add: Not allowed
change: Not allowed
delete: Only superusers
- fields: Sequence[str | Sequence[str]] = ['uuid', 'name', 'description', 'start_time', 'end_time', 'user_triggered', 'job_status', 'file_url', 'message_log']
- list_display: Sequence[str | Callable] = ['name', 'start_time', 'user_triggered', 'job_status']
- search_fields: Sequence[str] = ['name', 'description', 'user_triggered__username', 'user_triggered__email', 'user_triggered__first_name', 'user_triggered__last_name']
- ordering: Sequence[str] | None = ['-start_time']
- file_url(obj: Job) SafeString
Return the URL to access the file, or a message if there is no file associated with the job.
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this model admin.
- property media
- class recordtransfer.admin.CustomUserAdmin(model, admin_site)
Bases:
UserAdminAdmin for the User model.
- Permissions:
add: Allowed by superusers only
change: Allowed by superusers only. Others update their user info in the Profile page.
delete: Allowed by superusers only
- form
alias of
UserAdminForm
- fieldsets = ((None, {'fields': ('username', 'password')}), ('Personal info', {'fields': ('first_name', 'last_name', 'email')}), ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), ('Important dates', {'fields': ('last_login', 'date_joined')}), ('Contact Information', {'fields': ('phone_number', 'address_line_1', 'address_line_2', 'city', 'province_or_state', 'other_province_or_state', 'postal_or_zip_code', 'country')}), ('Language Preferences', {'fields': ('language',)}), ('Email Updates', {'fields': ('gets_submission_email_updates',)}))
- inlines: Sequence[type[InlineModelAdmin]] = [<class 'recordtransfer.admin.SubmissionInline'>, <class 'recordtransfer.admin.SubmissionGroupInline'>]
- has_add_permission(request: HttpRequest) bool
Determine whether add permission is granted for this user admin.
- has_change_permission(request: HttpRequest, obj: object = None) bool
Determine whether change permission is granted for this user admin.
- has_delete_permission(request: HttpRequest, obj: object = None) bool
Determine whether delete permission is granted for this user admin.
- changeform_view(request: HttpRequest, object_id: str | None = None, form_url: str = '', extra_context: dict | None = None) TemplateResponse
Add JS context for contact info form.
- user_change_password(request: HttpRequest, id: str, form_url: str = '') HttpResponse
Send a notification email when a user’s password is changed.
- save_model(request: HttpRequest, obj: User, form: ModelForm, change: bool) None
Enforce superuser permissions checks and send notification emails for other account updates.
- property media
- class recordtransfer.admin.SiteSettingAdmin(model, admin_site)
Bases:
ModelAdminAdmin for the SiteSetting model.
- Permissions:
add: Not allowed
change: Only by superusers
delete: Not allowed
- list_display: Sequence[str | Callable] = ['key', 'value_type', 'value', 'change_date']
- search_fields: Sequence[str] = ['key', 'value']
- readonly_fields: Sequence[str | Callable] = ['key', 'value_type', 'change_date', 'changed_by']
- form
alias of
SiteSettingModelForm
- change_form_template = 'admin/sitesetting_change_form.html'
- save_model(request: HttpRequest, obj: SiteSetting, form: ModelForm, change: bool) None
Override save_model to set the changed_by field.
- changeform_view(request: HttpRequest, object_id: str | None = None, form_url: str | None = '', extra_context: dict | None = None) TemplateResponse
Add custom context to the change form.
- response_change(request: HttpRequest, obj: SiteSetting) HttpResponse
Mimic save and continue on POST when resetting setting.
- has_add_permission(request: HttpRequest) bool
Prevent adding new site settings through the admin interface.
- has_change_permission(request: HttpRequest, obj: object = None) bool
Allow modification of site settings only by superusers.
- has_delete_permission(request: object, obj: object = None) bool
Prevent deletion of site settings through the admin interface.
- property media