From ca46e2240082b0334ec4f4d5e5cf4868891816e8 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Date: Tue, 22 Sep 2015 09:47:25 +0100
Subject: [PATCH] Bug 13632: Use an include file to display permissions

This patch set moves the permissions' descriptions to the po files
instead of having them in the DB.

Test plan:
0/ Apply all patches
1/ Create a new installation
2/ Confirm the userflags and permissions tables are correctly populated
3/ Update the po file for a translated language
4/ Confirm you are able to translate the permissions descriptions
5/ Install the template files for this language
6/ Switch the interface to use this language and confirm the string are
correctly translated.

QA Note: At this point we could remove the userflags.flagdesc and
permissions.description DB fields, but I would prefer to keep them:
developers will know what the permission do without the need to go and
see the include file (we have it in the sql files and so, in the DB).
---
 .../intranet-tmpl/prog/en/includes/permissions.inc | 103 +++++++++++++++++++++
 .../prog/en/modules/members/member-flags.tt        |   5 +-
 2 files changed, 106 insertions(+), 2 deletions(-)
 create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
new file mode 100644
index 0000000..9db7388
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
@@ -0,0 +1,103 @@
+[%- BLOCK main_permissions -%]
+    [% SWITCH name %]
+    [%- CASE 'superlibrarian' -%]<span>Access to all librarian functions</span>
+    [%- CASE 'circulate' -%]<span>Check out and check in items</span>
+    [%- CASE 'catalogue' -%]<span><b>Required for staff login.</b> Staff access, allows viewing of catalogue in staff client.</span>
+    [%- CASE 'parameters' -%]<span>Manage Koha system settings (Administration panel)</span>
+    [%- CASE 'borrowers' -%]<span>Add or modify patrons</span>
+    [%- CASE 'permissions' -%]<span>Set user permissions</span>
+    [%- CASE 'reserveforothers' -%]<span>Place and modify holds for patrons</span>
+    [%- CASE 'editcatalogue' -%]<span>Edit catalog (Modify bibliographic/holdings data)</span>
+    [%- CASE 'updatecharges' -%]<span>Manage patrons fines and fees</span>
+    [%- CASE 'acquisition' -%]<span>Acquisition and/or suggestion management</span>
+    [%- CASE 'management' -%]<span>Set library management parameters (deprecated)</span>
+    [%- CASE 'tools' -%]<span>Use all tools (expand for granular tools permissions)</span>
+    [%- CASE 'editauthorities' -%]<span>Edit authorities</span>
+    [%- CASE 'serials' -%]<span>Manage serial subscriptions</span>
+    [%- CASE 'reports' -%]<span>Allow access to the reports module</span>
+    [%- CASE 'staffaccess' -%]<span>Allow staff members to modify permissions for other staff members</span>
+    [%- CASE 'coursereserves' -%]<span>Course reserves</span>
+    [%- CASE 'plugins' -%]<span>Koha plugins</span>
+    [%- CASE 'lists' -%]<span>Lists</span>
+    [%- END -%]
+[%- END -%]
+
+[%- BLOCK sub_permissions -%]
+    [% SWITCH name %]
+    [%- CASE 'circulate_remaining_permissions' -%]<span>Remaining circulation permissions</span>
+    [%- CASE 'force_checkout' -%]<span>Force checkout if a limitation exists</span>
+    [%- CASE 'manage_restrictions' -%]<span>Manage restrictions for accounts</span>
+    [%- CASE 'overdues_report' -%]<span>Execute overdue items report</span>
+    [%- CASE 'override_renewals' -%]<span>Override blocked renewals</span>
+    [%- CASE 'manage_circ_rules' -%]<span>manage circulation rules</span>
+    [%- CASE 'parameters_remaining_permissions' -%]<span>Remaining system parameters permissions</span>
+    [%- CASE 'modify_holds_priority' -%]<span>Modify holds priority</span>
+    [%- CASE 'place_holds' -%]<span>Place holds for patrons</span>
+    [%- CASE 'delete_all_items' -%]<span>Delete all items at once</span>
+    [%- CASE 'edit_catalogue' -%]<span>Edit catalog (Modify bibliographic/holdings data)</span>
+    [%- CASE 'edit_items' -%]<span>Edit items</span>
+    [%- CASE 'edit_items_restricted' -%]<span>Limit item modification to subfields defined in the SubfieldsToAllowForRestrictedEditing preference (please note that edit_item is still required)</span>
+    [%- CASE 'fast_cataloging' -%]<span>Fast cataloging</span>
+    [%- CASE 'remaining_permissions' -%]<span>Remaining permissions for managing fines and fees</span>
+    [%- CASE 'writeoff' -%]<span>Write off fines and fees</span>
+    [%- CASE 'budget_add_del' -%]<span>Add and delete budgets (but can't modify budgets)</span>
+    [%- CASE 'budget_manage' -%]<span>Manage budgets</span>
+    [%- CASE 'budget_manage_all' -%]<span>Manage all budgets</span>
+    [%- CASE 'budget_modify' -%]<span>Modify budget (can't create lines, but can modify existing ones)</span>
+    [%- CASE 'contracts_manage' -%]<span>Manage contracts</span>
+    [%- CASE 'group_manage' -%]<span>Manage orders & basketgroups</span>
+    [%- CASE 'order_manage' -%]<span>Manage orders & basket</span>
+    [%- CASE 'order_manage_all' -%]<span>Manage all orders and baskets, regardless of restrictions on them</span>
+    [%- CASE 'order_receive' -%]<span>Manage orders & basket</span>
+    [%- CASE 'period_manage' -%]<span>Manage periods</span>
+    [%- CASE 'planning_manage' -%]<span>Manage budget plannings</span>
+    [%- CASE 'vendors_manage' -%]<span>Manage vendors</span>
+    [%- CASE 'batch_upload_patron_images' -%]<span>Upload patron images in a batch or one at a time</span>
+    [%- CASE 'delete_anonymize_patrons' -%]<span>Delete old borrowers and anonymize circulation history (deletes borrower reading history)</span>
+    [%- CASE 'edit_calendar' -%]<span>Define days when the library is closed</span>
+    [%- CASE 'edit_news' -%]<span>Write news for the OPAC and staff interfaces</span>
+    [%- CASE 'edit_notice_status_triggers' -%]<span>Set notice/status triggers for overdue items</span>
+    [%- CASE 'edit_notices' -%]<span>Define notices</span>
+    [%- CASE 'edit_patrons' -%]<span>Perform batch modification of patrons</span>
+    [%- CASE 'edit_quotes' -%]<span>Edit quotes for quote-of-the-day feature</span>
+    [%- CASE 'export_catalog' -%]<span>Export bibliographic and holdings data</span>
+    [%- CASE 'import_patrons' -%]<span>Import patron data</span>
+    [%- CASE 'inventory' -%]<span>Perform inventory (stocktaking) of your catalog</span>
+    [%- CASE 'items_batchdel' -%]<span>Perform batch deletion of items</span>
+    [%- CASE 'items_batchmod' -%]<span>Perform batch modification of items</span>
+    [%- CASE 'items_batchmod_restricted' -%]<span>Limit batch item modification to subfields defined in the SubfieldsToAllowForRestrictedBatchmod preference (please note that items_batchmod is still required)</span>
+    [%- CASE 'label_creator' -%]<span>Create printable labels and barcodes from catalog and patron data</span>
+    [%- CASE 'manage_csv_profiles' -%]<span>Manage CSV export profiles</span>
+    [%- CASE 'manage_patron_lists' -%]<span>Add, edit and delete patron lists and their contents</span>
+    [%- CASE 'manage_staged_marc' -%]<span>Managed staged MARC records, including completing and reversing imports</span>
+    [%- CASE 'marc_modification_templates' -%]<span>Manage marc modification templates</span>
+    [%- CASE 'moderate_comments' -%]<span>Moderate patron comments</span>
+    [%- CASE 'moderate_tags' -%]<span>Moderate patron tags</span>
+    [%- CASE 'records_batchdel' -%]<span>Perform batch deletion of records (bibliographic or authority)</span>
+    [%- CASE 'records_batchmod' -%]<span>Perform batch modification of records (biblios or authorities)</span>
+    [%- CASE 'rotating_collections' -%]<span>Manage rotating collections</span>
+    [%- CASE 'schedule_tasks' -%]<span>Schedule tasks to run</span>
+    [%- CASE 'stage_marc_import' -%]<span>Stage MARC records into the reservoir</span>
+    [%- CASE 'upload_local_cover_images' -%]<span>Upload local cover images</span>
+    [%- CASE 'view_system_logs' -%]<span>Browse the system logs</span>
+    [%- CASE 'check_expiration' -%]<span>Check the expiration of a serial</span>
+    [%- CASE 'claim_serials' -%]<span>Claim missing serials</span>
+    [%- CASE 'create_subscription' -%]<span>Create a new subscription</span>
+    [%- CASE 'delete_subscription' -%]<span>Delete an existing subscription</span>
+    [%- CASE 'edit_subscription' -%]<span>Edit an existing subscription</span>
+    [%- CASE 'receive_serials' -%]<span>Serials receiving</span>
+    [%- CASE 'renew_subscription' -%]<span>Renew a subscription</span>
+    [%- CASE 'routing' -%]<span>Routing</span>
+    [%- CASE 'superserials' -%]<span>Manage subscriptions from any branch (only applies when IndependentBranches is used)</span>
+    [%- CASE 'create_reports' -%]<span>Create SQL reports</span>
+    [%- CASE 'execute_reports' -%]<span>Execute SQL reports</span>
+    [%- CASE 'add_reserves' -%]<span>Add course reserves</span>
+    [%- CASE 'delete_reserves' -%]<span>Remove course reserves</span>
+    [%- CASE 'manage_courses' -%]<span>Add, edit and delete courses</span>
+    [%- CASE 'configure' -%]<span>Configure plugins</span>
+    [%- CASE 'manage' -%]<span>Manage plugins ( install / uninstall )</span>
+    [%- CASE 'report' -%]<span>Use report plugins</span>
+    [%- CASE 'tool' -%]<span>Use tool plugins</span>
+    [%- CASE 'delete_public_lists' -%]<span>Delete public lists</span>
+    [%- END -%]
+[%- END -%]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
index c1e751e..f68027a 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/member-flags.tt
@@ -1,3 +1,4 @@
+[% PROCESS 'permissions.inc' %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Patrons &rsaquo; Set permissions for [% surname %], [% firstname %]</title>
 <link rel="stylesheet" type="text/css" href="[% themelang %]/css/treeview/jquery.treeview.css"/>
@@ -131,7 +132,7 @@
 				<input type="checkbox" id="flag-[% loo.bit %]" name="flag" value="[% loo.flag %]"  onclick="toggleChildren(this)" />
 			[% END %]
                 <label class="permissioncode" for="flag-[% loo.bit %]">[% loo.flag %]</label>
-                <span class="permissiondesc">[% loo.flagdesc %]</span>
+                <span class="permissiondesc">[% PROCESS main_permissions name=loo.flag %]</span>
             [% IF ( loo.sub_perm_loop ) %]
                 <ul id="flag-[% loo.bit %]-children">
                     [% FOREACH sub_perm_loo IN loo.sub_perm_loop %]
@@ -142,7 +143,7 @@
 			                <input type="checkbox" id="[% sub_perm_loo.id %]" name="flag" value="[% sub_perm_loo.perm %]" onclick="toggleParent(this)" />
 			            [% END %]
                     <label class="permissioncode" for="[% sub_perm_loo.id %]">[% sub_perm_loo.code %]</label>
-                             <span class="permissiondesc">[% sub_perm_loo.description %]</span>
+                             <span class="permissiondesc">[% PROCESS sub_permissions name=sub_perm_loo.code %]</span>
                         </li>
                     [% END %]
                 </ul>
-- 
2.1.0