Koha/t/db_dependent
Jonathan Druart 89ade834d6 Bug 24387: Rename "News" with "Additional contents"
One big patch for one big move.

The "News" feature (opac_news) has been hijacked to handle some system
preferences (bug 26050). The goal was to take profit of the UI (editor)
and the ability to translate the value.

Disclaimer: This patch is NOT offering the best implementation but, as
we still don't have bug 24975, it cannot be done now. And no, we don't
want to wait for it to move forward here. This patch is going into the
right direction anyway.

This enhancement is going to rename the "News" with a more genertic
"Additional contents". We have two different "categories" of content:
"news" and "html customizations".

What does it bring?
- A split on the UI for disambigate the two types of content (news and
syspref/html customizations)
- A simplification of the edit form: all languages will be translatable
on the same view (like the "notice templates")
- Ground will be prepared for different types of content (if needed later)
- Staff news can be translated

How was the "News" area working before this patch?
The opac_news DB table contained a (very inconsistent) 'lang' column.
The different values were:
- '' => news to display at the OPAC and staff interfaces
- 'koha' => news for staff only
- 'slip' => news for slip notices
- $lang => news for OPAC only, translated in $lang ('en', 'es-ES', etc.)
- "$location_$lang" => A syspref moved to this "news" area. The syspref
is $location, and is translated in $lang. Eg. OpacLoginInstructions_en,
OpacLoginInstructions_fr-FR, opacheader_es-ES

This patch is improving the DB structure with the following changes:
- renaming 'opac_news' with 'additional_contents'
- new 'category' column
 => 'news' or 'html_customizations'
- new 'location' column
 => For 'news': 'staff_and_opac', 'staff_only', 'slip'
 => For 'html_customizations': the old syspref name (eg. 'OpacLoginInstructions').
- new 'code' column (see later for more info)
- the 'lang' column will only contain the language code ('en', 'es-ES',
etc.). BUT a 'default' entry will ALWAYS exist for fallback behaviour.

We are getting closer to the 'notice template' table structure because
we want to match its UI. The 'code' column will bring us the ability to
group the different 'additional_contents' rows. The code for a given
news will be the same, but the (lang, title, content) will differ.
Examples:
  News 1 will have, for each of the translated versions
  (category, code,    location, branchcode)
  ('news',   'News1', $location, $branchcode||undef)
  And the 3 following columns will differ:
  (title,              content,               lang)
  ('title for news 1', 'content for news 1', 'default')
  ('titulo para 1',    'contenido para 1',   'es-ES')

Note that the "category" is not strictely necessary, but it seems better
to have the ability to split the different content by category/type
easily.

Additional changes:
- Syspref 'NewsToolEditor' is renamed 'AdditionalContentsEditor'
- Koha::NewItem => Koha::AdditionalContent
- Koha::News => Koha::AdditionalContents
- Script and template renamed from koha-news to additional-contents
- Foreign keys have been renamed
- Subpermission edit_news has been renamed edit_additional_contents
- The UI can now be accessed via a "News" or "HTML customizations" link
from the tools module. The related contents will then be displayed (both
categories are now split)

Changes not done here:
- Primary key 'idnew' could be renamed 'id'

Limitations of the upgrade:
News cannot be grouped by a unique code for existing translations.
=> A given news will be now displayed several times on the translated
interface
Any ideas to improve the upgrade behaviour?
We will have to add a warning in the release notes to tell libraries to
review their news.

