From decba47030bdcb497378f360ebcfbea0eacaff36 Mon Sep 17 00:00:00 2001 From: Francesco Filicetti Date: Thu, 28 Nov 2024 12:22:06 +0100 Subject: [PATCH] fix: ticket dependency --- uniticket/locale/en/LC_MESSAGES/django.mo | Bin 86244 -> 86523 bytes uniticket/locale/en/LC_MESSAGES/django.po | 386 +++++++++++----------- uniticket/uni_ticket/forms.py | 60 ++-- uniticket/uni_ticket/models.py | 40 ++- uniticket/uni_ticket/views/management.py | 2 + 5 files changed, 259 insertions(+), 229 deletions(-) diff --git a/uniticket/locale/en/LC_MESSAGES/django.mo b/uniticket/locale/en/LC_MESSAGES/django.mo index 26a34a31436a4dd349a3c241a53229ec7a90d74b..c445a95294d4d8814a87249e40b6a656a8da2994 100644 GIT binary patch delta 20452 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 compilazione di quest'area di testo non avrà effetti sui campi che " "non accettano una serie di opzioni.
  • Se il campo prevede una serie di " @@ -1076,27 +1076,27 @@ msgstr "" "available here.
  • " -#: uni_ticket/forms.py:184 +#: uni_ticket/forms.py:185 msgid "Email agli uffici" msgstr "Mail to offices" -#: uni_ticket/forms.py:205 uni_ticket/forms.py:236 +#: uni_ticket/forms.py:206 uni_ticket/forms.py:237 msgid "Stato chiusura" msgstr "Closing state" -#: uni_ticket/forms.py:206 uni_ticket/forms.py:217 +#: uni_ticket/forms.py:207 uni_ticket/forms.py:218 msgid "Motivazione" msgstr "Grounds" -#: uni_ticket/forms.py:207 uni_ticket/forms.py:314 uni_ticket/forms.py:425 -#: uni_ticket/forms.py:454 uni_ticket/forms.py:528 +#: uni_ticket/forms.py:208 uni_ticket/forms.py:315 uni_ticket/forms.py:433 +#: uni_ticket/forms.py:462 uni_ticket/forms.py:536 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:103 #: uni_ticket_bootstrap_italia_template/templates/manager/category_task_detail.html:104 #: uni_ticket_bootstrap_italia_template/templates/task_detail.html:61 msgid "Allegato" msgstr "Attachment" -#: uni_ticket/forms.py:219 uni_ticket/forms.py:477 +#: uni_ticket/forms.py:220 uni_ticket/forms.py:485 #, python-brace-format msgid "" "Inserisci il tag {user} per inserire automaticamente il nome e cognome " @@ -1105,21 +1105,21 @@ msgstr "" "Enter the {user} tag to automatically insert the name and surname of the " "user who created the request" -#: uni_ticket/forms.py:253 +#: uni_ticket/forms.py:254 #: uni_ticket_bootstrap_italia_template/templates/manager/office_detail.html:101 #: uni_ticket_bootstrap_italia_template/templates/manager/offices_list.html:53 #: uni_ticket_bootstrap_italia_template/templates/operator/offices_list.html:32 msgid "Ad uso interno" msgstr "For internal use" -#: uni_ticket/forms.py:257 +#: uni_ticket/forms.py:258 msgid "" "Visibile esclusivamente all'interno della struttura quando si effettua un " "trasferimento di competenza" msgstr "" -#: uni_ticket/forms.py:281 uni_ticket/forms.py:292 uni_ticket/forms.py:424 -#: uni_ticket/forms.py:527 uni_ticket/forms.py:547 +#: uni_ticket/forms.py:282 uni_ticket/forms.py:293 uni_ticket/forms.py:432 +#: uni_ticket/forms.py:535 uni_ticket/forms.py:555 #: uni_ticket_bootstrap_italia_template/templates/datatables/table_header.html:28 #: uni_ticket_bootstrap_italia_template/templates/manager/category_task_detail.html:86 #: uni_ticket_bootstrap_italia_template/templates/task_detail.html:39 @@ -1127,7 +1127,7 @@ msgstr "" msgid "Priorità" msgstr "Priority" -#: uni_ticket/forms.py:312 uni_ticket/forms.py:422 uni_ticket/forms.py:525 +#: uni_ticket/forms.py:313 uni_ticket/forms.py:430 uni_ticket/forms.py:533 #: uni_ticket_bootstrap_italia_template/templates/datatables/table_header.html:19 #: uni_ticket_bootstrap_italia_template/templates/manager/category_task_detail.html:94 #: uni_ticket_bootstrap_italia_template/templates/task_detail.html:51 @@ -1135,57 +1135,78 @@ msgstr "Priority" msgid "Oggetto" msgstr "Subject" -#: uni_ticket/forms.py:313 uni_ticket/forms.py:423 uni_ticket/forms.py:452 -#: uni_ticket/forms.py:473 uni_ticket/forms.py:526 uni_ticket/forms.py:718 +#: uni_ticket/forms.py:314 uni_ticket/forms.py:431 uni_ticket/forms.py:460 +#: uni_ticket/forms.py:481 uni_ticket/forms.py:534 uni_ticket/forms.py:726 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:94 msgid "Testo" msgstr "Text" -#: uni_ticket/forms.py:357 +#: uni_ticket/forms.py:358 #: uni_ticket_bootstrap_italia_template/templates/management/add_ticket_competence.html:42 #: uni_ticket_bootstrap_italia_template/templates/management/statistics_content.html:66 #: uni_ticket_bootstrap_italia_template/templates/management/statistics_content.html:151 msgid "Ufficio" msgstr "Office" -#: uni_ticket/forms.py:358 +#: uni_ticket/forms.py:359 msgid "Continua a seguire" msgstr "Keep following" -#: uni_ticket/forms.py:359 +#: uni_ticket/forms.py:360 msgid "Sola lettura" msgstr "Read only" -#: uni_ticket/forms.py:361 +#: uni_ticket/forms.py:362 msgid "Ufficio selezionato" msgstr "Selected office" -#: uni_ticket/forms.py:376 +#: uni_ticket/forms.py:376 uni_ticket/models.py:504 uni_ticket/models.py:505 +#: uni_ticket_bootstrap_italia_template/templates/task_detail.html:47 +msgid "Ticket" +msgstr "" + +#: uni_ticket/forms.py:377 +msgid "Codice univoco identificativo della richiesta" +msgstr "Unique code identifying the request" + +#: uni_ticket/forms.py:379 #: uni_ticket_bootstrap_italia_template/templates/manager/office_add_operator.html:93 #: uni_ticket_bootstrap_italia_template/templates/manager/office_detail.html:247 msgid "Note" msgstr "Notes" -#: uni_ticket/forms.py:426 uni_ticket/forms.py:530 +#: uni_ticket/forms.py:394 +msgid "Non si può rendere un ticket dipendente da sè stesso" +msgstr "You cannot make a ticket dependent on itself" + +#: uni_ticket/forms.py:396 +msgid "Dipendenza già attiva" +msgstr "Already active dependency" + +#: uni_ticket/forms.py:414 +msgid "Ticket non trovato tra quelli gestiti" +msgstr "" + +#: uni_ticket/forms.py:434 uni_ticket/forms.py:538 #: uni_ticket_bootstrap_italia_template/templates/manager/category_task_detail.html:74 msgid "Visibile all'utente" msgstr "Visible to users" -#: uni_ticket/forms.py:451 +#: uni_ticket/forms.py:459 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:60 msgid "Titolo" msgstr "Title" -#: uni_ticket/forms.py:455 +#: uni_ticket/forms.py:463 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:114 msgid "Collassabile (in nuova richiesta)" msgstr "Collapsible (in new request)" -#: uni_ticket/forms.py:456 +#: uni_ticket/forms.py:464 msgid "Visibile nel documento di stampa" msgstr "Visible in the print document" -#: uni_ticket/forms.py:457 uni_ticket/forms.py:529 uni_ticket/forms.py:719 +#: uni_ticket/forms.py:465 uni_ticket/forms.py:537 uni_ticket/forms.py:727 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:42 #: uni_ticket_bootstrap_italia_template/templates/manager/category_condition_detail.html:68 #: uni_ticket_bootstrap_italia_template/templates/manager/category_conditions.html:40 @@ -1206,59 +1227,59 @@ msgstr "Visible in the print document" msgid "Attiva" msgstr "Active" -#: uni_ticket/forms.py:491 +#: uni_ticket/forms.py:499 msgid "Assegna tipologia di richiesta" msgstr "Assign type of request" -#: uni_ticket/forms.py:552 +#: uni_ticket/forms.py:560 msgid "Seleziona operatore" msgstr "Select operator" -#: uni_ticket/forms.py:577 +#: uni_ticket/forms.py:585 msgid "Seleziona l'ufficio" msgstr "Select the office" -#: uni_ticket/forms.py:688 uni_ticket/models.py:1625 +#: uni_ticket/forms.py:696 uni_ticket/models.py:1638 msgid "Denominazione configurazione" msgstr "Configuration name" -#: uni_ticket/forms.py:689 +#: uni_ticket/forms.py:697 msgid "Unità Organizzativa" msgstr "" -#: uni_ticket/forms.py:690 +#: uni_ticket/forms.py:698 msgid "RPA Unità Organizzativa" msgstr "" -#: uni_ticket/forms.py:691 +#: uni_ticket/forms.py:699 msgid "Username RPA Unità Organizzativa" msgstr "" -#: uni_ticket/forms.py:692 +#: uni_ticket/forms.py:700 msgid "Matricola RPA Unità Organizzativa" msgstr "RPA Organizational Unit code" -#: uni_ticket/forms.py:693 uni_ticket/models.py:1689 +#: uni_ticket/forms.py:701 uni_ticket/models.py:1702 msgid "Invia e-mail a RPA" msgstr "" -#: uni_ticket/forms.py:694 +#: uni_ticket/forms.py:702 msgid "Email riferimento" msgstr "Reference email" -#: uni_ticket/forms.py:695 +#: uni_ticket/forms.py:703 msgid "Titolario" msgstr "Holder" -#: uni_ticket/forms.py:696 +#: uni_ticket/forms.py:704 msgid "Numero Fascicolo" msgstr "Issue number" -#: uni_ticket/forms.py:697 +#: uni_ticket/forms.py:705 msgid "Anno Fascicolo" msgstr "Issue year" -#: uni_ticket/forms.py:700 +#: uni_ticket/forms.py:708 msgid "A discrezione dell'utente. Es: \"Configurazione anno 2020\"" msgstr "At the user's discretion. Ex: \"Configuration year 2020\"" @@ -1437,16 +1458,11 @@ msgstr "Input forms" msgid "Quando la richiesta è stata protocollata" msgstr "When the request was registered" -#: uni_ticket/models.py:504 uni_ticket/models.py:505 -#: uni_ticket_bootstrap_italia_template/templates/task_detail.html:47 -msgid "Ticket" -msgstr "" - -#: uni_ticket/models.py:705 uni_ticket/models.py:733 uni_ticket/models.py:1476 +#: uni_ticket/models.py:711 uni_ticket/models.py:739 uni_ticket/models.py:1489 msgid "Chiusa" msgstr "Closed" -#: uni_ticket/models.py:709 uni_ticket/models.py:1484 +#: uni_ticket/models.py:715 uni_ticket/models.py:1497 msgid "" "Chiusa {}" @@ -1454,16 +1470,16 @@ msgstr "" "Closed {}" -#: uni_ticket/models.py:722 uni_ticket/models.py:766 uni_ticket/models.py:1477 -#: uni_ticket/models.py:1496 +#: uni_ticket/models.py:728 uni_ticket/models.py:772 uni_ticket/models.py:1490 +#: uni_ticket/models.py:1509 msgid "Aperta" msgstr "Open" -#: uni_ticket/models.py:723 uni_ticket/models.py:767 +#: uni_ticket/models.py:729 uni_ticket/models.py:773 msgid "Assegnata {}" msgstr "Assigned {}" -#: uni_ticket/models.py:741 +#: uni_ticket/models.py:747 msgid "" "Chiusa {}" @@ -1471,124 +1487,124 @@ msgstr "" "Closed {}" -#: uni_ticket/models.py:783 +#: uni_ticket/models.py:789 msgid "{} - richiesta {} aggiornata" msgstr "{} - request {} updated" -#: uni_ticket/models.py:1083 uni_ticket/models.py:1090 +#: uni_ticket/models.py:1089 uni_ticket/models.py:1096 msgid "Da assegnare" msgstr "To assign" -#: uni_ticket/models.py:1156 +#: uni_ticket/models.py:1162 msgid "Risposta predefinita" msgstr "Default response" -#: uni_ticket/models.py:1157 +#: uni_ticket/models.py:1163 #: uni_ticket_bootstrap_italia_template/templates/manager/category_options.html:84 msgid "Risposte predefinite" msgstr "Default replies" -#: uni_ticket/models.py:1190 uni_ticket/models.py:1191 +#: uni_ticket/models.py:1201 uni_ticket/models.py:1202 msgid "Competenza Ticket" msgstr "Ticket Competence" -#: uni_ticket/models.py:1313 uni_ticket/models.py:1314 +#: uni_ticket/models.py:1326 uni_ticket/models.py:1327 msgid "Domande/Risposte Ticket" msgstr "Ticket Questions / Repl" -#: uni_ticket/models.py:1368 +#: uni_ticket/models.py:1381 msgid "Dipendenza Ticket" msgstr "Ticket depencende" -#: uni_ticket/models.py:1369 +#: uni_ticket/models.py:1382 msgid "Dipendenze Ticket" msgstr "Ticket dependencies" -#: uni_ticket/models.py:1449 uni_ticket/models.py:1450 +#: uni_ticket/models.py:1462 uni_ticket/models.py:1463 msgid "Task" msgstr "" -#: uni_ticket/models.py:1517 +#: uni_ticket/models.py:1530 msgid "Dipendenza Ticket da Task" msgstr "Ticket dependency on Task" -#: uni_ticket/models.py:1518 +#: uni_ticket/models.py:1531 msgid "Dipendenze Ticket da Task" msgstr "Ticket dependencies on Task" -#: uni_ticket/models.py:1541 +#: uni_ticket/models.py:1554 msgid "Visibile nella versione stampabile" msgstr "Visible in the printable version" -#: uni_ticket/models.py:1543 +#: uni_ticket/models.py:1556 msgid "Collassabile" msgstr "Collassable" -#: uni_ticket/models.py:1544 +#: uni_ticket/models.py:1557 msgid "Visibile agli utenti" msgstr "Visible to users" -#: uni_ticket/models.py:1548 +#: uni_ticket/models.py:1561 msgid "Clausola tipologia di richiesta ticket" msgstr "Type of ticket request clause" -#: uni_ticket/models.py:1549 +#: uni_ticket/models.py:1562 msgid "Clausole tipologia di richiesta ticket" msgstr "Clause type of ticket request" -#: uni_ticket/models.py:1569 +#: uni_ticket/models.py:1582 msgid "Visibile nei ticket" msgstr "Visible on tickets" -#: uni_ticket/models.py:1573 +#: uni_ticket/models.py:1586 msgid "Task predefinito" msgstr "Default task" -#: uni_ticket/models.py:1574 +#: uni_ticket/models.py:1587 msgid "Task predefiniti" msgstr "Default tasks" -#: uni_ticket/models.py:1642 +#: uni_ticket/models.py:1655 msgid "Configurazione WS Protocollo Struttura" msgstr "Protocol WS structure configuration" -#: uni_ticket/models.py:1643 +#: uni_ticket/models.py:1656 msgid "Configurazioni WS Protocollo Strutture" msgstr "Protocol WS structures configuration" -#: uni_ticket/models.py:1672 +#: uni_ticket/models.py:1685 msgid "Nominativo RPA" msgstr "RPA name" -#: uni_ticket/models.py:1679 +#: uni_ticket/models.py:1692 msgid "Username RPA sul sistema di protocollo" msgstr "RPA username on the protocol system" -#: uni_ticket/models.py:1686 +#: uni_ticket/models.py:1699 msgid "Matricola RPA sul sistema di protocollo" msgstr "RPA code on the protocol system" -#: uni_ticket/models.py:1698 +#: uni_ticket/models.py:1711 msgid "Codice titolario" msgstr "Holder code" -#: uni_ticket/models.py:1701 +#: uni_ticket/models.py:1714 msgid "Fascicolo numero" msgstr "Issue number" -#: uni_ticket/models.py:1704 +#: uni_ticket/models.py:1717 msgid "Fascicolo anno" msgstr "Issue year" -#: uni_ticket/models.py:1709 +#: uni_ticket/models.py:1722 msgid "Configurazione WS Protocollo Categoria" msgstr "Protocol WS category configuration" -#: uni_ticket/models.py:1710 +#: uni_ticket/models.py:1723 msgid "Configurazioni WS Protocollo Categorie" msgstr "Protocol WS categories configuration" -#: uni_ticket/models.py:1735 +#: uni_ticket/models.py:1748 msgid "Alert di struttura agli utenti" msgstr "Structure alert to users" @@ -1989,6 +2005,7 @@ msgid "Nessuna e-mail impostata per l'utente" msgstr "No email set for user" #: uni_ticket/views/generic.py:319 +#: uni_ticket_bootstrap_italia_template/templates/change_user_data.html:28 msgid "Gestione account" msgstr "Account management" @@ -2088,7 +2105,7 @@ msgstr "All requests" msgid "Aggiungi dipendenza da richiesta" msgstr "Add request dependency" -#: uni_ticket/views/management.py:548 +#: uni_ticket/views/management.py:550 msgid "" "La dipendenza non può essere aggiunta. La richiesta {} è dipendente " "da altre richieste" @@ -2096,7 +2113,7 @@ msgstr "" "Dependency cannot be added. The request {} is dependent on other " "requests" -#: uni_ticket/views/management.py:563 +#: uni_ticket/views/management.py:565 msgid "" "La dipendenza non può essere aggiunta. Ci sono richieste che dipendono da " "quella corrente {}" @@ -2104,15 +2121,15 @@ msgstr "" "Dependency cannot be added. There are requests that depend on the current " "one {} " -#: uni_ticket/views/management.py:589 +#: uni_ticket/views/management.py:591 msgid "Aggiunta dipendenza dalla richiesta: {}" msgstr "Request dependency added: {}" -#: uni_ticket/views/management.py:597 +#: uni_ticket/views/management.py:599 msgid "Dipendenza dalla richiesta {} aggiunta con successo" msgstr "Dependency on request {} successfully added" -#: uni_ticket/views/management.py:658 +#: uni_ticket/views/management.py:660 msgid "" "La richiesta {} non è stata assegnata a questa struttura, pertanto " "non puoi gestirla" @@ -2120,27 +2137,27 @@ msgstr "" "The request {} has not been assigned to this facility, therefore you " "cannot handle it" -#: uni_ticket/views/management.py:675 +#: uni_ticket/views/management.py:677 msgid "Rimossa dipendenza dalla richiesta: {}" msgstr "Request dependency removed: {} a" -#: uni_ticket/views/management.py:678 +#: uni_ticket/views/management.py:680 msgid "Dipendenza rimossa correttamente" msgstr "Dependency removed correctly" -#: uni_ticket/views/management.py:752 +#: uni_ticket/views/management.py:754 msgid "Non è possibile chiudere la richiesta, ci sono dipendenze attive!" msgstr "The request cannot be closed, there are active dependencies!" -#: uni_ticket/views/management.py:755 uni_ticket/views/user.py:1410 +#: uni_ticket/views/management.py:757 uni_ticket/views/user.py:1410 msgid "Chiusura della richiesta" msgstr "Closing the request" -#: uni_ticket/views/management.py:793 +#: uni_ticket/views/management.py:795 msgid "Chiusura richiesta ({}): {}" msgstr "Request closure ({}): {}" -#: uni_ticket/views/management.py:807 +#: uni_ticket/views/management.py:809 msgid "" "Richiesta {} chiusa correttamente
    Clicca qui per tornare alle richieste assegnate" @@ -2148,21 +2165,21 @@ msgstr "" "Request {} successfully closed
    Click here to return to the assigned requests " -#: uni_ticket/views/management.py:870 +#: uni_ticket/views/management.py:872 msgid "La richiesta {} non è stata chiusa" msgstr "Request {} has not been closed" -#: uni_ticket/views/management.py:884 +#: uni_ticket/views/management.py:886 msgid "La richiesta {} non può essere riaperta" msgstr "Request {} cannot be reopened" -#: uni_ticket/views/management.py:898 +#: uni_ticket/views/management.py:900 msgid "" "La richiesta {} è stata chiusa dall'utente, pertanto non può essere riaperta" msgstr "" "The request {} has been closed by the user, therefore it cannot be reopened" -#: uni_ticket/views/management.py:912 +#: uni_ticket/views/management.py:914 msgid "" "Nessuno degli uffici assegnati in precedenza può prendere nuovamente in " "carico la richiesta {} e pertanto questa non può essere riaperta" @@ -2170,51 +2187,51 @@ msgstr "" "None of the previously assigned offices can re-process the request {} and " "therefore it cannot be reopened" -#: uni_ticket/views/management.py:920 +#: uni_ticket/views/management.py:922 #: uni_ticket_bootstrap_italia_template/templates/management/ticket_detail.html:274 #: uni_ticket_bootstrap_italia_template/templates/user/ticket_detail.html:93 msgid "Riapertura richiesta" msgstr "Reopening request" -#: uni_ticket/views/management.py:931 uni_ticket/views/user.py:1567 +#: uni_ticket/views/management.py:933 uni_ticket/views/user.py:1567 msgid "Richiesta {} riaperta correttamente" msgstr "Request {} reopened successfully" -#: uni_ticket/views/management.py:1006 uni_ticket/views/management.py:1238 +#: uni_ticket/views/management.py:1008 uni_ticket/views/management.py:1240 msgid "Trasferisci competenza richiesta" msgstr "Transfer request competence" -#: uni_ticket/views/management.py:1102 +#: uni_ticket/views/management.py:1104 msgid "Impossibile assegnare la richiesta all'ufficio selezionato" msgstr "Unable to assign request to selected office" -#: uni_ticket/views/management.py:1120 +#: uni_ticket/views/management.py:1122 msgid "La richiesta è già di competenza dell'ufficio {}" msgstr "The request is already the responsibility of the {} office" -#: uni_ticket/views/management.py:1146 uni_ticket/views/management.py:2339 +#: uni_ticket/views/management.py:1148 uni_ticket/views/management.py:2341 msgid "Competenza abbandonata da Ufficio: {}" msgstr "Competence abandoned by Office: {}" -#: uni_ticket/views/management.py:1162 +#: uni_ticket/views/management.py:1164 msgid "L'ufficio {} non può essere posto in sola lettura" msgstr "The {} office cannot be put in read-only" -#: uni_ticket/views/management.py:1170 +#: uni_ticket/views/management.py:1172 msgid "" "Competenza trasferita da Ufficio: {}. (L'ufficio ha mantenuto accesso in " "sola lettura)" msgstr "Competence transferred from Office: {}. (Office kept read-only access)" -#: uni_ticket/views/management.py:1180 +#: uni_ticket/views/management.py:1182 msgid "Competenza {} aggiunta correttamente" msgstr "Competence {} added successfully" -#: uni_ticket/views/management.py:1187 +#: uni_ticket/views/management.py:1189 msgid "Nuova competenza: {}" msgstr "New competence: {}" -#: uni_ticket/views/management.py:1309 uni_ticket/views/user.py:1254 +#: uni_ticket/views/management.py:1311 uni_ticket/views/user.py:1254 #: uni_ticket_bootstrap_italia_template/templates/management/ticket_detail.html:255 #: uni_ticket_bootstrap_italia_template/templates/manager/counters.html:36 #: uni_ticket_bootstrap_italia_template/templates/manager/counters.html:82 @@ -2232,144 +2249,144 @@ msgstr "New competence: {}" msgid "Messaggi" msgstr "Messages" -#: uni_ticket/views/management.py:1342 +#: uni_ticket/views/management.py:1344 msgid "La richiesta deve essere prima presa in carico" msgstr "The request must first be processed" -#: uni_ticket/views/management.py:1354 uni_ticket/views/user.py:1276 +#: uni_ticket/views/management.py:1356 uni_ticket/views/user.py:1276 msgid "La richiesta non è modificabile" msgstr "The request cannot be modified" -#: uni_ticket/views/management.py:1372 +#: uni_ticket/views/management.py:1374 msgid "Nuovo messaggio (da operatore {}). Oggetto: {} / Testo: {}" msgstr "New message (from operator {}). Subject: {} / Text: {}" -#: uni_ticket/views/management.py:1379 +#: uni_ticket/views/management.py:1381 msgid "ricevuto" msgstr "received" -#: uni_ticket/views/management.py:1391 +#: uni_ticket/views/management.py:1393 msgid "{} - richiesta {} nuovo messaggio" msgstr "{} - request {} new message" -#: uni_ticket/views/management.py:1403 uni_ticket/views/user.py:1354 +#: uni_ticket/views/management.py:1405 uni_ticket/views/user.py:1354 msgid "Messaggio inviato con successo" msgstr "The message has been successfully sent" -#: uni_ticket/views/management.py:1485 +#: uni_ticket/views/management.py:1487 msgid "Aggiungi Attività" msgstr "Add task" -#: uni_ticket/views/management.py:1506 +#: uni_ticket/views/management.py:1508 msgid "Aggiunta attività: {}" msgstr "Task added: {}" -#: uni_ticket/views/management.py:1513 +#: uni_ticket/views/management.py:1515 msgid "Attività {} creata con successo" msgstr "Task {} successfully created" -#: uni_ticket/views/management.py:1575 +#: uni_ticket/views/management.py:1577 msgid "Rimossa attività: {}" msgstr "Removed task: {}" -#: uni_ticket/views/management.py:1579 +#: uni_ticket/views/management.py:1581 msgid "Attività {} rimossa correttamente" msgstr "Task {} successfully removed" -#: uni_ticket/views/management.py:1659 +#: uni_ticket/views/management.py:1661 msgid "Dettaglio attività" msgstr "Task details" -#: uni_ticket/views/management.py:1697 uni_ticket/views/management.py:2100 +#: uni_ticket/views/management.py:1699 uni_ticket/views/management.py:2102 msgid "Impossibile modificare un'attività chiusa" msgstr "Unable to edit a closed task" -#: uni_ticket/views/management.py:1710 +#: uni_ticket/views/management.py:1712 msgid "Task {} - Priorità assegnata: {}" msgstr "Task {} - Priority assigned: {}" -#: uni_ticket/views/management.py:1726 uni_ticket/views/management.py:2136 +#: uni_ticket/views/management.py:1728 uni_ticket/views/management.py:2138 msgid "Attività aggiornata con successo" msgstr "Task updated successfully" -#: uni_ticket/views/management.py:1819 +#: uni_ticket/views/management.py:1821 msgid "Attività già chiusa!" msgstr "Already closed task!" -#: uni_ticket/views/management.py:1824 uni_ticket/views/management.py:1973 +#: uni_ticket/views/management.py:1826 uni_ticket/views/management.py:1975 msgid "La richiesta {} è chiusa" msgstr "Request {} is closed" -#: uni_ticket/views/management.py:1828 +#: uni_ticket/views/management.py:1830 msgid "Chiusura dell'attività" msgstr "Closing task" -#: uni_ticket/views/management.py:1857 +#: uni_ticket/views/management.py:1859 msgid "Chiusura attività ({}): {} - {}" msgstr "Closing task ({}): {} - {}" -#: uni_ticket/views/management.py:1903 +#: uni_ticket/views/management.py:1905 msgid "Attività {} chiusa correttamente" msgstr "Task {} closed successfully" -#: uni_ticket/views/management.py:1960 +#: uni_ticket/views/management.py:1962 msgid "L'attività non è stata chiusa" msgstr "The task has not been closed" -#: uni_ticket/views/management.py:1988 +#: uni_ticket/views/management.py:1990 msgid "Riapertura attività {}" msgstr "Reopening task {}" -#: uni_ticket/views/management.py:2005 +#: uni_ticket/views/management.py:2007 msgid "Attività {} riaperta correttamente" msgstr "Task {} reopened successfully" -#: uni_ticket/views/management.py:2080 uni_ticket/views/manager.py:2880 +#: uni_ticket/views/management.py:2082 uni_ticket/views/manager.py:2880 #: uni_ticket_bootstrap_italia_template/templates/management/task_detail.html:140 #: uni_ticket_bootstrap_italia_template/templates/management/task_edit.html:20 #: uni_ticket_bootstrap_italia_template/templates/manager/category_task_edit.html:20 msgid "Modifica attività" msgstr "Edit task" -#: uni_ticket/views/management.py:2112 +#: uni_ticket/views/management.py:2114 msgid "Modifica attività {}" msgstr "Edit task {}" -#: uni_ticket/views/management.py:2115 +#: uni_ticket/views/management.py:2117 msgid " e Priorità assegnata: {}" msgstr " and Priority assigned: {}" -#: uni_ticket/views/management.py:2202 +#: uni_ticket/views/management.py:2204 msgid "Permessi di modifica dell'attività mancanti" msgstr "Missing task modification permissions" -#: uni_ticket/views/management.py:2212 uni_ticket/views/manager.py:2960 +#: uni_ticket/views/management.py:2214 uni_ticket/views/manager.py:2960 msgid "Allegato attività {} eliminato" msgstr "Task attachment {} deleted" -#: uni_ticket/views/management.py:2214 +#: uni_ticket/views/management.py:2216 msgid "Allegato eliminato" msgstr "Attachment deleted" -#: uni_ticket/views/management.py:2252 +#: uni_ticket/views/management.py:2254 msgid "Ticket {} correttamente assegnato a Ufficio: {} [{}]" msgstr "Ticket {} correctly assigned to Office: {} [{}] " -#: uni_ticket/views/management.py:2302 +#: uni_ticket/views/management.py:2304 msgid "Abbandona competenza richiesta" msgstr "Leave request competence" -#: uni_ticket/views/management.py:2304 +#: uni_ticket/views/management.py:2306 msgid "" "Seleziona l'ufficio che deve abbandonare la competenza sulla richiesta \"{}\"" msgstr "" "Select the office that should abandon competence over the request \"{}\"" -#: uni_ticket/views/management.py:2346 +#: uni_ticket/views/management.py:2348 msgid "Competenza ufficio {} abbandonata con successo" msgstr "Office {} competence successfully abandoned" -#: uni_ticket/views/management.py:2357 +#: uni_ticket/views/management.py:2359 #, fuzzy #| msgid "" #| "Operazione non consentita
    Rimuovendo la competenza di {} Operation not allowed
    By removing the competence of {} , the request would no longer be handled by any office." -#: uni_ticket/views/management.py:2392 uni_ticket/views/management.py:2442 +#: uni_ticket/views/management.py:2394 uni_ticket/views/management.py:2444 msgid "Forbidden" msgstr "" -#: uni_ticket/views/management.py:2441 +#: uni_ticket/views/management.py:2443 msgid "Nessun record da esportare" msgstr "No records" -#: uni_ticket/views/management.py:2469 +#: uni_ticket/views/management.py:2471 msgid "" "La data di inizio non può essere successiva a quella di fine. La data di " "inizio è stata corretta a {} e quella di fine a {}" @@ -2397,7 +2414,7 @@ msgstr "" "The start date cannot be later than the end date. The start date has been " "corrected to {} and the end date to {}" -#: uni_ticket/views/management.py:2482 +#: uni_ticket/views/management.py:2484 msgid "" "La finestra oraria massima per le statistiche è di {} giorni. La data di " "inizio è stata corretta a {}" @@ -2405,12 +2422,12 @@ msgstr "" "The maximum time window for statistics is {} days. The start date has been " "corrected to {}" -#: uni_ticket/views/management.py:2512 +#: uni_ticket/views/management.py:2514 #: uni_ticket_bootstrap_italia_template/templates/manager/main_menu.html:39 msgid "Statistiche" msgstr "" -#: uni_ticket/views/management.py:2513 +#: uni_ticket/views/management.py:2515 msgid "Struttura {} - dal {} al {}" msgstr "" @@ -3242,11 +3259,6 @@ msgstr "I accept" msgid "Dashboard" msgstr "" -#: uni_ticket_bootstrap_italia_template/templates/change_user_data.html:28 -#: uni_ticket_bootstrap_italia_template/templates/user/main_menu.html:42 -msgid "Account" -msgstr "" - #: uni_ticket_bootstrap_italia_template/templates/change_user_data.html:66 msgid "Vuoi confermare i dati immessi?" msgstr "Do you want confirm the entered data?" @@ -5490,6 +5502,10 @@ msgstr "New request" msgid "Inizia nuova chat" msgstr "Start new chat" +#: uni_ticket_bootstrap_italia_template/templates/user/main_menu.html:42 +msgid "Account" +msgstr "" + #: uni_ticket_bootstrap_italia_template/templates/user/new_chat_preload.html:41 msgid "Seleziona la struttura con la quale collegarti in Chat" msgstr "Select the structure with which to connect in Chat" @@ -5616,11 +5632,11 @@ msgstr "Other informations" msgid "E-mail" msgstr "" -#: uni_ticket_project/settingslocal.py:358 +#: uni_ticket_project/settingslocal.py:363 msgid "Italiano" msgstr "Italian" -#: uni_ticket_project/settingslocal.py:359 +#: uni_ticket_project/settingslocal.py:364 msgid "Inglese" msgstr "English" diff --git a/uniticket/uni_ticket/forms.py b/uniticket/uni_ticket/forms.py index bbeb46ca..1cb2495c 100644 --- a/uniticket/uni_ticket/forms.py +++ b/uniticket/uni_ticket/forms.py @@ -1,6 +1,7 @@ from django import forms from django.conf import settings from django.contrib.auth import get_user_model +from django.core.exceptions import ValidationError from django.forms import ModelChoiceField, ModelForm from django.forms.widgets import CheckboxSelectMultiple from django.utils.translation import gettext_lazy as _ @@ -369,43 +370,50 @@ def label_from_instance(self, obj): class TicketDependenceForm(forms.Form): """ """ - ticket = MyDependenceChoiceField( - queryset=None, required=True, widget=BootstrapItaliaSelectWidget - ) + # ticket = MyDependenceChoiceField( + # queryset=None, required=True, widget=BootstrapItaliaSelectWidget + # ) + ticket = forms.CharField(label=_("Ticket"), required=True, + help_text=_("Codice univoco identificativo della richiesta")) note = forms.CharField( label=_("Note"), widget=forms.Textarea(attrs={"rows": 2}), required=True ) def __init__(self, *args, **kwargs): - user = kwargs.pop("user", None) - structure = kwargs.pop("structure", None) - current_ticket_id = kwargs.pop("ticket_id", None) - ticket_dependences_pk_list = kwargs.pop("ticket_dependences", []) - ticket_id_list = [] + self.user = kwargs.pop("user", None) + self.structure = kwargs.pop("structure", None) + self.current_ticket_code = kwargs.pop("ticket_code", None) + self.current_ticket_id = kwargs.pop("ticket_id", None) + self.ticket_dependences_pk_list = kwargs.pop("ticket_dependences", []) + super().__init__(*args, **kwargs) + + def clean_ticket(self): + code = self.cleaned_data["ticket"] + + if code == self.current_ticket_code: + raise ValidationError(_("Non si può rendere un ticket dipendente da sè stesso")) + if code in self.ticket_dependences_pk_list: + raise ValidationError(_("Dipendenza già attiva")) + # if user is manager/default_office operator: - # he views all tickets followed by structure offices - if user_is_manager(user, structure) or user_is_in_default_office( - user, structure - ): - ticket_id_list = TicketAssignment.get_ticket_per_structure( - structure) + # search in structure offices + if user_is_manager(self.user, self.structure) or user_is_in_default_office(self.user, self.structure): + ticket_id_list = TicketAssignment.get_ticket_per_structure(structure=self.structure, + ticket_codes=[code]) # if user is operator: - # he views all tickets followed in his offices + # search in his offices tickets else: - user_offices = user_is_operator(user, structure) + user_offices = user_is_operator(self.user, self.structure) offices_list = user_offices_list(user_offices) ticket_id_list = TicketAssignment.get_ticket_in_office_list( offices_list=offices_list, - taken=True) - ticket_id_list = ticket_id_list.exclude(ticket__pk=current_ticket_id) - cleaned_list = [ - pk for pk in ticket_id_list if pk not in ticket_dependences_pk_list - ] - ticket_list = Ticket.objects.filter( - pk__in=cleaned_list, is_closed=False) - super().__init__(*args, **kwargs) - self.fields["ticket"].queryset = ticket_list - self.fields["ticket"].to_field_name = "code" + taken=True, + ticket_codes=[code]) + + if not ticket_id_list: + raise ValidationError(_("Ticket non trovato tra quelli gestiti")) + + return Ticket.objects.get(code=code) class Media: js = ("js/textarea-autosize.js",) diff --git a/uniticket/uni_ticket/models.py b/uniticket/uni_ticket/models.py index 03e7b03b..a82c2665 100644 --- a/uniticket/uni_ticket/models.py +++ b/uniticket/uni_ticket/models.py @@ -1207,7 +1207,8 @@ def get_ticket_per_structure(structure, closed=None, taken=None, taken_by=None, - priority_first=True): + priority_first=True, + ticket_codes=[]): """ """ q_base = Q(office__organizational_structure=structure, office__is_active=True) @@ -1224,18 +1225,21 @@ def get_ticket_per_structure(structure, if taken_by: q_base &= Q(taken_by=taken_by) + if ticket_codes: + q_base &= Q(ticket__code__in=ticket_codes) + ordering_list = ["ticket__priority", "-ticket__created"] if not priority_first: ordering_list.remove("ticket__priority") - ticket_assignments = TicketAssignment.objects\ + tickets = TicketAssignment.objects\ .filter( q_base ).values_list("ticket__pk", flat=True)\ .order_by(*ordering_list)\ .distinct() - return ticket_assignments + return tickets @staticmethod def get_ticket_in_office_list(offices_list, @@ -1243,37 +1247,37 @@ def get_ticket_in_office_list(offices_list, closed=None, taken=None, taken_by=None, - priority_first=True): + priority_first=True, + ticket_codes=[]): """ """ q_base = Q(office__in=offices_list, office__is_active=True) + if closed is not None: + q_base &= Q(ticket__is_closed=closed) + + if taken is not None: + q_base &= Q(taken_date__isnull=not taken) - q_closed = Q() - if closed == True: q_closed = Q(ticket__is_closed=True) - elif closed == False: q_closed = Q(ticket__is_closed=False) + if follow_check: + q_base &= Q(follow=True) - q_taken = Q() - if taken == True: q_taken = Q(taken_date__isnull=False) - elif taken == False: q_taken = Q(taken_date__isnull=True) + if taken_by: + q_base &= Q(taken_by=taken_by) - q_taken_by = Q(taken_by=taken_by) if taken_by else Q() - q_follow = Q(follow=True) if follow_check else Q() + if ticket_codes: + q_base &= Q(ticket__code__in=ticket_codes) ordering_list = ["ticket__priority", "-ticket__created"] if not priority_first: ordering_list.remove("ticket__priority") - ticket_assignments = TicketAssignment.objects.filter( + tickets = TicketAssignment.objects.filter( q_base, - q_closed, - q_taken, - q_taken_by, - q_follow ).values_list("ticket__pk", flat=True)\ .order_by(*ordering_list)\ .distinct() - return ticket_assignments + return tickets def save(self, *args, **kwargs): super().save(*args, **kwargs) diff --git a/uniticket/uni_ticket/views/management.py b/uniticket/uni_ticket/views/management.py index 45908cae..5f4ca723 100644 --- a/uniticket/uni_ticket/views/management.py +++ b/uniticket/uni_ticket/views/management.py @@ -526,6 +526,7 @@ def ticket_dependence_add_new( form = TicketDependenceForm( user=request.user, structure=structure, + ticket_code=ticket.code, ticket_id=ticket.pk, ticket_dependences=ticket_dependences_code_list, ) @@ -534,6 +535,7 @@ def ticket_dependence_add_new( request.POST, user=request.user, structure=structure, + ticket_code=ticket.code, ticket_id=ticket.pk, ticket_dependences=ticket_dependences_code_list, )