Skip to content

Commit

Permalink
feat: assign locale and workflow permissions and allow moderation (#239)
Browse files Browse the repository at this point in the history
  • Loading branch information
SharleneNdinda committed Oct 4, 2023
1 parent 64c99cc commit 2faf19e
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 6 deletions.
4 changes: 2 additions & 2 deletions config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,8 +431,8 @@
WAGTAILDOCS_DOCUMENT_FORM_BASE = "mycarehub.content.forms.CustomDocumentForm"
WAGTAIL_ENABLE_UPDATE_CHECK = "LTS"
WAGTAIL_ENABLE_WHATS_NEW_BANNER = True
WAGTAIL_MODERATION_ENABLED = False
WAGTAIL_WORKFLOW_ENABLED = False
WAGTAIL_MODERATION_ENABLED = True
WAGTAIL_WORKFLOW_ENABLED = True

# phone numbers
PHONENUMBER_DB_FORMAT = "E164"
Expand Down
14 changes: 14 additions & 0 deletions mycarehub/content/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,20 @@ def create_program_content_editor_permissions(sender, instance, created, **kwarg
)
group.permissions.add(permission_object)

allowed_locale_permissions = ["add_locale", "change_locale"]
allowed_workflow_permissions = ["add_workflow", "change_workflow", "delete_workflow"]
allowed_workflowtask_permissions = ["add_task", "change_task", "delete_task"]
for permission in (
allowed_locale_permissions
+ allowed_workflow_permissions
+ allowed_workflowtask_permissions
):
permission_object = Permission.objects.get(
content_type__app_label="wagtailcore",
codename=permission,
)
group.permissions.add(permission_object)

allowed_page_permissions = ["add", "edit", "publish"]
for permission in allowed_page_permissions:
GroupPagePermission.objects.create(
Expand Down
42 changes: 42 additions & 0 deletions mycarehub/content/wagtail_hooks.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
from django.shortcuts import redirect
from django.urls import reverse
from django.utils.safestring import mark_safe
from wagtail.admin import messages
from wagtail.admin.menu import MenuItem
from wagtail.core import hooks
from wagtail.documents import get_document_model
from wagtail.images import get_image_model
from wagtail.locales.wagtail_hooks import LocalesMenuItem
from wagtail.models import Page
from wagtail.permissions import site_permission_policy
from wagtail.snippets.models import register_snippet

from mycarehub.content.views.snippets import SMSContentItemTagSnippetViewSet
Expand All @@ -25,6 +29,20 @@
)


class WorkflowsMenuItem(MenuItem):
def is_shown(self, request):
return site_permission_policy.user_has_any_permission(
request.user, ["add", "change", "delete"]
)


class WorkflowTasksMenuItem(MenuItem):
def is_shown(self, request):
return site_permission_policy.user_has_any_permission(
request.user, ["add", "change", "delete"]
)


@hooks.register("insert_global_admin_js")
def get_global_admin_js():
return mark_safe(
Expand Down Expand Up @@ -147,3 +165,27 @@ def show_organisation_images_only(images, request):
images = get_image_model().objects.filter(organisation=request.user.organisation)

return images


@hooks.register("register_admin_menu_item")
def register_locales_menu_item():
return LocalesMenuItem(
("Locales"), reverse("wagtaillocales:index"), icon_name="site", order=603
)


@hooks.register("register_admin_menu_item")
def register_workflows_menu_item():
return WorkflowsMenuItem(
("Workflows"), reverse("wagtailadmin_workflows:index"), icon_name="tasks", order=603
)


@hooks.register("register_admin_menu_item")
def register_workflowtask_menu_item():
return WorkflowTasksMenuItem(
("Workflow Tasks"),
reverse("wagtailadmin_workflows:task_index"),
icon_name="thumbtack",
order=603,
)
14 changes: 10 additions & 4 deletions mycarehub/templates/wagtailadmin/pages/create.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,21 @@


<div style="margin-left: 80px;">
<button type="submit" name="action-publish" style="font-weight: bold;" value="action-publish" class="button button--icon button-longrunning {% if is_revision %}warning{% endif %}" data-clicked-text="{% trans 'Publishing…' %}">
{% icon name="upload" classname="button-longrunning__icon" %}
{% icon name="spinner" %}<em>{% if is_revision %}{% trans 'Publish this version' %}{% else %}{% trans 'Publish content' %}{% endif %}</em>
</button>

<button type="submit" style="font-weight: bold;" class="button button--icon action-save button-longrunning {% if is_revision %}warning{% endif %}" data-clicked-text="{% trans 'Saving…' %}">
{% icon name="draft" classname="button-longrunning__icon" %}
{% icon name="spinner" %}<em>{% if is_revision %}{% trans 'Replace current draft' %}{% else %}{% trans 'Save draft' %}{% endif %}</em>
</button>

<button type="submit" style="font-weight: bold;" name="action-submit" value="Submit for moderation" class="button button--icon action-save button-longrunning {% if is_revision %}warning{% endif %}" data-clicked-text="{% trans 'Submitting…' %}">
{% icon name="upload" classname="button-longrunning__icon" %}
{% icon name="spinner" %}<em>{% if is_revision %}{% trans 'Replace current draft' %}{% else %}{% trans 'Submit for moderation' %}{% endif %}</em>
</button>

<button type="submit" name="action-publish" style="font-weight: bold;" value="action-publish" class="button button--icon button-longrunning {% if is_revision %}warning{% endif %}" data-clicked-text="{% trans 'Publishing…' %}">
{% icon name="upload" classname="button-longrunning__icon" %}
{% icon name="spinner" %}<em>{% if is_revision %}{% trans 'Publish this version' %}{% else %}{% trans 'Publish content' %}{% endif %}</em>
</button>
</div>

<footer class="footer">
Expand Down

0 comments on commit 2faf19e

Please sign in to comment.