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" /> + + + +