From 5b822f8854cf2cbf534f34086b8d30cb7b3e809f Mon Sep 17 00:00:00 2001 From: Wilson Gaturu Date: Thu, 24 Aug 2023 09:21:33 +0300 Subject: [PATCH] adds help topic button to admin --- peachjam/admin.py | 24 ++++++++++++++++--- .../0101_peachjamsettings_help_link.py | 23 ++++++++++++++++++ peachjam/models/settings.py | 6 +++++ peachjam/templates/admin/change_form.html | 9 +++++++ peachjam/templates/admin/change_list.html | 13 ++++++++++ 5 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 peachjam/migrations/0101_peachjamsettings_help_link.py create mode 100644 peachjam/templates/admin/change_form.html create mode 100644 peachjam/templates/admin/change_list.html diff --git a/peachjam/admin.py b/peachjam/admin.py index 01a35512b..cf101aeb4 100644 --- a/peachjam/admin.py +++ b/peachjam/admin.py @@ -87,6 +87,18 @@ User = get_user_model() +class BaseAdmin(admin.ModelAdmin): + """Base admin class for Peachjam. Includes some common fields and methods + for all models. + """ + + def changelist_view(self, request, extra_context=None): + resp = super().changelist_view(request, extra_context) + if hasattr(self, "help_topic"): + resp.context_data["help_topic"] = self.help_topic + return resp + + class ImportExportMixin(BaseImportExportMixin): def import_action(self, request, *args, **kwargs): resp = super().import_action(request, *args, **kwargs) @@ -310,7 +322,7 @@ def _save_m2m(self): self.instance.update_text_content() -class DocumentAdmin(admin.ModelAdmin): +class DocumentAdmin(BaseAdmin): form = DocumentForm inlines = [DocumentTopicInline, SourceFileInline, AlternativeNameInline] list_display = ( @@ -673,6 +685,7 @@ def save(self, *args, **kwargs): class JudgmentAdmin(ImportExportMixin, DocumentAdmin): + help_topic = "judgments/upload-a-judgment" form = JudgmentAdminForm resource_class = JudgmentResource inlines = [ @@ -916,7 +929,8 @@ def get_form(self, request, obj=None, **kwargs): @admin.register(CourtRegistry) -class CourtRegistryAdmin(admin.ModelAdmin): +class CourtRegistryAdmin(BaseAdmin): + help_topic = "site_admin/add-court-registries" readonly_fields = ("code",) list_display = ("name", "code") @@ -949,11 +963,15 @@ class JudgeAdmin(admin.ModelAdmin): search_fields = ("name",) +@admin.register(MatterType) +class MatterTypeAdmin(BaseAdmin): + help_topic = "site_admin/add-matter-types" + + admin.site.register( [ CitationLink, Attorney, - MatterType, CourtClass, AttachedFileNature, CitationProcessing, diff --git a/peachjam/migrations/0101_peachjamsettings_help_link.py b/peachjam/migrations/0101_peachjamsettings_help_link.py new file mode 100644 index 000000000..1bf3d2069 --- /dev/null +++ b/peachjam/migrations/0101_peachjamsettings_help_link.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.19 on 2023-08-24 06:09 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("peachjam", "0100_sourcefile_file_as_pdf"), + ] + + operations = [ + migrations.AddField( + model_name="peachjamsettings", + name="help_link", + field=models.URLField( + blank=True, + default="https://liieditors.docs.laws.africa/", + null=True, + verbose_name="help link", + ), + ), + ] diff --git a/peachjam/models/settings.py b/peachjam/models/settings.py index 90fa03d09..039675a51 100644 --- a/peachjam/models/settings.py +++ b/peachjam/models/settings.py @@ -77,6 +77,12 @@ class PeachJamSettings(SingletonModel): pocket_law_repo = models.CharField( verbose_name=_("Pocket Law repo"), max_length=1024, null=True, blank=True ) + help_link = models.URLField( + _("help link"), + default="https://liieditors.docs.laws.africa/", + null=True, + blank=True, + ) class Meta: verbose_name = verbose_name_plural = _("site settings") diff --git a/peachjam/templates/admin/change_form.html b/peachjam/templates/admin/change_form.html new file mode 100644 index 000000000..73924cae7 --- /dev/null +++ b/peachjam/templates/admin/change_form.html @@ -0,0 +1,9 @@ +{% extends "admin/change_form.html" %} +{% load i18n %} +{% block extra_actions %} + {% if PEACHJAM_SETTINGS.help_link and adminform.model_admin.help_topic %} + {% trans 'Help' %} + {% endif %} +{% endblock %} diff --git a/peachjam/templates/admin/change_list.html b/peachjam/templates/admin/change_list.html new file mode 100644 index 000000000..40f326a6c --- /dev/null +++ b/peachjam/templates/admin/change_list.html @@ -0,0 +1,13 @@ +{% extends 'admin/change_list.html' %} +{% load i18n %} +{% block object-tools-items %} + {{ block.super }} + {% if PEACHJAM_SETTINGS.help_link and help_topic %} + + + {% trans 'Help' %} + + {% endif %} +{% endblock %}