From 6bb8b9a18495fa5077e5f679740dfb3e9d9055d0 Mon Sep 17 00:00:00 2001 From: Roman <72063601+folix-01@users.noreply.github.com> Date: Fri, 13 Oct 2023 15:32:32 +0200 Subject: [PATCH 01/15] Add hidden booking types (#103) * Add hidden bookign types * Format + Changelog * Fix tests * Upgrade step * Refactor the hidden booking types resection techique * Update locales * Update changelog * Review requirements * Formatting * Update rolemap * Wrong title fix * Reset test to master * Update readme * Article * Extend definition * Update locales * Update readme * Update doc * Fix grammar --- CHANGES.rst | 13 +- README.rst | 9 +- .../content/prenotazioni_folder.py | 42 ++++- .../en/LC_MESSAGES/redturtle.prenotazioni.po | 168 ++++++++--------- .../it/LC_MESSAGES/redturtle.prenotazioni.po | 170 +++++++++--------- .../locales/redturtle.prenotazioni.pot | 168 ++++++++--------- src/redturtle/prenotazioni/permissions.zcml | 5 + .../profiles/default/metadata.xml | 2 +- .../prenotazioni/profiles/default/rolemap.xml | 6 + .../serializers/adapters/configure.zcml | 1 + .../adapters/prenotazioni_folder.py | 26 +++ .../tests/test_prenotazioni_context_state.py | 2 + .../test_prenotazioni_folder_serializer.py | 81 +++++++++ .../tests/test_week_table_overrides.py | 15 +- src/redturtle/prenotazioni/upgrades.py | 11 ++ src/redturtle/prenotazioni/upgrades.zcml | 14 ++ 16 files changed, 462 insertions(+), 271 deletions(-) create mode 100644 src/redturtle/prenotazioni/restapi/serializers/adapters/prenotazioni_folder.py create mode 100644 src/redturtle/prenotazioni/tests/test_prenotazioni_folder_serializer.py diff --git a/CHANGES.rst b/CHANGES.rst index 99e8c9df..52864e46 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,8 @@ Changelog 2.1.2 (unreleased) ------------------ -- Nothing changed yet. +- Add hidden booking types for operator use. + [folix-01] 2.1.1 (2023-10-11) @@ -18,24 +19,24 @@ Changelog 2.1.0 (2023-10-11) ------------------ -- Add booking details to the export file +- Add booking details to the export file. [folix-01] -- Change PrenotazioniFolder.cosa_serve field type to RichText +- Change PrenotazioniFolder.cosa_serve field type to RichText. [folix-01] - Utilizzare defaultFactory se il default è una funzione, altrimenti non viene eseguita nel momento corretto. [mamico] -- Rimosso searchabletext di prenotazioni doppio +- Rimosso searchabletext di prenotazioni doppio. [mamico] - Aggiunto indexer per fiscalcode uppercase per - fare ricerche case insensitive + fare ricerche case insensitive. [mamico] -- Remove Contributor from the package permissions map +- Remove Contributor from the package permissions map. [folix-01] - Add configurable simultaneous bookings limit for the same user. diff --git a/README.rst b/README.rst index b5fe0661..5177a552 100644 --- a/README.rst +++ b/README.rst @@ -96,12 +96,19 @@ Creating a new Booking Folder If the product is correctly installed the **Booking Folder** entry is available on the `add new` action menu. You can configure: - +- hidden booking types for the internal usage - more then one gate - booking vacations - custom duration for booking types - week schedule for morning and afternoon time tables +Creating the hidden booking types +--------------------------------- + +You can hide your booking types from simple and anonymous users by using the 'Hidden Booking' flag +in your booking types definition. This way, it will only be available to users with the 'Bookings Manager' +permission. This feature may be useful if you want to restrict booking types for internal corporate use. + Creating a new booking content ------------------------------ diff --git a/src/redturtle/prenotazioni/content/prenotazioni_folder.py b/src/redturtle/prenotazioni/content/prenotazioni_folder.py index a859dfc5..3fc54085 100644 --- a/src/redturtle/prenotazioni/content/prenotazioni_folder.py +++ b/src/redturtle/prenotazioni/content/prenotazioni_folder.py @@ -18,7 +18,10 @@ from redturtle.prenotazioni import _ from redturtle.prenotazioni.browser.widget import WeekTableOverridesFieldWidget from redturtle.prenotazioni.config import DEFAULT_VISIBLE_BOOKING_FIELDS -from redturtle.prenotazioni.content.validators import PauseValidator, checkOverrides +from redturtle.prenotazioni.content.validators import ( + PauseValidator, + checkOverrides, +) try: from plone.app.dexterity import textindexer @@ -42,7 +45,9 @@ def get_from_form(form, fieldname): return value return None - number_of_entry = request.form.get("form.widgets.{}.count".format(fieldname)) + number_of_entry = request.form.get( + "form.widgets.{}.count".format(fieldname) + ) data = [] prefix = "form.widgets.{}".format(fieldname) for counter in range(int(number_of_entry)): @@ -82,7 +87,9 @@ class IWeekTableRow(model.Schema): ) afternoon_start = schema.Choice( - title=_("afternoon_start_label", default="Start time in the afternoon"), + title=_( + "afternoon_start_label", default="Start time in the afternoon" + ), vocabulary="redturtle.prenotazioni.VocOreInizio", required=False, ) @@ -130,6 +137,11 @@ class IBookingTypeRow(Interface): required=True, vocabulary="redturtle.prenotazioni.VocDurataIncontro", ) + hidden = schema.Bool( + title=_("Hidden type"), + required=False, + default=False, + ) @provider(IContextAwareDefaultFactory) @@ -217,7 +229,9 @@ class IPrenotazioniFolder(model.Schema): descriptionAgenda = RichText( required=False, title=_("Descrizione Agenda", default="Descrizione Agenda"), - description=_("Inserire il testo di presentazione dell'agenda corrente"), + description=_( + "Inserire il testo di presentazione dell'agenda corrente" + ), ) form.mode(descriptionAgenda="display") @@ -232,7 +246,9 @@ class IPrenotazioniFolder(model.Schema): directives.widget(visible_booking_fields=CheckBoxFieldWidget) visible_booking_fields = schema.List( - title=_("label_visible_booking_fields", default="Visible booking fields"), + title=_( + "label_visible_booking_fields", default="Visible booking fields" + ), description=_( "help_visible_booking_fields", "User will not be able to add a booking unless those " @@ -250,7 +266,9 @@ class IPrenotazioniFolder(model.Schema): directives.widget(required_booking_fields=CheckBoxFieldWidget) required_booking_fields = schema.List( - title=_("label_required_booking_fields", default="Required booking fields"), + title=_( + "label_required_booking_fields", default="Required booking fields" + ), description=_( "help_required_booking_fields", "User will not be able to add a booking unless those " @@ -442,7 +460,9 @@ def get_options(): "booking_types_help", default="Put booking types there (one per line).\n" "If you do not provide this field, " - "not type selection will be available", + "not type selection will be available. " + "If the 'Hidden Type' flag is selected the type will only " + "be available to users with the 'Bookings Manager' permission", ), value_type=DictRow(schema=IBookingTypeRow), ) @@ -500,10 +520,14 @@ def data_validation(data): raise Invalid(_("You should set a start time for afternoon.")) if interval["morning_start"] and interval["morning_end"]: if interval["morning_start"] > interval["morning_end"]: - raise Invalid(_("Morning start should not be greater than end.")) + raise Invalid( + _("Morning start should not be greater than end.") + ) if interval["afternoon_start"] and interval["afternoon_end"]: if interval["afternoon_start"] > interval["afternoon_end"]: - raise Invalid(_("Afternoon start should not be greater than end.")) + raise Invalid( + _("Afternoon start should not be greater than end.") + ) # TODO: definire o descrivere quando avviee la notifica # TODO: inserire qui la chiave IO ? o su un config in zope.conf/environment ? diff --git a/src/redturtle/prenotazioni/locales/en/LC_MESSAGES/redturtle.prenotazioni.po b/src/redturtle/prenotazioni/locales/en/LC_MESSAGES/redturtle.prenotazioni.po index a8278319..315cfd62 100644 --- a/src/redturtle/prenotazioni/locales/en/LC_MESSAGES/redturtle.prenotazioni.po +++ b/src/redturtle/prenotazioni/locales/en/LC_MESSAGES/redturtle.prenotazioni.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2023-10-04 08:21+0000\n" +"POT-Creation-Date: 2023-10-12 14:21+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -39,12 +39,12 @@ msgstr "" msgid "Add moved booking Mail Action" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:506 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 #: redturtle/prenotazioni/content/validators.py:215 msgid "Afternoon start should not be greater than end." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:516 msgid "App IO notification" msgstr "" @@ -119,23 +119,23 @@ msgid "Content listing" msgstr "" #. Default: "Cosa serve" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:227 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:232 msgid "Cosa serve" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:271 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:276 msgid "Data fine validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:268 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:273 msgid "Data inizio validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:640 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:645 msgid "Date validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:430 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:435 msgid "Days booking is not allowed before" msgstr "" @@ -143,7 +143,7 @@ msgid "Delete" msgstr "" #. Default: "Descrizione Agenda" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:219 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:224 msgid "Descrizione Agenda" msgstr "" @@ -161,7 +161,7 @@ msgstr "" msgid "Edit moved booking Mail Action" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:228 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:233 msgid "Elencare le informazioni utili per il giorno della prenotazione, come ad esempio i documenti da presentare." msgstr "" @@ -190,6 +190,10 @@ msgstr "" msgid "Group" msgstr "" +#: redturtle/prenotazioni/content/prenotazioni_folder.py:134 +msgid "Hidden type" +msgstr "" + #. Default: "How to get here" #: redturtle/prenotazioni/behaviors/booking_folder.py:18 msgid "How to get here" @@ -203,11 +207,11 @@ msgstr "" msgid "Informations about a single booking" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:220 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:225 msgid "Inserire il testo di presentazione dell'agenda corrente" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:476 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:481 msgid "Insert a list of email addresses that will be notified when new bookings get created." msgstr "" @@ -231,11 +235,11 @@ msgstr "" msgid "Insert here the contact phone" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:381 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:386 msgid "Insert pause table schema." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:304 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:309 msgid "Insert week table schema." msgstr "" @@ -243,7 +247,7 @@ msgstr "" msgid "Installs the redturtle.prenotazioni add-on." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:418 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:423 msgid "Max days in the future" msgstr "" @@ -255,7 +259,7 @@ msgstr "" msgid "Monday" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:508 #: redturtle/prenotazioni/content/validators.py:210 msgid "Morning start should not be greater than end." msgstr "" @@ -274,7 +278,7 @@ msgstr "" msgid "Nessuno slot creato, verificare la corretteza dei dati inseriti" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:283 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:288 msgid "No" msgstr "" @@ -290,7 +294,7 @@ msgstr "" msgid "Pause should be included in morning slot or afternoon slot" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:380 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:385 msgid "Pause table" msgstr "" @@ -330,7 +334,7 @@ msgstr "" msgid "Required input is missing." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:475 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:480 msgid "Responsible email" msgstr "" @@ -493,11 +497,11 @@ msgstr "" msgid "Wednesday" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:303 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:308 msgid "Week table" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:282 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:287 msgid "Yes" msgstr "" @@ -509,27 +513,27 @@ msgstr "" msgid "You must set both start and end" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:500 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:505 #: redturtle/prenotazioni/content/validators.py:205 msgid "You should set a start time for afternoon." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:501 #: redturtle/prenotazioni/content/validators.py:197 msgid "You should set a start time for morning." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:498 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 #: redturtle/prenotazioni/content/validators.py:201 msgid "You should set an end time for afternoon." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:494 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:499 #: redturtle/prenotazioni/content/validators.py:193 msgid "You should set an end time for morning." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:491 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 msgid "You should set at least one booking type." msgstr "" @@ -538,7 +542,7 @@ msgid "[DEPRECATED] The booking print url with delete token." msgstr "" #. Default: "Leave empty, and this Booking Folder will never expire" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:272 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:277 msgid "aData_help" msgstr "" @@ -576,12 +580,12 @@ msgid "afternoon_start_label" msgstr "" #. Default: "Automatically confirm." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:465 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:470 msgid "auto_confirm" msgstr "" #. Default: "All bookings will be automatically accepted." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:466 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:471 msgid "auto_confirm_help" msgstr "" @@ -655,12 +659,12 @@ msgid "booking_type_widget_warn_unavailable" msgstr "" #. Default: "Put booking types there (one per line).\nIf you do not provide this field, not type selection will be available" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:441 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:446 msgid "booking_types_help" msgstr "" #. Default: "Booking types" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:440 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:445 msgid "booking_types_label" msgstr "" @@ -778,17 +782,17 @@ msgid "fullname" msgstr "" #. Default: "Limit booking in the future to an amount of days in the future starting from the current day. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:419 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:424 msgid "futureDays" msgstr "" #. Default: "Put gates here (one per line)." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:458 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:463 msgid "gates_help" msgstr "" #. Default: "Gates" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:457 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:462 msgid "gates_label" msgstr "" @@ -797,12 +801,12 @@ msgid "help_prenotazione_add" msgstr "" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\", \"Mobile\", or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:254 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:259 msgid "help_required_booking_fields" msgstr "" #. Default: "States if it is not allowed to reserve a booking during the current day" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:293 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:298 msgid "help_same_day_booking_disallowed" msgstr "" @@ -812,17 +816,17 @@ msgid "help_tipologies" msgstr "" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\" or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:236 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:241 msgid "help_visible_booking_fields" msgstr "" #. Default: "Set holidays (one for line) in DD/MM/YYYY. you can write * for the year, if this event is yearly." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:394 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:399 msgid "holidays_help" msgstr "" #. Default: "Holidays" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:393 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:398 msgid "holidays_label" msgstr "" @@ -976,12 +980,12 @@ msgid "label_new_booking_notify_link" msgstr "" #. Default: "Required booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:253 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:258 msgid "label_required_booking_fields" msgstr "" #. Default: "Disallow same day booking" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:289 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:294 msgid "label_same_day_booking_disallowed" msgstr "" @@ -1023,7 +1027,7 @@ msgid "label_user" msgstr "" #. Default: "Visible booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:235 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:240 msgid "label_visible_booking_fields" msgstr "" @@ -1043,12 +1047,12 @@ msgid "legend_note" msgstr "" #. Default: "The number of simultaneous bookings allowed for the same user." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:630 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:635 msgid "max_bookings_allowed_description" msgstr "" #. Default: "Maximum bookings number allowed" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:626 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:631 msgid "max_bookings_allowed_label" msgstr "" @@ -1108,172 +1112,172 @@ msgid "next-week" msgstr "" #. Default: "Booking is not allowed before the amount of days specified. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:431 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:436 msgid "notBeforeDays" msgstr "" #. Default: "Notifications" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:670 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:675 msgid "notifications_label" msgstr "" #. Default: "Notify when confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:526 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:531 msgid "notify_on_confirm" msgstr "" #. Default: "Notify via mail the user when his booking has been confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:527 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:532 msgid "notify_on_confirm_help" msgstr "" #. Default: "Prenotazione confirmed notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:585 msgid "notify_on_confirm_message" msgstr "" #. Default: "The booking${booking_type} for ${title} was confirmed! Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:165 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:170 #: redturtle/prenotazioni/upgrades.py:252 msgid "notify_on_confirm_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:584 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 msgid "notify_on_confirm_message_help" msgstr "" #. Default: "Prenotazione confirmed notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:576 msgid "notify_on_confirm_subject" msgstr "" #. Default: "Booking of ${booking_date} at ${booking_time} was accepted" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:155 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:160 #: redturtle/prenotazioni/upgrades.py:245 msgid "notify_on_confirm_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:575 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 msgid "notify_on_confirm_subject_help" msgstr "" #. Default: "Notify when moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:535 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:540 msgid "notify_on_move" msgstr "" #. Default: "Notify via mail the user when his booking has been moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:536 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:541 msgid "notify_on_move_help" msgstr "" #. Default: "Prenotazione moved notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:603 msgid "notify_on_move_message" msgstr "" #. Default: "The booking scheduling of ${booking_type} was modified.The new one is on ${booking_date} at ${booking_time}. Link." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:185 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:190 #: redturtle/prenotazioni/upgrades.py:266 msgid "notify_on_move_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:602 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 msgid "notify_on_move_message_help" msgstr "" #. Default: "Prenotazione moved notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:594 msgid "notify_on_move_subject" msgstr "" #. Default: "Modified the boolking date for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:175 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:180 #: redturtle/prenotazioni/upgrades.py:259 msgid "notify_on_move_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:593 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 msgid "notify_on_move_subject_help" msgstr "" #. Default: "Notify when rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:544 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:549 msgid "notify_on_refuse" msgstr "" #. Default: "Notify via mail the user when his booking has been rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:545 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:550 msgid "notify_on_refuse_help" msgstr "" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:621 msgid "notify_on_refuse_message" msgstr "" #. Default: "The booking ${booking_type} of ${booking_date} at ${booking_time} was refused." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:206 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:211 #: redturtle/prenotazioni/upgrades.py:281 msgid "notify_on_refuse_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:620 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:625 msgid "notify_on_refuse_message_help" msgstr "" #. Default: "Prenotazione refused notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:612 msgid "notify_on_refuse_subject" msgstr "" #. Default: "Booking refused for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:196 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:201 #: redturtle/prenotazioni/upgrades.py:274 msgid "notify_on_refuse_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:611 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 msgid "notify_on_refuse_subject_help" msgstr "" #. Default: "Notify when created." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:517 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:522 msgid "notify_on_submit" msgstr "" #. Default: "Notify via mail the user when his booking has been created. If auto-confirm flag is selected and confirm notify is selected, this one will be ignored." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:518 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:523 msgid "notify_on_submit_help" msgstr "" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:567 msgid "notify_on_submit_message" msgstr "" #. Default: "Booking ${booking_type} for ${booking_date} at ${booking_time} was created.Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:145 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:150 #: redturtle/prenotazioni/upgrades.py:238 msgid "notify_on_submit_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:566 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 msgid "notify_on_submit_message_help" msgstr "" #. Default: "Prenotazione created notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:553 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:558 msgid "notify_on_submit_subject" msgstr "" #. Default: "Booking created ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:138 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:143 #: redturtle/prenotazioni/upgrades.py:234 msgid "notify_on_submit_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:557 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 msgid "notify_on_submit_subject_help" msgstr "" @@ -1298,7 +1302,7 @@ msgid "prenotation_slot_message" msgstr "" #. Default: "Testo delle email di notifica" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:680 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:685 msgid "prenotazioni_email_templates_label" msgstr "" @@ -1339,7 +1343,7 @@ msgid "reject_booking" msgstr "" #. Default: "Reminders" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:724 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:729 msgid "reminders_label" msgstr "" @@ -1438,12 +1442,12 @@ msgid "view_booking" msgstr "" #. Default: "Insert here week schema for some custom date intervals." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:371 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:376 msgid "week_table_overrides_help" msgstr "" #. Default: "Week table overrides" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:370 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:375 msgid "week_table_overrides_label" msgstr "" diff --git a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po index 607887b9..d48de03a 100644 --- a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po +++ b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2023-10-04 08:21+0000\n" +"POT-Creation-Date: 2023-10-12 14:21+0000\n" "PO-Revision-Date: 2014-05-27 17:36+0200\n" "Last-Translator: Alessandro Pisa \n" "Language-Team: American English \n" @@ -42,12 +42,12 @@ msgstr "Aggiungi" msgid "Add moved booking Mail Action" msgstr "Aggiungi Mail Action per lo spostamento delle prenotazioni" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:506 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 #: redturtle/prenotazioni/content/validators.py:215 msgid "Afternoon start should not be greater than end." msgstr "L'orario di inizio del pomeriggio non può essere successivo alla chiusura." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:516 msgid "App IO notification" msgstr "Notifiche App IO" @@ -122,23 +122,23 @@ msgid "Content listing" msgstr "Elenco dei contenuti" #. Default: "Cosa serve" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:227 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:232 msgid "Cosa serve" msgstr "Cosa serve" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:271 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:276 msgid "Data fine validità" msgstr "Data fine validità" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:268 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:273 msgid "Data inizio validità" msgstr "Data inizio validità" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:640 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:645 msgid "Date validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:430 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:435 msgid "Days booking is not allowed before" msgstr "Giorni da cui si può effettuare una prenotazione" @@ -146,7 +146,7 @@ msgid "Delete" msgstr "Elimina" #. Default: "Descrizione Agenda" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:219 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:224 msgid "Descrizione Agenda" msgstr "Descrizione Agenda" @@ -164,7 +164,7 @@ msgstr "Modifica" msgid "Edit moved booking Mail Action" msgstr "Modifica Mail Action per lo spostamento delle prenotazioni" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:228 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:233 msgid "Elencare le informazioni utili per il giorno della prenotazione, come ad esempio i documenti da presentare." msgstr "Elencare le informazioni utili per il giorno della prenotazione, come ad esempio i documenti da presentare." @@ -193,6 +193,10 @@ msgstr "Postazione" msgid "Group" msgstr "Gruppo" +#: redturtle/prenotazioni/content/prenotazioni_folder.py:134 +msgid "Hidden type" +msgstr "Tipologia pernotazione privata ad uso operatore" + #. Default: "How to get here" #: redturtle/prenotazioni/behaviors/booking_folder.py:18 msgid "How to get here" @@ -206,11 +210,11 @@ msgstr "Ci sono pause che si sovrappongono nello stesso giorno" msgid "Informations about a single booking" msgstr "Informazioni relativa ad una singola prenotazione" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:220 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:225 msgid "Inserire il testo di presentazione dell'agenda corrente" msgstr "Inserire il testo di presentazione dell'agenda corrente" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:476 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:481 msgid "Insert a list of email addresses that will be notified when new bookings get created." msgstr "Inserisci una lista di indirizzi email che verranno notificati alla creazione di una nuova prenotazione." @@ -234,11 +238,11 @@ msgstr "Inserire il numero di FAX per per contattare l'ufficio" msgid "Insert here the contact phone" msgstr "Inserire il numero di telefono per contattare l'ufficio" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:381 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:386 msgid "Insert pause table schema." msgstr "Inserisci le pause giornaliere. Esistono tre tipi di vincolo: una data di termine pausa deve essere maggiore della data di inizio pausa; le pause nello stesso giorno non possono sovrapporsi; le pause devono essere comprese fra l'inizio e la fine dell'orario di lavoro." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:304 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:309 msgid "Insert week table schema." msgstr "Compila la tabella degli orari della settimana." @@ -246,7 +250,7 @@ msgstr "Compila la tabella degli orari della settimana." msgid "Installs the redturtle.prenotazioni add-on." msgstr "Install redturtle.prenotazioni" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:418 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:423 msgid "Max days in the future" msgstr "Massimi giorni nel futuro" @@ -258,7 +262,7 @@ msgstr "Messaggio" msgid "Monday" msgstr "Lunedì" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:508 #: redturtle/prenotazioni/content/validators.py:210 msgid "Morning start should not be greater than end." msgstr "L'orario di inizio della mattina non può essere successivo alla fine." @@ -277,7 +281,7 @@ msgstr "Sposta in su" msgid "Nessuno slot creato, verificare la corretteza dei dati inseriti" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:283 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:288 msgid "No" msgstr "No" @@ -293,7 +297,7 @@ msgstr "Il termine della pausa non può avvenire prima del suo inizio" msgid "Pause should be included in morning slot or afternoon slot" msgstr "Le pause devono essere comprese tra l'orario di inizio o di termine dell'intervallo di orari di lavoro" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:380 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:385 msgid "Pause table" msgstr "Schedulazione delle pause" @@ -333,7 +337,7 @@ msgstr "Campo obbligatorio '${field}' mancante." msgid "Required input is missing." msgstr "Manca l'input obbligatorio." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:475 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:480 msgid "Responsible email" msgstr "Email del responsabile" @@ -496,11 +500,11 @@ msgstr "Vista" msgid "Wednesday" msgstr "Mercoledì" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:303 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:308 msgid "Week table" msgstr "Schedulazione settimanale" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:282 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:287 msgid "Yes" msgstr "Si" @@ -512,27 +516,27 @@ msgstr "" msgid "You must set both start and end" msgstr "Devi impostare sia un orario di inizio che di termine della pausa" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:500 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:505 #: redturtle/prenotazioni/content/validators.py:205 msgid "You should set a start time for afternoon." msgstr "Devi impostare una data di inizio per il pomeriggio." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:501 #: redturtle/prenotazioni/content/validators.py:197 msgid "You should set a start time for morning." msgstr "Devi impostare una data di inizio per la mattina." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:498 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 #: redturtle/prenotazioni/content/validators.py:201 msgid "You should set an end time for afternoon." msgstr "Devi impostare una data di fine per il pomeriggio." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:494 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:499 #: redturtle/prenotazioni/content/validators.py:193 msgid "You should set an end time for morning." msgstr "Devi impostare una data di fine per la mattina." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:491 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 msgid "You should set at least one booking type." msgstr "Devi impostare almeno una tipologia di prenotazione." @@ -541,7 +545,7 @@ msgid "[DEPRECATED] The booking print url with delete token." msgstr "[DEPRECATO] L'url della prenotazione con il token per la cancellazione." #. Default: "Leave empty, and this Booking Folder will never expire" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:272 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:277 msgid "aData_help" msgstr "Lascia vuoto, e questa Cartella Prenotazioni non avrà scadenza" @@ -579,12 +583,12 @@ msgid "afternoon_start_label" msgstr "Apertura pomeriggio" #. Default: "Automatically confirm." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:465 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:470 msgid "auto_confirm" msgstr "Conferma automatica delle prenotazioni" #. Default: "All bookings will be automatically accepted." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:466 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:471 msgid "auto_confirm_help" msgstr "Tutte le prenotazioni verranno accettate automaticamente" @@ -659,12 +663,12 @@ msgid "booking_type_widget_warn_unavailable" msgstr "Le seguenti tipologie non sono selezionabili nell'orario selezionato:" #. Default: "Put booking types there (one per line).\nIf you do not provide this field, not type selection will be available" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:441 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:446 msgid "booking_types_help" -msgstr "Inserisci le tipologie di prenotazioni." +msgstr "Inserisci le tipologie di prenotazioni, se private potranno inserire gli appuntamenti solo gli operatori dell'Ente" #. Default: "Booking types" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:440 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:445 msgid "booking_types_label" msgstr "Tipologie di prenotazioni" @@ -782,17 +786,17 @@ msgid "fullname" msgstr "Nome completo" #. Default: "Limit booking in the future to an amount of days in the future starting from the current day. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:419 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:424 msgid "futureDays" msgstr "Limita la prenotazione ad un certo numero di giorni nel futuro partendo dal day corrente.Lascia 0 per non dare limiti." #. Default: "Put gates here (one per line)." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:458 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:463 msgid "gates_help" msgstr "Inserisci le postazioni preposte (uno per riga)." #. Default: "Gates" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:457 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:462 msgid "gates_label" msgstr "Postazioni preposte" @@ -801,12 +805,12 @@ msgid "help_prenotazione_add" msgstr "" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\", \"Mobile\", or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:254 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:259 msgid "help_required_booking_fields" msgstr "Gli utenti non saranno in grado di creare una prenotazione senza compilare i seguenti campi. Gli utenti saranno comunque sempre obbligati ad inserire un'email o un recapito telefonico." #. Default: "States if it is not allowed to reserve a booking during the current day" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:293 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:298 msgid "help_same_day_booking_disallowed" msgstr "Se selezionato, impedisce agli utenti di prenotare per il giorno corrente." @@ -816,17 +820,17 @@ msgid "help_tipologies" msgstr "Lista dei tipi di prenotazione disponibili per l'agenda corrente" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\" or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:236 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:241 msgid "help_visible_booking_fields" msgstr "Gli utenti vedranno solo i campi selezionati all'atto della creazione della prenotazione." #. Default: "Set holidays (one for line) in DD/MM/YYYY. you can write * for the year, if this event is yearly." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:394 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:399 msgid "holidays_help" msgstr "Imposta eventuali festività (una per riga) nel formato GG/MM/AAAA. Se la data si ripete ogni anno, puoi scrivere * al posto dell'anno." #. Default: "Holidays" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:393 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:398 msgid "holidays_label" msgstr "Festività" @@ -982,12 +986,12 @@ msgid "label_new_booking_notify_link" msgstr "Vai alla prenotazione per gestirla e vedere maggiori dettagli" #. Default: "Required booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:253 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:258 msgid "label_required_booking_fields" msgstr "Campi obbligatori" #. Default: "Disallow same day booking" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:289 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:294 msgid "label_same_day_booking_disallowed" msgstr "Disabilita la prenotazione per lo stesso giorno" @@ -1029,7 +1033,7 @@ msgid "label_user" msgstr "Utente" #. Default: "Visible booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:235 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:240 msgid "label_visible_booking_fields" msgstr "Campi da visualizzare" @@ -1049,12 +1053,12 @@ msgid "legend_note" msgstr "L'unità di tempo minima è 5 minuti. La tua prenotazione non può eccedere il tempo disponibile." #. Default: "The number of simultaneous bookings allowed for the same user." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:630 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:635 msgid "max_bookings_allowed_description" msgstr "Numero massimo delle prenotazioni contemporanee per una stessa tipologia, per lo stesso utente. Impostare '0' o lasciare vuoto per non porre limitazioni. Per attivare questo controllo è necessario richiedere obbligatoriamente all'utente il campo 'codice fiscale'" #. Default: "Maximum bookings number allowed" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:626 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:631 msgid "max_bookings_allowed_label" msgstr "Numero massimo delle prenotazioni" @@ -1114,172 +1118,172 @@ msgid "next-week" msgstr "Settimana successiva" #. Default: "Booking is not allowed before the amount of days specified. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:431 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:436 msgid "notBeforeDays" msgstr "La prenotazione non e' permessa prima del numero di giorni specificata. Impostare il valore 0 per non imporre limitazioni." #. Default: "Notifications" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:670 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:675 msgid "notifications_label" msgstr "Notifiche email" #. Default: "Notify when confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:526 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:531 msgid "notify_on_confirm" msgstr "Notifica alla conferma" #. Default: "Notify via mail the user when his booking has been confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:527 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:532 msgid "notify_on_confirm_help" msgstr "Notifica l'utente via email quando la prenotazione viene confermata." #. Default: "Prenotazione confirmed notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:585 msgid "notify_on_confirm_message" msgstr "Testo notifica prenotazione confermata" #. Default: "The booking${booking_type} for ${title} was confirmed! Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:165 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:170 #: redturtle/prenotazioni/upgrades.py:252 msgid "notify_on_confirm_message_default_value" msgstr "La prenotazione ${booking_type} per ${title} è stata confermata! Se non hai salvato o stampato il promemoria, puoi visualizzarlo su questo link Se desideri cancellare la prenotazione, accedi a questo link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:584 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 msgid "notify_on_confirm_message_help" msgstr "" #. Default: "Prenotazione confirmed notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:576 msgid "notify_on_confirm_subject" msgstr "Oggetto notifica prenotazione confermata" #. Default: "Booking of ${booking_date} at ${booking_time} was accepted" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:155 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:160 #: redturtle/prenotazioni/upgrades.py:245 msgid "notify_on_confirm_subject_default_value" msgstr "Prenotazione del ${booking_date} alle ${booking_time} accettata" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:575 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 msgid "notify_on_confirm_subject_help" msgstr "" #. Default: "Notify when moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:535 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:540 msgid "notify_on_move" msgstr "Notifica se la prenotazione è stata spostata" #. Default: "Notify via mail the user when his booking has been moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:536 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:541 msgid "notify_on_move_help" msgstr "Notifica l'utente via mail quando la prenotazione viene spostata." #. Default: "Prenotazione moved notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:603 msgid "notify_on_move_message" msgstr "Testo notifica prenotazione spostata" #. Default: "The booking scheduling of ${booking_type} was modified.The new one is on ${booking_date} at ${booking_time}. Link." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:185 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:190 #: redturtle/prenotazioni/upgrades.py:266 msgid "notify_on_move_message_default_value" msgstr "L'orario della sua prenotazione ${booking_type} è stata modificata. La nuova data è ${booking_date} alle ore ${booking_time}. Controlla o stampa il nuovo promemoria su questo link." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:602 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 msgid "notify_on_move_message_help" msgstr "" #. Default: "Prenotazione moved notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:594 msgid "notify_on_move_subject" msgstr "Oggetto notifica prenotazione spostata" #. Default: "Modified the boolking date for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:175 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:180 #: redturtle/prenotazioni/upgrades.py:259 msgid "notify_on_move_subject_default_value" msgstr "Modifica data di prenotazione per ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:593 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 msgid "notify_on_move_subject_help" msgstr "" #. Default: "Notify when rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:544 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:549 msgid "notify_on_refuse" msgstr "Notifica se viene cancellata" #. Default: "Notify via mail the user when his booking has been rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:545 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:550 msgid "notify_on_refuse_help" msgstr "Notifica l'utente via mail se la prenotazione viene cancellata" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:621 msgid "notify_on_refuse_message" msgstr "Testo notifica prenotazione rifiutata" #. Default: "The booking ${booking_type} of ${booking_date} at ${booking_time} was refused." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:206 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:211 #: redturtle/prenotazioni/upgrades.py:281 msgid "notify_on_refuse_message_default_value" msgstr "La prenotazione ${booking_type} del ${booking_date} delle ore ${booking_time} è stata rifiutata." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:620 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:625 msgid "notify_on_refuse_message_help" msgstr "" #. Default: "Prenotazione refused notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:612 msgid "notify_on_refuse_subject" msgstr "Oggetto notifica prenotazione rifiutata" #. Default: "Booking refused for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:196 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:201 #: redturtle/prenotazioni/upgrades.py:274 msgid "notify_on_refuse_subject_default_value" msgstr "Prenotazione rifiutata per ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:611 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 msgid "notify_on_refuse_subject_help" msgstr "" #. Default: "Notify when created." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:517 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:522 msgid "notify_on_submit" msgstr "Notifica alla prenotazione creata" #. Default: "Notify via mail the user when his booking has been created. If auto-confirm flag is selected and confirm notify is selected, this one will be ignored." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:518 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:523 msgid "notify_on_submit_help" msgstr "Notifica l'utente via email quando la prenotazione viene creata. Se il flag di conferma automatica è stato selezionato, l'opzione corrente sarà ignorata" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:567 msgid "notify_on_submit_message" msgstr "Testo notifica prenotazione creata" #. Default: "Booking ${booking_type} for ${booking_date} at ${booking_time} was created.Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:145 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:150 #: redturtle/prenotazioni/upgrades.py:238 msgid "notify_on_submit_message_default_value" msgstr "La prenotazione ${booking_type} per il ${booking_date} alle ${booking_time} è stata creata. Riceverete una mail di conferma quando la prenotazione verrà confermata definitivamente. Se non hai salvato o stampato il promemoria, puoi visualizzarlo questo link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:566 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 msgid "notify_on_submit_message_help" msgstr "" #. Default: "Prenotazione created notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:553 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:558 msgid "notify_on_submit_subject" msgstr "Oggetto notifica prenotazione creata" #. Default: "Booking created ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:138 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:143 #: redturtle/prenotazioni/upgrades.py:234 msgid "notify_on_submit_subject_default_value" msgstr "Prenotazione creata correttamente per ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:557 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 msgid "notify_on_submit_subject_help" msgstr "" @@ -1304,7 +1308,7 @@ msgid "prenotation_slot_message" msgstr "${day}, ore ${booking_time}" #. Default: "Testo delle email di notifica" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:680 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:685 #, fuzzy msgid "prenotazioni_email_templates_label" msgstr "Testo delle email di notifica" @@ -1346,7 +1350,7 @@ msgid "reject_booking" msgstr "Rifiuta la prenotazione" #. Default: "Reminders" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:724 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:729 msgid "reminders_label" msgstr "Promemoria" @@ -1445,12 +1449,12 @@ msgid "view_booking" msgstr "Vedi la prenotazione" #. Default: "Insert here week schema for some custom date intervals." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:371 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:376 msgid "week_table_overrides_help" msgstr "Inserisci qui eventuali personalizzazioni nella schedulazione settimanale che andranno a vincere su quella standard per un determinato periodo di tempo." #. Default: "Week table overrides" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:370 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:375 msgid "week_table_overrides_label" msgstr "Personalizzazioni schedulazione settimanale" diff --git a/src/redturtle/prenotazioni/locales/redturtle.prenotazioni.pot b/src/redturtle/prenotazioni/locales/redturtle.prenotazioni.pot index 475456a4..e6973e6d 100644 --- a/src/redturtle/prenotazioni/locales/redturtle.prenotazioni.pot +++ b/src/redturtle/prenotazioni/locales/redturtle.prenotazioni.pot @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2023-10-04 08:21+0000\n" +"POT-Creation-Date: 2023-10-12 14:22+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -42,12 +42,12 @@ msgstr "" msgid "Add moved booking Mail Action" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:506 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 #: redturtle/prenotazioni/content/validators.py:215 msgid "Afternoon start should not be greater than end." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:511 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:516 msgid "App IO notification" msgstr "" @@ -122,23 +122,23 @@ msgid "Content listing" msgstr "" #. Default: "Cosa serve" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:227 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:232 msgid "Cosa serve" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:271 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:276 msgid "Data fine validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:268 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:273 msgid "Data inizio validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:640 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:645 msgid "Date validità" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:430 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:435 msgid "Days booking is not allowed before" msgstr "" @@ -146,7 +146,7 @@ msgid "Delete" msgstr "" #. Default: "Descrizione Agenda" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:219 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:224 msgid "Descrizione Agenda" msgstr "" @@ -164,7 +164,7 @@ msgstr "" msgid "Edit moved booking Mail Action" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:228 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:233 msgid "Elencare le informazioni utili per il giorno della prenotazione, come ad esempio i documenti da presentare." msgstr "" @@ -193,6 +193,10 @@ msgstr "" msgid "Group" msgstr "" +#: redturtle/prenotazioni/content/prenotazioni_folder.py:134 +msgid "Hidden type" +msgstr "" + #. Default: "How to get here" #: redturtle/prenotazioni/behaviors/booking_folder.py:18 msgid "How to get here" @@ -206,11 +210,11 @@ msgstr "" msgid "Informations about a single booking" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:220 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:225 msgid "Inserire il testo di presentazione dell'agenda corrente" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:476 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:481 msgid "Insert a list of email addresses that will be notified when new bookings get created." msgstr "" @@ -234,11 +238,11 @@ msgstr "" msgid "Insert here the contact phone" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:381 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:386 msgid "Insert pause table schema." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:304 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:309 msgid "Insert week table schema." msgstr "" @@ -246,7 +250,7 @@ msgstr "" msgid "Installs the redturtle.prenotazioni add-on." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:418 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:423 msgid "Max days in the future" msgstr "" @@ -258,7 +262,7 @@ msgstr "" msgid "Monday" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:508 #: redturtle/prenotazioni/content/validators.py:210 msgid "Morning start should not be greater than end." msgstr "" @@ -277,7 +281,7 @@ msgstr "" msgid "Nessuno slot creato, verificare la corretteza dei dati inseriti" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:283 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:288 msgid "No" msgstr "" @@ -293,7 +297,7 @@ msgstr "" msgid "Pause should be included in morning slot or afternoon slot" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:380 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:385 msgid "Pause table" msgstr "" @@ -333,7 +337,7 @@ msgstr "" msgid "Required input is missing." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:475 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:480 msgid "Responsible email" msgstr "" @@ -496,11 +500,11 @@ msgstr "" msgid "Wednesday" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:303 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:308 msgid "Week table" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:282 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:287 msgid "Yes" msgstr "" @@ -512,27 +516,27 @@ msgstr "" msgid "You must set both start and end" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:500 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:505 #: redturtle/prenotazioni/content/validators.py:205 msgid "You should set a start time for afternoon." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:501 #: redturtle/prenotazioni/content/validators.py:197 msgid "You should set a start time for morning." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:498 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:503 #: redturtle/prenotazioni/content/validators.py:201 msgid "You should set an end time for afternoon." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:494 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:499 #: redturtle/prenotazioni/content/validators.py:193 msgid "You should set an end time for morning." msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:491 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:496 msgid "You should set at least one booking type." msgstr "" @@ -541,7 +545,7 @@ msgid "[DEPRECATED] The booking print url with delete token." msgstr "" #. Default: "Leave empty, and this Booking Folder will never expire" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:272 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:277 msgid "aData_help" msgstr "" @@ -579,12 +583,12 @@ msgid "afternoon_start_label" msgstr "" #. Default: "Automatically confirm." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:465 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:470 msgid "auto_confirm" msgstr "" #. Default: "All bookings will be automatically accepted." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:466 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:471 msgid "auto_confirm_help" msgstr "" @@ -658,12 +662,12 @@ msgid "booking_type_widget_warn_unavailable" msgstr "" #. Default: "Put booking types there (one per line).\nIf you do not provide this field, not type selection will be available" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:441 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:446 msgid "booking_types_help" msgstr "" #. Default: "Booking types" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:440 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:445 msgid "booking_types_label" msgstr "" @@ -781,17 +785,17 @@ msgid "fullname" msgstr "" #. Default: "Limit booking in the future to an amount of days in the future starting from the current day. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:419 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:424 msgid "futureDays" msgstr "" #. Default: "Put gates here (one per line)." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:458 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:463 msgid "gates_help" msgstr "" #. Default: "Gates" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:457 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:462 msgid "gates_label" msgstr "" @@ -800,12 +804,12 @@ msgid "help_prenotazione_add" msgstr "" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\", \"Mobile\", or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:254 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:259 msgid "help_required_booking_fields" msgstr "" #. Default: "States if it is not allowed to reserve a booking during the current day" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:293 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:298 msgid "help_same_day_booking_disallowed" msgstr "" @@ -815,17 +819,17 @@ msgid "help_tipologies" msgstr "" #. Default: "User will not be able to add a booking unless those fields are filled. Remember that, whatever you selected in this list, users have to supply at least one of \"Email\" or \"Telephone\"" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:236 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:241 msgid "help_visible_booking_fields" msgstr "" #. Default: "Set holidays (one for line) in DD/MM/YYYY. you can write * for the year, if this event is yearly." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:394 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:399 msgid "holidays_help" msgstr "" #. Default: "Holidays" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:393 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:398 msgid "holidays_label" msgstr "" @@ -979,12 +983,12 @@ msgid "label_new_booking_notify_link" msgstr "" #. Default: "Required booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:253 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:258 msgid "label_required_booking_fields" msgstr "" #. Default: "Disallow same day booking" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:289 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:294 msgid "label_same_day_booking_disallowed" msgstr "" @@ -1026,7 +1030,7 @@ msgid "label_user" msgstr "" #. Default: "Visible booking fields" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:235 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:240 msgid "label_visible_booking_fields" msgstr "" @@ -1046,12 +1050,12 @@ msgid "legend_note" msgstr "" #. Default: "The number of simultaneous bookings allowed for the same user." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:630 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:635 msgid "max_bookings_allowed_description" msgstr "" #. Default: "Maximum bookings number allowed" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:626 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:631 msgid "max_bookings_allowed_label" msgstr "" @@ -1111,172 +1115,172 @@ msgid "next-week" msgstr "" #. Default: "Booking is not allowed before the amount of days specified. \nKeep 0 to give no limits." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:431 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:436 msgid "notBeforeDays" msgstr "" #. Default: "Notifications" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:670 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:675 msgid "notifications_label" msgstr "" #. Default: "Notify when confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:526 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:531 msgid "notify_on_confirm" msgstr "" #. Default: "Notify via mail the user when his booking has been confirmed." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:527 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:532 msgid "notify_on_confirm_help" msgstr "" #. Default: "Prenotazione confirmed notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:585 msgid "notify_on_confirm_message" msgstr "" #. Default: "The booking${booking_type} for ${title} was confirmed! Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:165 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:170 #: redturtle/prenotazioni/upgrades.py:252 msgid "notify_on_confirm_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:584 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 msgid "notify_on_confirm_message_help" msgstr "" #. Default: "Prenotazione confirmed notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:576 msgid "notify_on_confirm_subject" msgstr "" #. Default: "Booking of ${booking_date} at ${booking_time} was accepted" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:155 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:160 #: redturtle/prenotazioni/upgrades.py:245 msgid "notify_on_confirm_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:575 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:580 msgid "notify_on_confirm_subject_help" msgstr "" #. Default: "Notify when moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:535 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:540 msgid "notify_on_move" msgstr "" #. Default: "Notify via mail the user when his booking has been moved." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:536 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:541 msgid "notify_on_move_help" msgstr "" #. Default: "Prenotazione moved notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:603 msgid "notify_on_move_message" msgstr "" #. Default: "The booking scheduling of ${booking_type} was modified.The new one is on ${booking_date} at ${booking_time}. Link." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:185 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:190 #: redturtle/prenotazioni/upgrades.py:266 msgid "notify_on_move_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:602 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 msgid "notify_on_move_message_help" msgstr "" #. Default: "Prenotazione moved notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:589 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:594 msgid "notify_on_move_subject" msgstr "" #. Default: "Modified the boolking date for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:175 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:180 #: redturtle/prenotazioni/upgrades.py:259 msgid "notify_on_move_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:593 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:598 msgid "notify_on_move_subject_help" msgstr "" #. Default: "Notify when rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:544 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:549 msgid "notify_on_refuse" msgstr "" #. Default: "Notify via mail the user when his booking has been rejected." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:545 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:550 msgid "notify_on_refuse_help" msgstr "" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:621 msgid "notify_on_refuse_message" msgstr "" #. Default: "The booking ${booking_type} of ${booking_date} at ${booking_time} was refused." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:206 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:211 #: redturtle/prenotazioni/upgrades.py:281 msgid "notify_on_refuse_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:620 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:625 msgid "notify_on_refuse_message_help" msgstr "" #. Default: "Prenotazione refused notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:607 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:612 msgid "notify_on_refuse_subject" msgstr "" #. Default: "Booking refused for ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:196 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:201 #: redturtle/prenotazioni/upgrades.py:274 msgid "notify_on_refuse_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:611 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:616 msgid "notify_on_refuse_subject_help" msgstr "" #. Default: "Notify when created." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:517 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:522 msgid "notify_on_submit" msgstr "" #. Default: "Notify via mail the user when his booking has been created. If auto-confirm flag is selected and confirm notify is selected, this one will be ignored." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:518 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:523 msgid "notify_on_submit_help" msgstr "" #. Default: "Prenotazione created notification message." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:567 msgid "notify_on_submit_message" msgstr "" #. Default: "Booking ${booking_type} for ${booking_date} at ${booking_time} was created.Link" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:145 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:150 #: redturtle/prenotazioni/upgrades.py:238 msgid "notify_on_submit_message_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:566 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:571 msgid "notify_on_submit_message_help" msgstr "" #. Default: "Prenotazione created notification subject." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:553 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:558 msgid "notify_on_submit_subject" msgstr "" #. Default: "Booking created ${title}" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:138 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:143 #: redturtle/prenotazioni/upgrades.py:234 msgid "notify_on_submit_subject_default_value" msgstr "" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:557 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:562 msgid "notify_on_submit_subject_help" msgstr "" @@ -1301,7 +1305,7 @@ msgid "prenotation_slot_message" msgstr "" #. Default: "Testo delle email di notifica" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:680 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:685 msgid "prenotazioni_email_templates_label" msgstr "" @@ -1342,7 +1346,7 @@ msgid "reject_booking" msgstr "" #. Default: "Reminders" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:724 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:729 msgid "reminders_label" msgstr "" @@ -1441,12 +1445,12 @@ msgid "view_booking" msgstr "" #. Default: "Insert here week schema for some custom date intervals." -#: redturtle/prenotazioni/content/prenotazioni_folder.py:371 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:376 msgid "week_table_overrides_help" msgstr "" #. Default: "Week table overrides" -#: redturtle/prenotazioni/content/prenotazioni_folder.py:370 +#: redturtle/prenotazioni/content/prenotazioni_folder.py:375 msgid "week_table_overrides_label" msgstr "" diff --git a/src/redturtle/prenotazioni/permissions.zcml b/src/redturtle/prenotazioni/permissions.zcml index 5393ebb6..2c0ca424 100644 --- a/src/redturtle/prenotazioni/permissions.zcml +++ b/src/redturtle/prenotazioni/permissions.zcml @@ -46,6 +46,11 @@ title="redturtle.prenotazioni: Manage Prenotazioni" /> + + diff --git a/src/redturtle/prenotazioni/profiles/default/metadata.xml b/src/redturtle/prenotazioni/profiles/default/metadata.xml index 3b8bb6db..b0ea2fda 100644 --- a/src/redturtle/prenotazioni/profiles/default/metadata.xml +++ b/src/redturtle/prenotazioni/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 1805 + 1806 profile-plone.app.dexterity:default profile-collective.z3cform.datagridfield:default diff --git a/src/redturtle/prenotazioni/profiles/default/rolemap.xml b/src/redturtle/prenotazioni/profiles/default/rolemap.xml index fff054e0..214bbabc 100644 --- a/src/redturtle/prenotazioni/profiles/default/rolemap.xml +++ b/src/redturtle/prenotazioni/profiles/default/rolemap.xml @@ -53,5 +53,11 @@ + + + + + + diff --git a/src/redturtle/prenotazioni/restapi/serializers/adapters/configure.zcml b/src/redturtle/prenotazioni/restapi/serializers/adapters/configure.zcml index 4b43a5ea..851d9788 100644 --- a/src/redturtle/prenotazioni/restapi/serializers/adapters/configure.zcml +++ b/src/redturtle/prenotazioni/restapi/serializers/adapters/configure.zcml @@ -6,5 +6,6 @@ + diff --git a/src/redturtle/prenotazioni/restapi/serializers/adapters/prenotazioni_folder.py b/src/redturtle/prenotazioni/restapi/serializers/adapters/prenotazioni_folder.py new file mode 100644 index 00000000..3025ab30 --- /dev/null +++ b/src/redturtle/prenotazioni/restapi/serializers/adapters/prenotazioni_folder.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from plone import api +from plone.restapi.interfaces import ISerializeToJson +from plone.restapi.serializer.dxcontent import SerializeFolderToJson +from zope.component import adapter +from zope.interface import implementer + +from redturtle.prenotazioni.content.prenotazioni_folder import IPrenotazioniFolder +from redturtle.prenotazioni.interfaces import IRedturtlePrenotazioniLayer + + +@implementer(ISerializeToJson) +@adapter(IPrenotazioniFolder, IRedturtlePrenotazioniLayer) +class PrenotazioniFolderSerializer(SerializeFolderToJson): + def __call__(self, *args, **kwargs): + res = super().__call__() + + if res.get("booking_types"): + if api.user.has_permission("redturtle.prenotazioni.ViewHiddenTypes"): + return res + + res["booking_types"] = [ + t for t in res["booking_types"] if not t.get("hidden") + ] + + return res diff --git a/src/redturtle/prenotazioni/tests/test_prenotazioni_context_state.py b/src/redturtle/prenotazioni/tests/test_prenotazioni_context_state.py index bceedc33..15564163 100644 --- a/src/redturtle/prenotazioni/tests/test_prenotazioni_context_state.py +++ b/src/redturtle/prenotazioni/tests/test_prenotazioni_context_state.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import unittest from datetime import date, datetime + from Acquisition import aq_parent from plone import api from plone.app.testing import ( @@ -10,6 +11,7 @@ setRoles, ) from plone.restapi.testing import RelativeSession + from redturtle.prenotazioni.adapters.booker import IBooker from redturtle.prenotazioni.testing import REDTURTLE_PRENOTAZIONI_INTEGRATION_TESTING from redturtle.prenotazioni.tests.helpers import WEEK_TABLE_SCHEMA diff --git a/src/redturtle/prenotazioni/tests/test_prenotazioni_folder_serializer.py b/src/redturtle/prenotazioni/tests/test_prenotazioni_folder_serializer.py new file mode 100644 index 00000000..203afcde --- /dev/null +++ b/src/redturtle/prenotazioni/tests/test_prenotazioni_folder_serializer.py @@ -0,0 +1,81 @@ +# -*- coding: UTF-8 -*- +import unittest +from datetime import date + +from plone import api +from plone.app.testing import TEST_USER_ID, setRoles +from plone.restapi.interfaces import ISerializeToJson +from zope.component import getMultiAdapter +from zope.globalrequest import getRequest +from zope.interface import implementer +from zope.interface.interfaces import IObjectEvent + +from redturtle.prenotazioni.testing import REDTURTLE_PRENOTAZIONI_FUNCTIONAL_TESTING +from redturtle.prenotazioni.tests.helpers import WEEK_TABLE_SCHEMA + + +@implementer(IObjectEvent) +class DummyEvent(object): + def __init__(self, object): + self.object = object + + +class TestPrenotazioniFolderSerializer(unittest.TestCase): + layer = REDTURTLE_PRENOTAZIONI_FUNCTIONAL_TESTING + + def setUp(self): + self.app = self.layer["app"] + self.portal = self.layer["portal"] + self.mailhost = self.portal.MailHost + self.hidden_type_name = "Type Hidden" + self.not_hidden_type_name = "Type visible" + + setRoles(self.portal, TEST_USER_ID, ["Manager"]) + + self.folder_prenotazioni = api.content.create( + container=self.portal, + type="PrenotazioniFolder", + title="Prenota foo", + description="", + daData=date.today(), + booking_types=[ + { + "name": self.hidden_type_name, + "duration": "30", + "hidden": True, + }, + { + "name": self.not_hidden_type_name, + "duration": "30", + "hidden": False, + }, + ], + gates=["Gate A"], + ) + self.folder_prenotazioni.week_table = WEEK_TABLE_SCHEMA + + setRoles(self.portal, TEST_USER_ID, ["User"]) + + def test_hidden_type_is_not_shown_if_no_premission(self): + self.assertNotIn( + self.hidden_type_name, + [ + i["name"] + for i in getMultiAdapter( + (self.folder_prenotazioni, getRequest()), ISerializeToJson + )()["booking_types"] + ], + ) + + def test_not_hidden_type_is_being_shown(self): + with api.env.adopt_roles(roles="Bookings Manager"): + self.assertIn( + self.not_hidden_type_name, + [ + i["name"] + for i in getMultiAdapter( + (self.folder_prenotazioni, getRequest()), + ISerializeToJson, + )()["booking_types"] + ], + ) diff --git a/src/redturtle/prenotazioni/tests/test_week_table_overrides.py b/src/redturtle/prenotazioni/tests/test_week_table_overrides.py index dcaf22e9..37801c6b 100644 --- a/src/redturtle/prenotazioni/tests/test_week_table_overrides.py +++ b/src/redturtle/prenotazioni/tests/test_week_table_overrides.py @@ -161,7 +161,7 @@ def test_correct_settings(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, @@ -196,7 +196,7 @@ def test_date_range_required(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, @@ -220,7 +220,7 @@ def test_date_range_required(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, @@ -260,11 +260,12 @@ def test_wrong_day_based_on_month(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, ) + self.assertEqual(response.status_code, 400) self.assertIn( 'Selected day is too big for that month for "from" field.', @@ -283,7 +284,7 @@ def test_wrong_day_based_on_month(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, @@ -322,7 +323,7 @@ def test_if_set_start_you_should_set_an_end(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, @@ -362,7 +363,7 @@ def test_if_set_end_you_should_set_a_start(self): "week_table_overrides": json.dumps(data), "same_day_booking_disallowed": "yes", "booking_types": [ - {"name": "Type A", "duration": "30"}, + {"name": "Type A", "duration": "30", "hidden": False}, ], "gates": ["Gate A"], }, diff --git a/src/redturtle/prenotazioni/upgrades.py b/src/redturtle/prenotazioni/upgrades.py index 4be9dfd5..083ddaa5 100644 --- a/src/redturtle/prenotazioni/upgrades.py +++ b/src/redturtle/prenotazioni/upgrades.py @@ -426,3 +426,14 @@ def to_1805(self): logger.info( "Converted <{UID}>.cosa_serve to RichText".format(UID=brain.UID) ) + + +def to_1806(self): + for brain in api.portal.get_tool("portal_catalog")( + portal_type="PrenotazioniFolder" + ): + logger.info("Updating the <{UID}>.booking_types".format(UID=brain.UID)) + + for type in getattr(brain.getObject(), "booking_types", []): + if "hidden" not in type.keys(): + type["hidden"] = False diff --git a/src/redturtle/prenotazioni/upgrades.zcml b/src/redturtle/prenotazioni/upgrades.zcml index 733f5ef1..8a5cf53d 100644 --- a/src/redturtle/prenotazioni/upgrades.zcml +++ b/src/redturtle/prenotazioni/upgrades.zcml @@ -206,4 +206,18 @@ handler=".upgrades.to_1805" /> + + + + From 266edaf3f0e962350f7dd42e67a5306a43e22612 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 16:00:11 +0200 Subject: [PATCH 02/15] Fix locale --- .../locales/it/LC_MESSAGES/redturtle.prenotazioni.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po index d48de03a..68e6eadb 100644 --- a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po +++ b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po @@ -195,7 +195,7 @@ msgstr "Gruppo" #: redturtle/prenotazioni/content/prenotazioni_folder.py:134 msgid "Hidden type" -msgstr "Tipologia pernotazione privata ad uso operatore" +msgstr "Tipologia prenotazione privata ad uso operatore" #. Default: "How to get here" #: redturtle/prenotazioni/behaviors/booking_folder.py:18 From d06a83ba1a72c7b92887a5470afb80f53b317428 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 17:26:04 +0200 Subject: [PATCH 03/15] Preparing release 2.1.2 --- CHANGES.rst | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 52864e46..e4c6b011 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,7 +2,7 @@ Changelog ========= -2.1.2 (unreleased) +2.1.2 (2023-10-13) ------------------ - Add hidden booking types for operator use. diff --git a/setup.py b/setup.py index ff5a0bb8..6c163553 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.2.dev0", + version="2.1.2", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers From 88916e74de71d7a46e133a31693a55471b23039d Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 17:26:25 +0200 Subject: [PATCH 04/15] Back to development: 2.1.3 --- CHANGES.rst | 6 ++++++ setup.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index e4c6b011..ec980a77 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,12 @@ Changelog ========= +2.1.3 (unreleased) +------------------ + +- Nothing changed yet. + + 2.1.2 (2023-10-13) ------------------ diff --git a/setup.py b/setup.py index 6c163553..d44d3a1c 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.2", + version="2.1.3.dev0", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers From 183a05bc558540aea69a69694c5109ca302e161f Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 17:30:01 +0200 Subject: [PATCH 05/15] Black --- .../content/prenotazioni_folder.py | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/src/redturtle/prenotazioni/content/prenotazioni_folder.py b/src/redturtle/prenotazioni/content/prenotazioni_folder.py index 3fc54085..8d6cd68f 100644 --- a/src/redturtle/prenotazioni/content/prenotazioni_folder.py +++ b/src/redturtle/prenotazioni/content/prenotazioni_folder.py @@ -18,10 +18,7 @@ from redturtle.prenotazioni import _ from redturtle.prenotazioni.browser.widget import WeekTableOverridesFieldWidget from redturtle.prenotazioni.config import DEFAULT_VISIBLE_BOOKING_FIELDS -from redturtle.prenotazioni.content.validators import ( - PauseValidator, - checkOverrides, -) +from redturtle.prenotazioni.content.validators import PauseValidator, checkOverrides try: from plone.app.dexterity import textindexer @@ -45,9 +42,7 @@ def get_from_form(form, fieldname): return value return None - number_of_entry = request.form.get( - "form.widgets.{}.count".format(fieldname) - ) + number_of_entry = request.form.get("form.widgets.{}.count".format(fieldname)) data = [] prefix = "form.widgets.{}".format(fieldname) for counter in range(int(number_of_entry)): @@ -87,9 +82,7 @@ class IWeekTableRow(model.Schema): ) afternoon_start = schema.Choice( - title=_( - "afternoon_start_label", default="Start time in the afternoon" - ), + title=_("afternoon_start_label", default="Start time in the afternoon"), vocabulary="redturtle.prenotazioni.VocOreInizio", required=False, ) @@ -229,9 +222,7 @@ class IPrenotazioniFolder(model.Schema): descriptionAgenda = RichText( required=False, title=_("Descrizione Agenda", default="Descrizione Agenda"), - description=_( - "Inserire il testo di presentazione dell'agenda corrente" - ), + description=_("Inserire il testo di presentazione dell'agenda corrente"), ) form.mode(descriptionAgenda="display") @@ -246,9 +237,7 @@ class IPrenotazioniFolder(model.Schema): directives.widget(visible_booking_fields=CheckBoxFieldWidget) visible_booking_fields = schema.List( - title=_( - "label_visible_booking_fields", default="Visible booking fields" - ), + title=_("label_visible_booking_fields", default="Visible booking fields"), description=_( "help_visible_booking_fields", "User will not be able to add a booking unless those " @@ -266,9 +255,7 @@ class IPrenotazioniFolder(model.Schema): directives.widget(required_booking_fields=CheckBoxFieldWidget) required_booking_fields = schema.List( - title=_( - "label_required_booking_fields", default="Required booking fields" - ), + title=_("label_required_booking_fields", default="Required booking fields"), description=_( "help_required_booking_fields", "User will not be able to add a booking unless those " @@ -520,14 +507,10 @@ def data_validation(data): raise Invalid(_("You should set a start time for afternoon.")) if interval["morning_start"] and interval["morning_end"]: if interval["morning_start"] > interval["morning_end"]: - raise Invalid( - _("Morning start should not be greater than end.") - ) + raise Invalid(_("Morning start should not be greater than end.")) if interval["afternoon_start"] and interval["afternoon_end"]: if interval["afternoon_start"] > interval["afternoon_end"]: - raise Invalid( - _("Afternoon start should not be greater than end.") - ) + raise Invalid(_("Afternoon start should not be greater than end.")) # TODO: definire o descrivere quando avviee la notifica # TODO: inserire qui la chiave IO ? o su un config in zope.conf/environment ? From 39073d239440fdc39074657ee040e3ad573409af Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 17:30:19 +0200 Subject: [PATCH 06/15] Squashed commit of the following: commit 183a05bc558540aea69a69694c5109ca302e161f Author: Roman Date: Fri Oct 13 17:30:01 2023 +0200 Black commit 88916e74de71d7a46e133a31693a55471b23039d Author: Roman Date: Fri Oct 13 17:26:25 2023 +0200 Back to development: 2.1.3 commit d06a83ba1a72c7b92887a5470afb80f53b317428 Author: Roman Date: Fri Oct 13 17:26:04 2023 +0200 Preparing release 2.1.2 --- CHANGES.rst | 8 ++++- setup.py | 2 +- .../content/prenotazioni_folder.py | 33 +++++-------------- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 52864e46..ec980a77 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,7 +2,13 @@ Changelog ========= -2.1.2 (unreleased) +2.1.3 (unreleased) +------------------ + +- Nothing changed yet. + + +2.1.2 (2023-10-13) ------------------ - Add hidden booking types for operator use. diff --git a/setup.py b/setup.py index ff5a0bb8..d44d3a1c 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.2.dev0", + version="2.1.3.dev0", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/src/redturtle/prenotazioni/content/prenotazioni_folder.py b/src/redturtle/prenotazioni/content/prenotazioni_folder.py index 3fc54085..8d6cd68f 100644 --- a/src/redturtle/prenotazioni/content/prenotazioni_folder.py +++ b/src/redturtle/prenotazioni/content/prenotazioni_folder.py @@ -18,10 +18,7 @@ from redturtle.prenotazioni import _ from redturtle.prenotazioni.browser.widget import WeekTableOverridesFieldWidget from redturtle.prenotazioni.config import DEFAULT_VISIBLE_BOOKING_FIELDS -from redturtle.prenotazioni.content.validators import ( - PauseValidator, - checkOverrides, -) +from redturtle.prenotazioni.content.validators import PauseValidator, checkOverrides try: from plone.app.dexterity import textindexer @@ -45,9 +42,7 @@ def get_from_form(form, fieldname): return value return None - number_of_entry = request.form.get( - "form.widgets.{}.count".format(fieldname) - ) + number_of_entry = request.form.get("form.widgets.{}.count".format(fieldname)) data = [] prefix = "form.widgets.{}".format(fieldname) for counter in range(int(number_of_entry)): @@ -87,9 +82,7 @@ class IWeekTableRow(model.Schema): ) afternoon_start = schema.Choice( - title=_( - "afternoon_start_label", default="Start time in the afternoon" - ), + title=_("afternoon_start_label", default="Start time in the afternoon"), vocabulary="redturtle.prenotazioni.VocOreInizio", required=False, ) @@ -229,9 +222,7 @@ class IPrenotazioniFolder(model.Schema): descriptionAgenda = RichText( required=False, title=_("Descrizione Agenda", default="Descrizione Agenda"), - description=_( - "Inserire il testo di presentazione dell'agenda corrente" - ), + description=_("Inserire il testo di presentazione dell'agenda corrente"), ) form.mode(descriptionAgenda="display") @@ -246,9 +237,7 @@ class IPrenotazioniFolder(model.Schema): directives.widget(visible_booking_fields=CheckBoxFieldWidget) visible_booking_fields = schema.List( - title=_( - "label_visible_booking_fields", default="Visible booking fields" - ), + title=_("label_visible_booking_fields", default="Visible booking fields"), description=_( "help_visible_booking_fields", "User will not be able to add a booking unless those " @@ -266,9 +255,7 @@ class IPrenotazioniFolder(model.Schema): directives.widget(required_booking_fields=CheckBoxFieldWidget) required_booking_fields = schema.List( - title=_( - "label_required_booking_fields", default="Required booking fields" - ), + title=_("label_required_booking_fields", default="Required booking fields"), description=_( "help_required_booking_fields", "User will not be able to add a booking unless those " @@ -520,14 +507,10 @@ def data_validation(data): raise Invalid(_("You should set a start time for afternoon.")) if interval["morning_start"] and interval["morning_end"]: if interval["morning_start"] > interval["morning_end"]: - raise Invalid( - _("Morning start should not be greater than end.") - ) + raise Invalid(_("Morning start should not be greater than end.")) if interval["afternoon_start"] and interval["afternoon_end"]: if interval["afternoon_start"] > interval["afternoon_end"]: - raise Invalid( - _("Afternoon start should not be greater than end.") - ) + raise Invalid(_("Afternoon start should not be greater than end.")) # TODO: definire o descrivere quando avviee la notifica # TODO: inserire qui la chiave IO ? o su un config in zope.conf/environment ? From c00a08134ed1064bcab99cd334870b7259329057 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:01:46 +0200 Subject: [PATCH 07/15] Resect hidden types from bookign schema --- CHANGES.rst | 3 ++- .../restapi/services/booking_schema/get.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index ec980a77..99127e3c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,8 @@ Changelog 2.1.3 (unreleased) ------------------ -- Nothing changed yet. +- Resect hiddent booking types from @booking-schema. + [folix-01] 2.1.2 (2023-10-13) diff --git a/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py b/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py index 81f0c829..eabe43cb 100644 --- a/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py +++ b/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py @@ -113,7 +113,10 @@ def reply(self): } ) - return {"fields": fields_list, "booking_types": self.get_booking_types()} + return { + "fields": fields_list, + "booking_types": self.get_booking_types(), + } def get_booking_types(self): booking_date = self.request.form.get("booking_date", None) @@ -123,7 +126,9 @@ def get_booking_types(self): return res booking_context_state_view = api.content.get_view( - "prenotazioni_context_state", context=self.context, request=self.request + "prenotazioni_context_state", + context=self.context, + request=self.request, ) # fix timezone notation. querystring replaced + with a space @@ -136,4 +141,10 @@ def get_booking_types(self): res["bookable"].append(item) else: res["unbookable"].append(item) + + if api.user.has_permission("redturtle.prenotazioni.ViewHiddenTypes"): + return res + + res["bookable"] = [t for t in res["bookable"] if not t.get("hidden")] + return res From 8a1e3e1cb73634bca3d9b5a0df1df0a4b3163971 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:02:21 +0200 Subject: [PATCH 08/15] Squashed commit of the following: commit c00a08134ed1064bcab99cd334870b7259329057 Author: Roman Date: Fri Oct 13 18:01:46 2023 +0200 Resect hidden types from bookign schema commit 39073d239440fdc39074657ee040e3ad573409af Author: Roman Date: Fri Oct 13 17:30:19 2023 +0200 Squashed commit of the following: commit 183a05bc558540aea69a69694c5109ca302e161f Author: Roman Date: Fri Oct 13 17:30:01 2023 +0200 Black commit 88916e74de71d7a46e133a31693a55471b23039d Author: Roman Date: Fri Oct 13 17:26:25 2023 +0200 Back to development: 2.1.3 commit d06a83ba1a72c7b92887a5470afb80f53b317428 Author: Roman Date: Fri Oct 13 17:26:04 2023 +0200 Preparing release 2.1.2 --- CHANGES.rst | 2 ++ .../restapi/services/booking_schema/get.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index ec980a77..040b0cc1 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -6,6 +6,8 @@ Changelog ------------------ - Nothing changed yet. +- Resect hiddent booking types from @booking-schema. + [folix-01] 2.1.2 (2023-10-13) diff --git a/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py b/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py index 81f0c829..eabe43cb 100644 --- a/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py +++ b/src/redturtle/prenotazioni/restapi/services/booking_schema/get.py @@ -113,7 +113,10 @@ def reply(self): } ) - return {"fields": fields_list, "booking_types": self.get_booking_types()} + return { + "fields": fields_list, + "booking_types": self.get_booking_types(), + } def get_booking_types(self): booking_date = self.request.form.get("booking_date", None) @@ -123,7 +126,9 @@ def get_booking_types(self): return res booking_context_state_view = api.content.get_view( - "prenotazioni_context_state", context=self.context, request=self.request + "prenotazioni_context_state", + context=self.context, + request=self.request, ) # fix timezone notation. querystring replaced + with a space @@ -136,4 +141,10 @@ def get_booking_types(self): res["bookable"].append(item) else: res["unbookable"].append(item) + + if api.user.has_permission("redturtle.prenotazioni.ViewHiddenTypes"): + return res + + res["bookable"] = [t for t in res["bookable"] if not t.get("hidden")] + return res From a5b067744953a830811031cf5b9acee24e9f9b49 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:02:59 +0200 Subject: [PATCH 09/15] Update changelog --- CHANGES.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 040b0cc1..99127e3c 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,7 +5,6 @@ Changelog 2.1.3 (unreleased) ------------------ -- Nothing changed yet. - Resect hiddent booking types from @booking-schema. [folix-01] From b2801edc1201a6d4a1c17cd9bd59a451f1ceb446 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:03:12 +0200 Subject: [PATCH 10/15] Preparing release 2.1.3 --- CHANGES.rst | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 99127e3c..aab4e2c4 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,7 +2,7 @@ Changelog ========= -2.1.3 (unreleased) +2.1.3 (2023-10-13) ------------------ - Resect hiddent booking types from @booking-schema. diff --git a/setup.py b/setup.py index d44d3a1c..5ae8e630 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.3.dev0", + version="2.1.3", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers From 5c72add774b344219d3a972a3c69e22d4787bacd Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:03:30 +0200 Subject: [PATCH 11/15] Back to development: 2.1.4 --- CHANGES.rst | 6 ++++++ setup.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index aab4e2c4..5ebc7afb 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,6 +2,12 @@ Changelog ========= +2.1.4 (unreleased) +------------------ + +- Nothing changed yet. + + 2.1.3 (2023-10-13) ------------------ diff --git a/setup.py b/setup.py index 5ae8e630..7ec28b8a 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.3", + version="2.1.4.dev0", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers From abe9d1ad7e633654932a77d010ec597b47812b39 Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 13 Oct 2023 18:13:49 +0200 Subject: [PATCH 12/15] Squashed commit of the following: commit 5c72add774b344219d3a972a3c69e22d4787bacd Author: Roman Date: Fri Oct 13 18:03:30 2023 +0200 Back to development: 2.1.4 commit b2801edc1201a6d4a1c17cd9bd59a451f1ceb446 Author: Roman Date: Fri Oct 13 18:03:12 2023 +0200 Preparing release 2.1.3 commit a5b067744953a830811031cf5b9acee24e9f9b49 Author: Roman Date: Fri Oct 13 18:02:59 2023 +0200 Update changelog commit 8a1e3e1cb73634bca3d9b5a0df1df0a4b3163971 Author: Roman Date: Fri Oct 13 18:02:21 2023 +0200 Squashed commit of the following: commit c00a08134ed1064bcab99cd334870b7259329057 Author: Roman Date: Fri Oct 13 18:01:46 2023 +0200 Resect hidden types from bookign schema commit 39073d239440fdc39074657ee040e3ad573409af Author: Roman Date: Fri Oct 13 17:30:19 2023 +0200 Squashed commit of the following: commit 183a05bc558540aea69a69694c5109ca302e161f Author: Roman Date: Fri Oct 13 17:30:01 2023 +0200 Black commit 88916e74de71d7a46e133a31693a55471b23039d Author: Roman Date: Fri Oct 13 17:26:25 2023 +0200 Back to development: 2.1.3 commit d06a83ba1a72c7b92887a5470afb80f53b317428 Author: Roman Date: Fri Oct 13 17:26:04 2023 +0200 Preparing release 2.1.2 commit 183a05bc558540aea69a69694c5109ca302e161f Author: Roman Date: Fri Oct 13 17:30:01 2023 +0200 Black commit 88916e74de71d7a46e133a31693a55471b23039d Author: Roman Date: Fri Oct 13 17:26:25 2023 +0200 Back to development: 2.1.3 commit d06a83ba1a72c7b92887a5470afb80f53b317428 Author: Roman Date: Fri Oct 13 17:26:04 2023 +0200 Preparing release 2.1.2 --- CHANGES.rst | 7 +++++++ setup.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 99127e3c..db35a938 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -3,6 +3,13 @@ Changelog 2.1.3 (unreleased) +2.1.4 (unreleased) +------------------ + +- Nothing changed yet. + + +2.1.3 (2023-10-13) ------------------ - Resect hiddent booking types from @booking-schema. diff --git a/setup.py b/setup.py index d44d3a1c..7ec28b8a 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ setup( name="redturtle.prenotazioni", - version="2.1.3.dev0", + version="2.1.4.dev0", description="An add-on for Plone", long_description=long_description, # Get more from https://pypi.python.org/pypi?%3Aaction=list_classifiers From 5f6c61f650790e934c73ed059bb2c67774abfa02 Mon Sep 17 00:00:00 2001 From: Roman <72063601+folix-01@users.noreply.github.com> Date: Tue, 17 Oct 2023 11:17:03 +0200 Subject: [PATCH 13/15] Add booking_refuse_message to stringinterp vars (#105) * Add booking_refuse_message to stringinterp vars * Refactor --- .../prenotazioni/adapters/configure.zcml | 6 +++++ .../prenotazioni/adapters/stringinterp.py | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/redturtle/prenotazioni/adapters/configure.zcml b/src/redturtle/prenotazioni/adapters/configure.zcml index 13993ceb..36167739 100644 --- a/src/redturtle/prenotazioni/adapters/configure.zcml +++ b/src/redturtle/prenotazioni/adapters/configure.zcml @@ -153,6 +153,12 @@ for="*" name="booking_url_with_delete_token" /> + Date: Tue, 17 Oct 2023 11:18:55 +0200 Subject: [PATCH 14/15] Squashed commit of the following: commit 3a2d3156e903f5834e2b21e3911fee43ab84de7f Author: Roman Date: Tue Oct 17 11:18:00 2023 +0200 Update changelog commit 3316e62ca749e9ab10301edf813c455e9bdef3b8 Author: Roman Date: Tue Oct 17 11:10:59 2023 +0200 Refactor commit 442d5514a16528b422e5eaf8e56a17fc235bed3e Author: Roman Date: Tue Oct 17 10:58:48 2023 +0200 Add booking_refuse_message to stringinterp vars --- CHANGES.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index db35a938..787043d9 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -2,11 +2,11 @@ Changelog ========= -2.1.3 (unreleased) 2.1.4 (unreleased) ------------------ -- Nothing changed yet. +- Add booking_refuse_message to Prenotazione stringinterp variables. + [folix-01] 2.1.3 (2023-10-13) From b70fe021b26d2b0d516f16ff37d7283e74e563dd Mon Sep 17 00:00:00 2001 From: Roman Date: Tue, 17 Oct 2023 11:46:23 +0200 Subject: [PATCH 15/15] Squashed commit of the following: commit a8d3de79839637b62eb166d4249fc0c80d10b34a Author: Roman Date: Tue Oct 17 11:46:03 2023 +0200 Update the .notify_on_refuse_message value and default commit 3a2d3156e903f5834e2b21e3911fee43ab84de7f Author: Roman Date: Tue Oct 17 11:18:00 2023 +0200 Update changelog commit 3316e62ca749e9ab10301edf813c455e9bdef3b8 Author: Roman Date: Tue Oct 17 11:10:59 2023 +0200 Refactor commit 442d5514a16528b422e5eaf8e56a17fc235bed3e Author: Roman Date: Tue Oct 17 10:58:48 2023 +0200 Add booking_refuse_message to stringinterp vars --- .../it/LC_MESSAGES/redturtle.prenotazioni.po | 2 +- .../prenotazioni/profiles/default/metadata.xml | 2 +- src/redturtle/prenotazioni/upgrades.py | 15 +++++++++++++++ src/redturtle/prenotazioni/upgrades.zcml | 10 ++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po index 68e6eadb..1a99bfbb 100644 --- a/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po +++ b/src/redturtle/prenotazioni/locales/it/LC_MESSAGES/redturtle.prenotazioni.po @@ -1226,7 +1226,7 @@ msgstr "Testo notifica prenotazione rifiutata" #: redturtle/prenotazioni/content/prenotazioni_folder.py:211 #: redturtle/prenotazioni/upgrades.py:281 msgid "notify_on_refuse_message_default_value" -msgstr "La prenotazione ${booking_type} del ${booking_date} delle ore ${booking_time} è stata rifiutata." +msgstr "La prenotazione ${booking_type} del ${booking_date} delle ore ${booking_time} è stata rifiutata. Motivo del rifiuto: ${booking_refuse_message}" #: redturtle/prenotazioni/content/prenotazioni_folder.py:625 msgid "notify_on_refuse_message_help" diff --git a/src/redturtle/prenotazioni/profiles/default/metadata.xml b/src/redturtle/prenotazioni/profiles/default/metadata.xml index b0ea2fda..0d57cafc 100644 --- a/src/redturtle/prenotazioni/profiles/default/metadata.xml +++ b/src/redturtle/prenotazioni/profiles/default/metadata.xml @@ -1,6 +1,6 @@ - 1806 + 1807 profile-plone.app.dexterity:default profile-collective.z3cform.datagridfield:default diff --git a/src/redturtle/prenotazioni/upgrades.py b/src/redturtle/prenotazioni/upgrades.py index 083ddaa5..939e634d 100644 --- a/src/redturtle/prenotazioni/upgrades.py +++ b/src/redturtle/prenotazioni/upgrades.py @@ -437,3 +437,18 @@ def to_1806(self): for type in getattr(brain.getObject(), "booking_types", []): if "hidden" not in type.keys(): type["hidden"] = False + + +def to_1807(self): + for brain in api.portal.get_tool("portal_catalog")( + portal_type="PrenotazioniFolder" + ): + obj = brain.getObject() + if obj.notify_on_refuse_message: + obj.notify_on_refuse_message += ( + " Motivo del rifiuto: ${booking_refuse_message}" + ) + + logger.info( + "Upgraded <{UID}>.notify_on_refuse_message value".format(UID=brain.UID) + ) diff --git a/src/redturtle/prenotazioni/upgrades.zcml b/src/redturtle/prenotazioni/upgrades.zcml index 8a5cf53d..912702ed 100644 --- a/src/redturtle/prenotazioni/upgrades.zcml +++ b/src/redturtle/prenotazioni/upgrades.zcml @@ -220,4 +220,14 @@ handler=".upgrades.update_rolemap" /> + + +