Test plan:
0. Don't apply the patches
1. Translate the interfaces in some languages
. Create some news for staff and OPAC
. Create some content for different entry of HTML customizations
Note that you are forced to define a 'default'.
Also note that you are only forced to fill the title (not the content).
This is certainly problematic (see FIXME in the code) as sometime only
the content is displayed.
. Play with the interface (edit, delete, filter)
. Go to the different places the news are displayed, and confirm they
are displayed correctly (staff home, opac home, opac rss)
. Create 1+ news for 'slip', check an item out and 'print slip' (from
the circulation page). You must see the news.
. Go to the different places you are expecting the HTML customizations
to be present and confirm that you see them.
. Switch the lang of the interface and confirm that you now see the
content in the translated version
. Generate the templates in another language, don't translate the
content
. Use this language for the interface and confirm that the 'default'
version is displauyed.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
2021-08-16 11:55:55 +02:00
..
Acquisition Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
api/v1 Bug 22435: Update unit tests 2021-08-04 14:06:43 +02:00
Auth Bug 24387: Rename "News" with "Additional contents" 2021-08-16 11:55:55 +02:00
AuthoritiesMarc Bug 21958: (QA follow-up) Correct indirect object notation 2021-04-01 17:13:56 +02:00
Authority Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Biblio Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Circulation Bug 22435: Update unit tests 2021-08-04 14:06:43 +02:00
CourseReserves Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Creators Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
cronjobs
data Bug 27968: Fix framework import if isurl has an incorrect value 2021-04-23 10:03:30 +02:00
Exporter Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Holds Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Illrequest
Items Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Koha Bug 24387: Rename "News" with "Additional contents" 2021-08-16 11:55:55 +02:00
Labels Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
LDAP
Letters Bug 24387: Rename "News" with "Additional contents" 2021-08-16 11:55:55 +02:00
Members Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
misc/translator Bug 25067: Adjust paths in tests 2020-11-06 16:59:40 +01:00
OAI Bug 28741: Regression tests 2021-08-04 09:14:46 +02:00
Patron Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Record Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Reports Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Reserves Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Search Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
selenium Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Serials Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
SIP Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Template/Plugin Bug 24154: (follow-up) Make parameter and variable more explicit, add tests 2021-05-10 10:27:53 +02:00
Utils Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
www Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
00-strict.t Bug 28606: Remove $DEBUG and $ENV{DEBUG} 2021-06-24 11:53:44 +02:00
01-test_dbic.t
Accounts.t Bug 22435: (follow-up) Set CREATE offset for credits to positive 2021-08-04 14:06:43 +02:00
Acquisition.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Amazon.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
ArticleRequests.t
AudioAlerts.t
Auth.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Auth_with_cas.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Auth_with_ldap.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
AuthorisedValues.t Bug 23830: Make Koha::AuthorisedValues use Koha::Objects::Limit::Library 2021-02-08 17:09:34 +01:00
AuthoritiesMarc.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
AuthUtils.t
BackgroundJob.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Barcodes.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Barcodes_ValueBuilder.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Biblio.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Breeding.t
Budgets.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Cache.t Bug 16067: Remove FastMmap 2020-12-04 15:40:58 +01:00
Calendar.t
Charset.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
check_kohastructure.t
check_sysprefs.t Bug 23895: Fix check_sysprefs.t 2020-10-14 15:52:29 +02:00
Circulation.t Bug 22435: (QA follow-up) More test updates 2021-08-04 14:06:43 +02:00
Clubs.t
Context.t Bug 28606: Remove $DEBUG and $ENV{DEBUG} 2021-06-24 11:53:44 +02:00
Contract.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
CourseReserves.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
db_structure.t
DecreaseLoanHighHolds.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Filter_MARC_ViewPolicy.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Fines.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
FrameworkPlugin.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Heading.t Bug 26852: Fix Heading.t 2021-08-11 17:01:51 +02:00
Heading_MARC21.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Hold.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Holds.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
HoldsQueue.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Holidays.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Illcomments.t
Illrequestattributes.t
Illrequests.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
ILSDI_Services.t Bug 28630: Improve date comparisons in tests 2021-08-04 14:06:43 +02:00
ImportBatch.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
ImportExportFramework.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Installer.t Bug 15067: (QA follow-up) Ensure update is idempotent 2021-08-04 14:06:43 +02:00
Items.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Koha.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Koha_Authority.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Koha_Database.t
Koha_Elasticsearch.t
Koha_ExternalContent_OverDrive.t
Koha_ExternalContent_RecordedBooks.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Koha_Misc_Files.t
Languages.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Letters.t Bug 28813: Update unit tests 2021-08-11 12:53:54 +02:00
LibraryGroups.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Linker_Default.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Linker_FirstMatch.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Log.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
MarcModificationTemplates.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Members.t Bug 17600: Fix t/db_dependent/Members.t 2021-07-26 19:34:59 +02:00
Message.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
MungeMarcPrice.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Overdues.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Passwordrecovery.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Patroncards.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
PatronLists.t
Patrons.t Bug 27554: Clarify and add tests for update_category_to 2021-02-01 16:21:25 +01:00
Record.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
RecordProcessor_EmbedSeeFromHeadings.t Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Reports.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Reserves.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
rollingloans.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
RotatingCollections.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Search.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Serials.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Serials_2.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Service.t
ShelfBrowser.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Sitemapper.t
Stats.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
StockRotationItems.t Bug 22569: Add Unit Tests 2021-03-11 11:51:40 +01:00
StockRotationRotas.t
StockRotationStages.t
SuggestionEngine_ExplodedTerms.t Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Suggestions.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
sysprefs.t
TablesSettings.t Bug 25898: Prohibit indirect object notation 2020-10-15 12:56:30 +02:00
Tags.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
Templates.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
TestBuilder.t Bug 28479: Use primary keys to check object existence in TestBuilder 2021-06-21 12:07:28 +02:00
Upload.t Bug 28123: Fix expected value in unit test 2021-04-16 12:28:18 +02:00
UsageStats.t Bug 28565: Refactor tests 2021-07-26 12:46:35 +02:00
Virtualshelves.t
XISBN.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
XSLT.t Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00
yaml.t Bug 22824: Adjust tests to match final behaviours 2021-03-04 16:18:42 +01:00
zebra_config.pl Bug 17600: Standardize our EXPORT_OK 2021-07-16 08:58:47 +02:00