From 93e55e4b737179bc847912333695400d7292b14b Mon Sep 17 00:00:00 2001 From: nataly Date: Thu, 23 May 2024 16:57:23 +0300 Subject: [PATCH] New changes. --- .../__pycache__/__init__.cpython-312.pyc | Bin 189 -> 189 bytes .../__pycache__/admin.cpython-312.pyc | Bin 693 -> 693 bytes .../__pycache__/apps.cpython-312.pyc | Bin 505 -> 505 bytes .../__pycache__/models.cpython-312.pyc | Bin 2897 -> 2897 bytes .../__pycache__/0001_initial.cpython-312.pyc | Bin 898 -> 898 bytes .../0002_country_addressbook.cpython-312.pyc | Bin 1847 -> 1847 bytes .../__pycache__/0003_contact.cpython-312.pyc | Bin 1410 -> 1410 bytes .../0004_socialmedia.cpython-312.pyc | Bin 1231 -> 1231 bytes ...05_socialmedia_addressbook.cpython-312.pyc | Bin 1000 -> 1000 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 200 -> 200 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 185 -> 185 bytes .../billing/__pycache__/admin.cpython-312.pyc | Bin 1024 -> 1024 bytes .../billing/__pycache__/apps.cpython-312.pyc | Bin 493 -> 493 bytes .../__pycache__/models.cpython-312.pyc | Bin 10236 -> 10236 bytes .../billing/__pycache__/urls.cpython-312.pyc | Bin 1226 -> 1226 bytes .../billing/__pycache__/views.cpython-312.pyc | Bin 3583 -> 3583 bytes .../add/__pycache__/urls.cpython-312.pyc | Bin 1070 -> 1070 bytes .../add/__pycache__/views.cpython-312.pyc | Bin 12211 -> 12211 bytes .../delete/__pycache__/urls.cpython-312.pyc | Bin 583 -> 583 bytes .../delete/__pycache__/views.cpython-312.pyc | Bin 1367 -> 1367 bytes .../edit/__pycache__/urls.cpython-312.pyc | Bin 640 -> 640 bytes .../edit/__pycache__/views.cpython-312.pyc | Bin 1775 -> 1775 bytes .../__pycache__/0001_initial.cpython-312.pyc | Bin 2244 -> 2244 bytes ...vice_cancelled_at_and_more.cpython-312.pyc | Bin 1214 -> 1214 bytes ...003_payment_servicepayment.cpython-312.pyc | Bin 1847 -> 1847 bytes ...rename_payment_paymenttype.cpython-312.pyc | Bin 688 -> 688 bytes ...05_service_recurring_cycle.cpython-312.pyc | Bin 1015 -> 1015 bytes ...ervice_created_at_and_more.cpython-312.pyc | Bin 1092 -> 1092 bytes ...er_service_recurring_cycle.cpython-312.pyc | Bin 1076 -> 1076 bytes .../0008_alter_service_type.cpython-312.pyc | Bin 1067 -> 1067 bytes ...cepayment_service_and_more.cpython-312.pyc | Bin 1823 -> 1823 bytes .../0010_charge_amount.cpython-312.pyc | Bin 853 -> 853 bytes .../__pycache__/0011_invoice.cpython-312.pyc | Bin 1291 -> 1291 bytes ...nt_charge_receipt_and_more.cpython-312.pyc | Bin 1456 -> 1456 bytes ...alter_invoice_date_created.cpython-312.pyc | Bin 796 -> 796 bytes ...014_servicepayment_comment.cpython-312.pyc | Bin 798 -> 798 bytes .../__pycache__/0015_order.cpython-312.pyc | Bin 1528 -> 1528 bytes .../0016_alter_order_status.cpython-312.pyc | Bin 882 -> 882 bytes .../0017_service_order.cpython-312.pyc | Bin 989 -> 989 bytes .../0018_alter_order_status.cpython-312.pyc | Bin 890 -> 890 bytes ..._service_customer_and_more.cpython-312.pyc | Bin 4689 -> 4689 bytes .../0020_orderitem.cpython-312.pyc | Bin 1344 -> 1344 bytes ...m_recurring_cycle_and_more.cpython-312.pyc | Bin 1124 -> 1124 bytes ...e_item_created_at_and_more.cpython-312.pyc | Bin 1150 -> 1150 bytes ...em_project_alter_item_type.cpython-312.pyc | Bin 1370 -> 1370 bytes .../0024_remove_item_active.cpython-312.pyc | Bin 682 -> 682 bytes ...item_project_item_customer.cpython-312.pyc | Bin 1176 -> 1176 bytes ...tem_type_remove_order_paid.cpython-312.pyc | Bin 836 -> 836 bytes .../0027_item_type.cpython-312.pyc | Bin 859 -> 859 bytes ...0028_remove_order_due_date.cpython-312.pyc | Bin 663 -> 663 bytes .../0029_invoice_pdf.cpython-312.pyc | Bin 788 -> 788 bytes .../0030_alter_invoice_order.cpython-312.pyc | Bin 982 -> 982 bytes ...ter_invoice_invoice_number.cpython-312.pyc | Bin 809 -> 809 bytes .../0032_order_business.cpython-312.pyc | Bin 1066 -> 1066 bytes .../0033_alter_order_status.cpython-312.pyc | Bin 907 -> 907 bytes .../0034_alter_invoice_pdf.cpython-312.pyc | Bin 810 -> 810 bytes .../0035_alter_invoice_pdf.cpython-312.pyc | Bin 792 -> 792 bytes ...ter_invoice_invoice_number.cpython-312.pyc | Bin 818 -> 818 bytes .../0037_recurringcycle_item.cpython-312.pyc | Bin 998 -> 998 bytes .../0038_alter_invoice_pdf.cpython-312.pyc | Bin 810 -> 810 bytes ...recurringcycle_cycle_price.cpython-312.pyc | Bin 787 -> 787 bytes ..._orderitem_end_at_and_more.cpython-312.pyc | Bin 939 -> 939 bytes .../0041_orderitem_active.cpython-312.pyc | Bin 806 -> 806 bytes .../0042_order_due_date.cpython-312.pyc | Bin 772 -> 772 bytes .../0043_alter_invoice_pdf.cpython-312.pyc | Bin 808 -> 808 bytes ...044_alter_orderitem_active.cpython-312.pyc | Bin 788 -> 788 bytes ...ter_orderpayment_date_paid.cpython-312.pyc | Bin 962 -> 962 bytes ...t_order_orderpayment_order.cpython-312.pyc | Bin 1134 -> 1134 bytes ...cription_paymenttype_image.cpython-312.pyc | Bin 1003 -> 1003 bytes ...e_order_status_orderstatus.cpython-312.pyc | Bin 1565 -> 1565 bytes ...rename_due_date_order_date.cpython-312.pyc | Bin 715 -> 715 bytes ...ent_type_orderpayment_type.cpython-312.pyc | Bin 925 -> 925 bytes ..._alter_orderpayment_amount.cpython-312.pyc | Bin 807 -> 807 bytes ...2_alter_orderstatus_status.cpython-312.pyc | Bin 937 -> 937 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 196 -> 196 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 190 -> 190 bytes .../__pycache__/admin.cpython-312.pyc | Bin 805 -> 805 bytes .../__pycache__/apps.cpython-312.pyc | Bin 508 -> 508 bytes .../custom_context.cpython-312.pyc | Bin 2585 -> 2585 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 1335 -> 1335 bytes .../__pycache__/models.cpython-312.pyc | Bin 6046 -> 6072 bytes .../__pycache__/urls.cpython-312.pyc | Bin 2244 -> 2244 bytes .../__pycache__/views.cpython-312.pyc | Bin 11194 -> 11194 bytes .../add/__pycache__/urls.cpython-312.pyc | Bin 784 -> 784 bytes .../add/__pycache__/views.cpython-312.pyc | Bin 8419 -> 8419 bytes .../0018_alter_ticketattachment_file.py | 18 + osinaweb/customercore/migrations/0019_file.py | 22 + .../0020_alter_ticketattachment_file.py | 18 + .../migrations/0021_file_ticket.py | 19 + .../migrations/0022_remove_file_ticket.py | 17 + ...e_remove_ticketattachment_file_and_more.py | 25 ++ .../__pycache__/0001_initial.cpython-312.pyc | Bin 4262 -> 4262 bytes ...02_alter_ticket_department.cpython-312.pyc | Bin 1083 -> 1083 bytes ...mer_ticket_status_and_more.cpython-312.pyc | Bin 1548 -> 1548 bytes ...ket_ticket_number_and_more.cpython-312.pyc | Bin 1259 -> 1259 bytes .../0005_ticketstatusupdate.cpython-312.pyc | Bin 1859 -> 1859 bytes .../0006_ticketupdate_read.cpython-312.pyc | Bin 796 -> 796 bytes ...ead_ticketupdatereadstatus.cpython-312.pyc | Bin 1775 -> 1775 bytes ...pdatereadstatus_ticketread.cpython-312.pyc | Bin 916 -> 916 bytes ...er_ticketattachment_ticket.cpython-312.pyc | Bin 1062 -> 1062 bytes ...ction_ticketupdatereaction.cpython-312.pyc | Bin 737 -> 737 bytes ...ketupdatereaction_customer.cpython-312.pyc | Bin 1219 -> 1219 bytes ...0012_ticket_ticket_members.cpython-312.pyc | Bin 1034 -> 1034 bytes ...lter_ticket_ticket_members.cpython-312.pyc | Bin 903 -> 903 bytes ...partment_ticket_department.cpython-312.pyc | Bin 984 -> 984 bytes ...artment_ticket_departments.cpython-312.pyc | Bin 757 -> 757 bytes ...tstatusupdate_ticketstatus.cpython-312.pyc | Bin 901 -> 901 bytes .../0017_tickettask.cpython-312.pyc | Bin 1395 -> 1395 bytes ...lter_ticketattachment_file.cpython-312.pyc | Bin 0 -> 809 bytes .../__pycache__/0019_file.cpython-312.pyc | Bin 0 -> 1109 bytes ...lter_ticketattachment_file.cpython-312.pyc | Bin 0 -> 809 bytes .../0021_file_ticket.cpython-312.pyc | Bin 0 -> 1017 bytes .../0022_remove_file_ticket.cpython-312.pyc | Bin 0 -> 669 bytes ...etattachment_file_and_more.cpython-312.pyc | Bin 0 -> 1017 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 201 -> 201 bytes osinaweb/customercore/models.py | 6 +- .../payment/__pycache__/urls.cpython-312.pyc | Bin 1390 -> 1390 bytes .../payment/__pycache__/views.cpython-312.pyc | Bin 14939 -> 14939 bytes osinaweb/db.sqlite3 | Bin 1335296 -> 1355776 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 187 -> 187 bytes .../__pycache__/admin.cpython-312.pyc | Bin 3451 -> 3451 bytes .../__pycache__/apps.cpython-312.pyc | Bin 499 -> 499 bytes .../custom_context.cpython-312.pyc | Bin 6468 -> 6468 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 1318 -> 1318 bytes .../__pycache__/forms.cpython-312.pyc | Bin 1270 -> 1270 bytes .../__pycache__/models.cpython-312.pyc | Bin 23840 -> 23840 bytes .../__pycache__/urls.cpython-312.pyc | Bin 6422 -> 6422 bytes .../__pycache__/views.cpython-312.pyc | Bin 39114 -> 39114 bytes .../add/__pycache__/urls.cpython-312.pyc | Bin 3218 -> 3318 bytes .../add/__pycache__/views.cpython-312.pyc | Bin 28266 -> 30483 bytes osinaweb/osinacore/add/urls.py | 3 + osinaweb/osinacore/add/views.py | 384 +++++++++--------- .../__pycache__/serializers.cpython-312.pyc | Bin 1181 -> 1181 bytes .../api/__pycache__/urls.cpython-312.pyc | Bin 394 -> 394 bytes .../api/__pycache__/views.cpython-312.pyc | Bin 1966 -> 1966 bytes .../delete/__pycache__/urls.cpython-312.pyc | Bin 1704 -> 1704 bytes .../delete/__pycache__/views.cpython-312.pyc | Bin 6009 -> 6009 bytes .../edit/__pycache__/urls.cpython-312.pyc | Bin 2998 -> 2998 bytes .../edit/__pycache__/views.cpython-312.pyc | Bin 26794 -> 26794 bytes .../__pycache__/0001_initial.cpython-312.pyc | Bin 3804 -> 3804 bytes ...ions_staffprofile_and_more.cpython-312.pyc | Bin 3960 -> 3960 bytes .../0003_milestone.cpython-312.pyc | Bin 1505 -> 1505 bytes .../__pycache__/0004_epic.cpython-312.pyc | Bin 1447 -> 1447 bytes .../0005_staffprofile_image.cpython-312.pyc | Bin 779 -> 779 bytes .../__pycache__/0006_note.cpython-312.pyc | Bin 1685 -> 1685 bytes ...ct_id_alter_project_status.cpython-312.pyc | Bin 1058 -> 1058 bytes ...8_alter_project_project_id.cpython-312.pyc | Bin 837 -> 837 bytes ...9_alter_project_project_id.cpython-312.pyc | Bin 821 -> 821 bytes .../0010_remove_note_date.cpython-312.pyc | Bin 672 -> 672 bytes ...r_alter_note_text_and_more.cpython-312.pyc | Bin 1808 -> 1808 bytes .../0012_projectrequirement.cpython-312.pyc | Bin 1295 -> 1295 bytes .../0013_projectfile.cpython-312.pyc | Bin 1410 -> 1410 bytes ...014_alter_projectfile_file.cpython-312.pyc | Bin 790 -> 790 bytes .../0015_projectcredentials.cpython-312.pyc | Bin 1416 -> 1416 bytes ...dentials_projectcredential.cpython-312.pyc | Bin 722 -> 722 bytes ...e_alter_project_start_date.cpython-312.pyc | Bin 966 -> 966 bytes .../0018_epic_status.cpython-312.pyc | Bin 866 -> 866 bytes ...date_alter_epic_start_date.cpython-312.pyc | Bin 924 -> 924 bytes .../__pycache__/0020_task.cpython-312.pyc | Bin 1942 -> 1942 bytes ...rprofile_business_and_more.cpython-312.pyc | Bin 2856 -> 2856 bytes ...ustomerprofile_customer_id.cpython-312.pyc | Bin 847 -> 847 bytes .../0023_task_assigned_to.cpython-312.pyc | Bin 1005 -> 1005 bytes .../0024_task_task_id.cpython-312.pyc | Bin 793 -> 793 bytes .../__pycache__/0025_status.cpython-312.pyc | Bin 1576 -> 1576 bytes ...e_status_user_status_staff.cpython-312.pyc | Bin 1128 -> 1128 bytes .../0027_alter_status_staff.cpython-312.pyc | Bin 1046 -> 1046 bytes ...8_remove_projecttype_color.cpython-312.pyc | Bin 682 -> 682 bytes .../0029_alter_reference_date.cpython-312.pyc | Bin 791 -> 791 bytes .../__pycache__/0030_tag.cpython-312.pyc | Bin 919 -> 919 bytes ...1_alter_staffprofile_image.cpython-312.pyc | Bin 797 -> 797 bytes .../__pycache__/0032_point.cpython-312.pyc | Bin 1429 -> 1429 bytes ...nt_date_workingon_and_more.cpython-312.pyc | Bin 1219 -> 1219 bytes ...nt_date_completed_and_more.cpython-312.pyc | Bin 1275 -> 1275 bytes .../0035_business_business_id.cpython-312.pyc | Bin 829 -> 829 bytes ...lter_staffprofile_position.cpython-312.pyc | Bin 1160 -> 1160 bytes ...move_staffprofile_position.cpython-312.pyc | Bin 714 -> 714 bytes ...taffprofile_staff_position.cpython-312.pyc | Bin 1029 -> 1029 bytes ...taffprofile_staff_position.cpython-312.pyc | Bin 1054 -> 1054 bytes ...0040_staffprofile_staff_id.cpython-312.pyc | Bin 829 -> 829 bytes .../0041_dailyreport.cpython-312.pyc | Bin 1467 -> 1467 bytes ...omerprofile_email_and_more.cpython-312.pyc | Bin 1173 -> 1173 bytes .../0043_businesstype.cpython-312.pyc | Bin 955 -> 955 bytes ...ove_business_business_type.cpython-312.pyc | Bin 686 -> 686 bytes .../0045_business_type.cpython-312.pyc | Bin 1019 -> 1019 bytes .../0046_task_requirement.cpython-312.pyc | Bin 1015 -> 1015 bytes .../0047_task_status_date.cpython-312.pyc | Bin 920 -> 920 bytes ...r_customerprofile_business.cpython-312.pyc | Bin 1074 -> 1074 bytes ...r_customerprofile_business.cpython-312.pyc | Bin 1042 -> 1042 bytes ...by_projectrequirement_date.cpython-312.pyc | Bin 1374 -> 1374 bytes ...051_alter_task_requirement.cpython-312.pyc | Bin 1045 -> 1045 bytes .../0052_note_project.cpython-312.pyc | Bin 998 -> 998 bytes .../0053_pointactivity.cpython-312.pyc | Bin 1289 -> 1289 bytes ...nt_date_completed_and_more.cpython-312.pyc | Bin 926 -> 926 bytes .../0055_alter_point_status.cpython-312.pyc | Bin 921 -> 921 bytes ...ter_pointactivity_end_time.cpython-312.pyc | Bin 806 -> 806 bytes ...otal_time_minutes_and_more.cpython-312.pyc | Bin 1105 -> 1105 bytes ..._total_time_hours_and_more.cpython-312.pyc | Bin 904 -> 904 bytes ...059_alter_task_requirement.cpython-312.pyc | Bin 1050 -> 1050 bytes ...0_pointactivity_total_time.cpython-312.pyc | Bin 806 -> 806 bytes ...date_alter_task_start_date.cpython-312.pyc | Bin 927 -> 927 bytes .../0062_connection.cpython-312.pyc | Bin 1566 -> 1566 bytes ...0063_alter_connection_date.cpython-312.pyc | Bin 773 -> 773 bytes .../__pycache__/0064_reaction.cpython-312.pyc | Bin 1596 -> 1596 bytes ...ter_customerprofile_status.cpython-312.pyc | Bin 909 -> 909 bytes ...business_business_customer.cpython-312.pyc | Bin 1165 -> 1165 bytes ..._customerprofile_confirmed.cpython-312.pyc | Bin 848 -> 848 bytes ...profile_confirmed_and_more.cpython-312.pyc | Bin 1053 -> 1053 bytes ..._projectfile_file_and_more.cpython-312.pyc | Bin 1178 -> 1178 bytes ...le_staff_position_and_more.cpython-312.pyc | Bin 1755 -> 1755 bytes ...jecttype_department_ticket.cpython-312.pyc | Bin 2358 -> 2358 bytes ...treaction_ticketattachment.cpython-312.pyc | Bin 2736 -> 2736 bytes ...073_alter_ticket_regarding.cpython-312.pyc | Bin 927 -> 927 bytes ...ed_ticketupdate_date_added.cpython-312.pyc | Bin 740 -> 740 bytes ...attachment_ticket_and_more.cpython-312.pyc | Bin 1334 -> 1334 bytes .../0076_alter_reference_date.cpython-312.pyc | Bin 782 -> 782 bytes ...oject_active_projectstatus.cpython-312.pyc | Bin 1737 -> 1737 bytes ...alter_projectstatus_status.cpython-312.pyc | Bin 933 -> 933 bytes ...e_alter_project_start_date.cpython-312.pyc | Bin 917 -> 917 bytes .../0080_project_logo.cpython-312.pyc | Bin 822 -> 822 bytes .../0081_status_task.cpython-312.pyc | Bin 1030 -> 1030 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 198 -> 198 bytes .../templates/add_templates/add-ticket.html | 82 ++-- .../details_templates/ticket-details.html | 2 +- osinaweb/osinacore/templates/index.html | 196 ++++----- .../__pycache__/__init__.cpython-312.pyc | Bin 186 -> 186 bytes .../__pycache__/settings.cpython-312.pyc | Bin 3549 -> 3549 bytes .../osinaweb/__pycache__/urls.cpython-312.pyc | Bin 1477 -> 1477 bytes .../osinaweb/__pycache__/wsgi.cpython-312.pyc | Bin 676 -> 676 bytes osinaweb/static/dist/output.css | 66 ++- osinaweb/static/images/hello-test.png | Bin 0 -> 8475 bytes osinaweb/static/images/image_11_OJ1Sutx.pdf | Bin 0 -> 36285 bytes .../images/uploaded_ticket_files/hi.pdf | Bin 0 -> 21875 bytes .../Lab_6_-_Salim_Elliye__Caren_Hachem_2.docx | Bin 0 -> 997968 bytes .../images/uploaded_ticket_files/.DS_Store | Bin 0 -> 6148 bytes osinaweb/static/js/uploader-bar.js | 165 ++++---- 235 files changed, 611 insertions(+), 412 deletions(-) create mode 100644 osinaweb/customercore/migrations/0018_alter_ticketattachment_file.py create mode 100644 osinaweb/customercore/migrations/0019_file.py create mode 100644 osinaweb/customercore/migrations/0020_alter_ticketattachment_file.py create mode 100644 osinaweb/customercore/migrations/0021_file_ticket.py create mode 100644 osinaweb/customercore/migrations/0022_remove_file_ticket.py create mode 100644 osinaweb/customercore/migrations/0023_delete_file_remove_ticketattachment_file_and_more.py create mode 100644 osinaweb/customercore/migrations/__pycache__/0018_alter_ticketattachment_file.cpython-312.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0019_file.cpython-312.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0020_alter_ticketattachment_file.cpython-312.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0021_file_ticket.cpython-312.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0022_remove_file_ticket.cpython-312.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0023_delete_file_remove_ticketattachment_file_and_more.cpython-312.pyc create mode 100644 osinaweb/static/images/hello-test.png create mode 100644 osinaweb/static/images/image_11_OJ1Sutx.pdf create mode 100644 osinaweb/static/images/images/uploaded_ticket_files/hi.pdf create mode 100644 osinaweb/static/images/uploaded_images/Lab_6_-_Salim_Elliye__Caren_Hachem_2.docx create mode 100644 osinaweb/static/images/uploaded_ticket_files/.DS_Store diff --git a/osinaweb/addressbook/__pycache__/__init__.cpython-312.pyc b/osinaweb/addressbook/__pycache__/__init__.cpython-312.pyc index d77e46870343c5ba14c42dca5779a49683718acc..4d30b94c8befb9568ee9796b106e34c18a882dd4 100644 GIT binary patch delta 19 ZcmdnXxR;UpG%qg~0}wR5@|(!L2>>&U1%Chl delta 19 ZcmdnXxR;UpG%qg~0}yO-_nFAO2>>y51quKF diff --git a/osinaweb/addressbook/__pycache__/admin.cpython-312.pyc b/osinaweb/addressbook/__pycache__/admin.cpython-312.pyc index 1f4cf010495bb952599a2ce81094d4d69ac4d5c0..31ea90f468a00aed46d18fea1be23da11b372897 100644 GIT binary patch delta 20 acmdnWx|NmtG%qg~0}wR5^4rM0iU|NX-35^V delta 20 acmdnWx|NmtG%qg~0}yO-_u0t3iU|NVQ3V_T diff --git a/osinaweb/addressbook/__pycache__/apps.cpython-312.pyc b/osinaweb/addressbook/__pycache__/apps.cpython-312.pyc index d0d4a04e17ef96c30d674a290b0ac19cf4d35e0a..f572eea365ca5b8b7c0d5ff587cf790da15457dd 100644 GIT binary patch delta 20 acmey#{F9mcG%qg~0}wR5^4rM$ju8MuGzM4z delta 20 acmey#{F9mcG%qg~0}yO-_u0t(ju8Mrs0HHy diff --git a/osinaweb/addressbook/__pycache__/models.cpython-312.pyc b/osinaweb/addressbook/__pycache__/models.cpython-312.pyc index 5f49af3730903e0e399666c05b300a12f97faa15..1330b0f9bed17c71068b4c3ade9a383283c9d63c 100644 GIT binary patch delta 20 acmca8c2SJ`G%qg~0}wR5^4rMm#ti^Iss)e$ delta 20 acmca8c2SJ`G%qg~0}yO-_u0tp#ti^G9t9f! diff --git a/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-312.pyc index 8d1d8d93d77f0909c9e45970ae85b259f097c3e5..bca2579e3ad3d5c99062d8b1f7333e9abe05efdd 100644 GIT binary patch delta 20 acmZo-Z(`>@&CAQh00d31{5EozGXnrIE(HAm delta 20 acmZo-Z(`>@&CAQh00f)deKvBJGXnrFq6CNl diff --git a/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-312.pyc index efddeb6f74b96ba4c4557f91489acb71258b7f6a..816ba0065eedfd38aa0f2f0974af668936a1a9b8 100644 GIT binary patch delta 20 acmdnax1EpsG%qg~0}wR5^4rL*!wvvBb_Ff~ delta 20 acmdnax1EpsG%qg~0}yO-_u0s;!wvv8>IAs} diff --git a/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-312.pyc index c4f9c7870546f2d017d7e9bbe77f8d14dade0221..9d9f628eb741aa560342667289f25e34ba798db9 100644 GIT binary patch delta 20 acmZqTZsO)X&CAQh00d31{5EozvjPAyzy${Y delta 20 acmZqTZsO)X&CAQh00f)deKvBJvjPAwGz5|W diff --git a/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-312.pyc index e62f54e73329943c66a2373165e4303ab10d7b36..6170fda2c80e46a89bba1a2eb3c06fc498affda1 100644 GIT binary patch delta 20 acmX@ld7hK|G%qg~0}wR5^4rLLgarUSe+B6P delta 20 acmX@ld7hK|G%qg~0}yO-_u0sOgarUP^96JO diff --git a/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-312.pyc index 959fbc72a9d27727d634c0e8fd630aab03b1a1a6..6e403c08025ac2a2b275fb18745973422a4e5985 100644 GIT binary patch delta 20 acmaFC{(_zRG%qg~0}wR5^4rLLml*&-9tJM} delta 20 acmaFC{(_zRG%qg~0}yO-_u0sOml*&)k_EZ| diff --git a/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-312.pyc index 681e7510690c5e86017c3ddfabf9d6443e50ed17..20e769e04c915f9b39cf851d5735252e490be7c1 100644 GIT binary patch delta 19 ZcmX@Xc!H7pG%qg~0}wR5@|(!L7XURQ1)u-` delta 19 ZcmX@Xc!H7pG%qg~0}yO-_nFAO7XUL11uFmm diff --git a/osinaweb/billing/__pycache__/__init__.cpython-312.pyc b/osinaweb/billing/__pycache__/__init__.cpython-312.pyc index edc3f05481b0d313ac9b7c51041779982bfd83b5..656e0ee7d93e244907c01d63026a19d7d80dbb72 100644 GIT binary patch delta 19 ZcmdnVxRa6lG%qg~0}wR5@|(!L4gfOv1#22RBkvJrMvlpsm;<@R`S_U{xr@YsQULAZ3N`=$ delta 40 tcmZ3-v5tfHG%qg~0}xDq>6*dHIAR78g+2gB00yZ5 diff --git a/osinaweb/billing/delete/__pycache__/urls.cpython-312.pyc b/osinaweb/billing/delete/__pycache__/urls.cpython-312.pyc index f6a7c4b0de84f59838246fbead6676da8cf01077..432e9caba3fd2fbfed457ac72abea526296d1724 100644 GIT binary patch delta 20 acmX@ka-4ictnujm5Z delta 20 acmX>ictnuIAs} diff --git a/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0004_rename_payment_paymenttype.cpython-312.pyc index 4a26e4c7f7d5f89cc39b78c03e6ffc3b0e0cf9e3..ba294a4a484268a191888588ecdb26a31f226b32 100644 GIT binary patch delta 20 acmdnMx`CDZG%qg~0}wR5^4rM0lnDSh6$OF- delta 20 acmdnMx`CDZG%qg~0}yO-_u0t3lnDSei3JS+ diff --git a/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-312.pyc index 8d5fb2ac5c4bb32297cce916dc12dd33e2b65f16..bf5cdac45ee34a151e65032baacc4499f92fe068 100644 GIT binary patch delta 20 acmey){+*rsG%qg~0}wR5^4rM$h8X}ub_QGk delta 20 acmey){+*rsG%qg~0}yO-_u0t(h8X}r>ILTj diff --git a/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-312.pyc index e6298adebe7c9496e01f66af3a0ca1fe381060ba..f05c1bcd9be74836091e597c7f184cee4d44c30a 100644 GIT binary patch delta 20 acmX@YafE~WG%qg~0}wR5^4rL5$pQd6qXk9) delta 20 acmX@YafE~WG%qg~0}yO-_u0s8$pQd47X;A& diff --git a/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-312.pyc index f248c62e12c4f31a9e7c459048bf2206630d9080..d4bfaefb1347cffabdb53a923a552f4bf1612a0a 100644 GIT binary patch delta 20 acmdnOv4w;CG%qg~0}wR5^4rL*$pQd4BLx-! delta 20 acmdnOv4w;CG%qg~0}yO-_u0s;$pQd1mjs~z diff --git a/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-312.pyc index 353b4c6564131adf849159e62fc33ae0e55a8f42..8b702912120dae16475c30c69043d1d96c830070 100644 GIT binary patch delta 20 acmZ3@v6_SXG%qg~0}wR5^4rL*zybg^y9E0H delta 20 acmZ3@v6_SXG%qg~0}yO-_u0s;zybg?F9e1F diff --git a/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-312.pyc index 39900c633c6f3b8b5091de0c8e14da4ad8fcf20b..b806052c5b96b9c416c4d6d422038672d6526589 100644 GIT binary patch delta 20 acmbQwH=mFDG%qg~0}wR5^4rKQ!VUm6wglz? delta 20 acmbQwH=mFDG%qg~0}yO-_u0rT!VUm4DggM7;&CAQh00d31{1$Sv0st*J1dsp# delta 19 ZcmeC?>gM7;&CAQh00f)deHL=F0st!_1RDSV diff --git a/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-312.pyc index ae9d73128f028f8c083adc2b9a89f16fde5fb242..8e22708ab5aab51ddd5f757b334324b0840a0bfa 100644 GIT binary patch delta 20 acmdnMy@8wiG%qg~0}wR5^4rM0lobFt@CA_o delta 20 acmdnMy@8wiG%qg~0}yO-_u0t3lobFrWCa`m diff --git a/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-312.pyc index 48e73e6f95ad6bc1f5eefa357b72c24880f64f33..de944ccfae923c767dd27f354b441945a02f9da9 100644 GIT binary patch delta 20 acmbQkHiwP-G%qg~0}wR5^4rKQ$P5598U)Dz delta 20 acmbQkHiwP-G%qg~0}yO-_u0rT$P556js#Qy diff --git a/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-312.pyc index 661b94b2f85701107d25f099803e4ae7cf351acd..c24c578a68fee5470df34c321d4921f6f06d2190 100644 GIT binary patch delta 20 acmbQoHjj<_G%qg~0}wR5^4rKQ%nSfDY6Q;! delta 20 acmbQoHjj<_G%qg~0}yO-_u0rT%nSfA-UM0z diff --git a/osinaweb/billing/migrations/__pycache__/0015_order.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0015_order.cpython-312.pyc index 68fdc3357ae93fee45cc64632cf3d5db04ad6586..c4956e5778a0d63d4c486eb56c862940d065369a 100644 GIT binary patch delta 20 acmeyt{ezqPG%qg~0}wR5^4rM$mK6X*Fa~J= delta 20 acmeyt{ezqPG%qg~0}yO-_u0t(mK6X&qy_W< diff --git a/osinaweb/billing/migrations/__pycache__/0016_alter_order_status.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0016_alter_order_status.cpython-312.pyc index 6ae307be610e99d8ec27338fd9916268f5cc88f3..ad7a156327b9aebab531bdfea8002c936f7a5b6e 100644 GIT binary patch delta 20 acmeyw_KA)AG%qg~0}wR5^4rLr&I|xSiUrF6 delta 20 acmeyw_KA)AG%qg~0}yO-_u0su&I|xP{smS5 diff --git a/osinaweb/billing/migrations/__pycache__/0017_service_order.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0017_service_order.cpython-312.pyc index 10c850e944ae999986dd99f2104018d27157b99a..9e78836bf05a45483a94136adab285200f0c2d06 100644 GIT binary patch delta 20 acmcc1ewUs5G%qg~0}wR5^4rLLi5UPtW(E!b delta 20 acmcc1ewUs5G%qg~0}yO-_u0sOi5UPq+69>a diff --git a/osinaweb/billing/migrations/__pycache__/0018_alter_order_status.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0018_alter_order_status.cpython-312.pyc index 2321a19fa683f72fc656c01168a468b21e063193..a349ae47a67ee8284248835d7daea744cc44ec04 100644 GIT binary patch delta 20 acmeyx_KS`CG%qg~0}wR5^4rLr&kO)U$_3*9 delta 20 acmeyx_KS`CG%qg~0}yO-_u0su&kO)SJ_T+7 diff --git a/osinaweb/billing/migrations/__pycache__/0019_item_orderpayment_remove_service_customer_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0019_item_orderpayment_remove_service_customer_and_more.cpython-312.pyc index d87e5eb2c601044ffc43cd9205607caccb4dee1b..415ccec2a7b6b779eea8c833692ce25a08780f8a 100644 GIT binary patch delta 20 acmcbpa#4l*G%qg~0}wR5^4rMmCIkRLsRgqD delta 20 acmcbpa#4l*G%qg~0}yO-_u0tpCIkRJ9R)rB diff --git a/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-312.pyc index 7f93782e609c48048c130fd67f29861c1c269d05..a1f4c9ea4797137ffbec761717591ec2fd63c239 100644 GIT binary patch delta 20 acmX@Wb%2ZeG%qg~0}wR5^4rL5$_fBFOa(sx delta 20 acmX@Wb%2ZeG%qg~0}yO-_u0s8$_fBCzy!(w diff --git a/osinaweb/billing/migrations/__pycache__/0021_remove_item_recurring_cycle_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0021_remove_item_recurring_cycle_and_more.cpython-312.pyc index 83ea69726e90913660ac48162a60142505548941..4216d9bac3ce164532ab2a9a78ca2e82cacb377f 100644 GIT binary patch delta 20 acmaFD@q~l>G%qg~0}wR5^4rKA$pQdBqXnh_ delta 20 acmaFD@q~l>G%qg~0}yO-_u0rD$pQd97X>i@ diff --git a/osinaweb/billing/migrations/__pycache__/0022_remove_item_cancelled_at_remove_item_created_at_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0022_remove_item_cancelled_at_remove_item_created_at_and_more.cpython-312.pyc index 6099e29b180e1c3f89ad645228e1b2a4467b879c..e1bac7fe418910bc4632af418a0a9867f63df33b 100644 GIT binary patch delta 20 acmeyz@sET1G%qg~0}wR5^4rK=%mM&Ivjy}3 delta 20 acmeyz@sET1G%qg~0}yO-_u0r@%mM&GCk1~1 diff --git a/osinaweb/billing/migrations/__pycache__/0023_alter_item_project_alter_item_type.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0023_alter_item_project_alter_item_type.cpython-312.pyc index af6a1d9677d54a39aad9e665c757d62133534e35..1ad82bc586bdf76cbba6102c0001bc06a8735277 100644 GIT binary patch delta 20 acmcb`b&HGpG%qg~0}wR5^4rMm&k6uOTm_8) delta 20 acmcb`b&HGpG%qg~0}yO-_u0tp&k6uL&;=L( diff --git a/osinaweb/billing/migrations/__pycache__/0024_remove_item_active.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0024_remove_item_active.cpython-312.pyc index 3aca1dad969b1a192f311c8c63b468bae77150f3..98a7b94d1f3797bed2c3fd9136047950df8ad1e5 100644 GIT binary patch delta 20 acmZ3*x{8(iG%qg~0}wR5^4rKgp9ugrB?WK* delta 20 acmZ3*x{8(iG%qg~0}yO-_u0rjp9ugonFRX) diff --git a/osinaweb/billing/migrations/__pycache__/0025_remove_item_project_item_customer.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0025_remove_item_project_item_customer.cpython-312.pyc index 407c8e370ac28fa75917eeaaab4bb7f39a896f08..729753af300b469e5461f902c8c91b0f765d659e 100644 GIT binary patch delta 20 acmbQiIfIk?G%qg~0}wR5^4rMW%K`v2=LJLn delta 20 acmbQiIfIk?G%qg~0}yO-_u0tZ%K`v0TLjMl diff --git a/osinaweb/billing/migrations/__pycache__/0026_rename_type_item_item_type_remove_order_paid.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0026_rename_type_item_item_type_remove_order_paid.cpython-312.pyc index 1a3fa762c8db9f5404c26e43fe50449facba2738..7b233bc9f7227c54d2c55830bc88c24a8845d3e5 100644 GIT binary patch delta 20 acmX@Yc7%=lG%qg~0}wR5^4rL5$qWEGS_MG> delta 20 acmX@Yc7%=lG%qg~0}yO-_u0s8$qWED&IHT= diff --git a/osinaweb/billing/migrations/__pycache__/0027_item_type.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0027_item_type.cpython-312.pyc index 777e37848918528fb7503142b11fc433f535a041..fda66ca2bfebb061f4dc431a678eb7ec071a2099 100644 GIT binary patch delta 20 acmcc3cAJg+G%qg~0}wR5^4rKAzzhIA@&$$f delta 20 acmcc3cAJg+G%qg~0}yO-_u0rDzzhI8W(5%d diff --git a/osinaweb/billing/migrations/__pycache__/0028_remove_order_due_date.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0028_remove_order_due_date.cpython-312.pyc index ade1c47459666a948da647971506a9c9fdb61909..ea6f34ae3d279ce70c82da3d3fa68666da90438f 100644 GIT binary patch delta 20 acmbQvI-QmKG%qg~0}wR5^4rMW!vp{{Ed@6K delta 20 acmbQvI-QmKG%qg~0}yO-_u0tZ!vp{^p#;JJ diff --git a/osinaweb/billing/migrations/__pycache__/0029_invoice_pdf.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0029_invoice_pdf.cpython-312.pyc index 0f6e46a1e341a4fd72127a084aba01f65de91ce0..34a6a0d017c074d82550c50f405cb0a3ca24bb20 100644 GIT binary patch delta 20 acmbQjHieD*G%qg~0}wR5^4rMG$qWE8+61ux delta 20 acmbQjHieD*G%qg~0}yO-_u0tJ$qWE6P6Rvv diff --git a/osinaweb/billing/migrations/__pycache__/0030_alter_invoice_order.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0030_alter_invoice_order.cpython-312.pyc index 0674ae2903a340a54ee320716d2c4492518de42e..63361f7c9a646d596cdd51ed2be5c2102f122e5c 100644 GIT binary patch delta 20 acmcb{evO^`G%qg~0}wR5^4rLLni&8-P6hb@ delta 20 acmcb{evO^`G%qg~0}yO-_u0sOni&8)!Uco? diff --git a/osinaweb/billing/migrations/__pycache__/0031_alter_invoice_invoice_number.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0031_alter_invoice_invoice_number.cpython-312.pyc index 8d046a668fa40bbffa76b849d72390d1037f9385..08fce546f5f6c2302c7fd64bd8955fd5b7ab9744 100644 GIT binary patch delta 20 acmZ3% diff --git a/osinaweb/billing/migrations/__pycache__/0035_alter_invoice_pdf.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0035_alter_invoice_pdf.cpython-312.pyc index 1946324f112aede2a86c9d484745d1852ed97268..1b74a2e83bcc1f9d02ff7b4d75ad38709fdf300a 100644 GIT binary patch delta 20 acmbQiHiM1(G%qg~0}wR5^4rMG%M1WBdIY@y delta 20 acmbQiHiM1(G%qg~0}yO-_u0tJ%M1W8?gU5x diff --git a/osinaweb/billing/migrations/__pycache__/0036_alter_invoice_invoice_number.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0036_alter_invoice_invoice_number.cpython-312.pyc index a8d00e3aef1511ea101d7eb6090c86255e8cee45..7aa156b233a70913059b20b98973386db9a1d0b8 100644 GIT binary patch delta 20 acmdnQwuz1VG%qg~0}wR5^4rL*&I|xIiUkV* delta 20 acmdnQwuz1VG%qg~0}yO-_u0s;&I|xF{sfi) diff --git a/osinaweb/billing/migrations/__pycache__/0037_recurringcycle_item.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0037_recurringcycle_item.cpython-312.pyc index 45de572f2242a20b32feb61e0d7fe2c289f88563..43af23b98779ab3dbe1bb0756981b8e639bf4cf9 100644 GIT binary patch delta 20 acmaFH{*0abG%qg~0}wR5^4rLLn;8H=&ITy} delta 20 acmaFH{*0abG%qg~0}yO-_u0sOn;8H;LItz{ diff --git a/osinaweb/billing/migrations/__pycache__/0038_alter_invoice_pdf.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0038_alter_invoice_pdf.cpython-312.pyc index 527cf9197fb1d28ba91a3987942e6b8d8c720a79..7c7aaf59d1bd010ef7569000ead8a8c2fadf54ab 100644 GIT binary patch delta 20 acmZ3*wu+7WG%qg~0}wR5^4rKQ&kO)IN(A!& delta 20 acmZ3*wu+7WG%qg~0}yO-_u0rT&kO)Fz65>% diff --git a/osinaweb/billing/migrations/__pycache__/0039_recurringcycle_cycle_price.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0039_recurringcycle_cycle_price.cpython-312.pyc index ee28c1ae9bc7e67f3f499a14be1aa661dd86094a..d5aa96b1a71131f7665f03661dffee78f6fe6f50 100644 GIT binary patch delta 20 acmbQtHkpn4G%qg~0}wR5^4rMG!3+R0vIMRG delta 20 acmbQtHkpn4G%qg~0}yO-_u0tJ!3+Q}CImSE diff --git a/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-312.pyc index f3af15641c7674988359458159cd3f8b08b12063..85de13f250ccaee73fe5ca0df2891aee617339b4 100644 GIT binary patch delta 20 acmZ3@zM7r;G%qg~0}wR5^4rM0fEfTcmIZhK delta 20 acmZ3@zM7r;G%qg~0}yO-_u0t3fEfTa3IziI diff --git a/osinaweb/billing/migrations/__pycache__/0041_orderitem_active.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0041_orderitem_active.cpython-312.pyc index 0fe44c83b3ff178420a2f8dfe15e20abc62775c2..2024372aee22468fc7819ea52b8b460f4e030e68 100644 GIT binary patch delta 20 acmZ3+wv3JYG%qg~0}wR5^4rKQ%?toFss!f% delta 20 acmZ3+wv3JYG%qg~0}yO-_u0rT%?toD9t3g# diff --git a/osinaweb/billing/migrations/__pycache__/0042_order_due_date.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0042_order_due_date.cpython-312.pyc index b6c4018eaa0410c91ed88eeded19d49471e0efa7..93238c3b4fa45ab9c94553854d03961b6b739b43 100644 GIT binary patch delta 20 acmZo+YhmL)&CAQh00d31{5Ep`WC8#(Sp|Rq delta 20 acmZo+YhmL)&CAQh00f)deKvCcWC8#$%>@ep diff --git a/osinaweb/billing/migrations/__pycache__/0043_alter_invoice_pdf.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0043_alter_invoice_pdf.cpython-312.pyc index 10279d3d9c6693cb051d0f1d9eca26e2ed8932ef..08ae1fd057adb52cb1e87ad915a653e1548802fd 100644 GIT binary patch delta 20 acmZ3%wt|iOG%qg~0}wR5^4rKQ%M1WD`ULF& delta 20 acmZ3%wt|iOG%qg~0}yO-_u0rT%M1WBZUlG$ diff --git a/osinaweb/billing/migrations/__pycache__/0044_alter_orderitem_active.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0044_alter_orderitem_active.cpython-312.pyc index 6602e18888cd9b84a52bce6a7f1b4bb45a4dbb2a..fb2a8f7100849d3b894bd354c1b14b9357f93b5c 100644 GIT binary patch delta 20 acmbQjHieD*G%qg~0}wR5^4rMG$qWE8+61ux delta 20 acmbQjHieD*G%qg~0}yO-_u0tJ$qWE6P6Rvv diff --git a/osinaweb/billing/migrations/__pycache__/0045_orderpayment_date_due_alter_orderpayment_date_paid.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0045_orderpayment_date_due_alter_orderpayment_date_paid.cpython-312.pyc index 819bb840b2e43b859220ff4f465eb88fcbe2a120..2b94064a20b09e6337c1ed72c1a4e3ed8615708b 100644 GIT binary patch delta 20 acmX@aeu$m>G%qg~0}wR5^4rM0of!Z-E(N^+ delta 20 acmX@aeu$m>G%qg~0}yO-_u0t3of!Z)q6J6* diff --git a/osinaweb/billing/migrations/__pycache__/0046_remove_orderpayment_order_orderpayment_order.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0046_remove_orderpayment_order_orderpayment_order.cpython-312.pyc index 3f709c1c26b552cab35f2e27ac60364a7b08dea5..5c6fc478fd8e33378a184dc9186eaf57fd075694 100644 GIT binary patch delta 20 acmaFI@s5N0G%qg~0}wR5^4rLr%mM&GGX=x| delta 20 acmaFI@s5N0G%qg~0}yO-_u0su%mM&Drv*;{ diff --git a/osinaweb/billing/migrations/__pycache__/0047_paymenttype_description_paymenttype_image.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0047_paymenttype_description_paymenttype_image.cpython-312.pyc index 1725f4a2ccb44c279dd1f322e0fb6df584e399d5..65d3883e8461ea2285c840ed33128bd3300e7405 100644 GIT binary patch delta 20 acmaFO{+gZpG%qg~0}wR5^4rM$fEfTmmIgQg delta 20 acmaFO{+gZpG%qg~0}yO-_u0t(fEfTk3I)Re diff --git a/osinaweb/billing/migrations/__pycache__/0048_remove_order_status_orderstatus.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0048_remove_order_status_orderstatus.cpython-312.pyc index 70439d88c44dec82659104bb523813020ea04d85..b0dc5da612c3a9c12a2e6f72b74454565c252524 100644 GIT binary patch delta 20 acmbQsGna?^G%qg~0}wR5^4rKQ#0CI09R%9| delta 20 acmbQsGna?^G%qg~0}yO-_u0rT#0CH|kpyM{ diff --git a/osinaweb/billing/migrations/__pycache__/0049_rename_due_date_order_date.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0049_rename_due_date_order_date.cpython-312.pyc index 27a0aafeaa5655caf5cff7549029a419d0ac2f6a..374c2b23366f553e410918cf0683698d7b538787 100644 GIT binary patch delta 20 acmX@jdYYB{G%qg~0}wR5^4rLLfC&IRO$E~c delta 20 acmX@jdYYB{G%qg~0}yO-_u0sOfC&IO!3ACb diff --git a/osinaweb/billing/migrations/__pycache__/0050_remove_orderpayment_type_orderpayment_type.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0050_remove_orderpayment_type_orderpayment_type.cpython-312.pyc index 7a1a339652fb45246cabed746000b5605ddb58f5..65edc19688f7ff44fc06ee693d36b42f5ac0c2a3 100644 GIT binary patch delta 20 acmbQsK9`;QG%qg~0}wR5^4rKgi5UPjW(7_F delta 20 acmbQsK9`;QG%qg~0}yO-_u0rji5UPg+637E diff --git a/osinaweb/billing/migrations/__pycache__/0051_alter_orderpayment_amount.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0051_alter_orderpayment_amount.cpython-312.pyc index 4a3a7d3df86a7e5dc5aa1dfe18fc0b19d4a85332..36a2453a6ff55dfa407da341a41b33f7b31280e5 100644 GIT binary patch delta 20 acmZ3^ww#UoG%qg~0}wR5^4rKQ!wdj5(gf-N delta 20 acmZ3^ww#UoG%qg~0}yO-_u0rT!wdj3Mg(;L diff --git a/osinaweb/billing/migrations/__pycache__/0052_alter_orderstatus_status.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0052_alter_orderstatus_status.cpython-312.pyc index 883b0d07b28a1d19e9329e21622cf32534ff11f5..a46109e9c868e36ebe6bc25cf61066d9a18cca7c 100644 GIT binary patch delta 20 acmZ3(gG%qg~0}wR5^4rKQ#S8#7f&}CM delta 20 acmZ3=wv>(gG%qg~0}yO-_u0rT#S8#4_5^PL diff --git a/osinaweb/customercore/__pycache__/apps.cpython-312.pyc b/osinaweb/customercore/__pycache__/apps.cpython-312.pyc index 29785934c1ed7549d10a6ad8851dd0eb7eb89449..e2b61c1628de72a951b90c0a3baff5c4a3a0a41d 100644 GIT binary patch delta 20 acmeyv{D+zQG%qg~0}wR5^4rM$kr4nxtOj8K delta 20 acmeyv{D+zQG%qg~0}yO-_u0t(kr4nvAO-9I diff --git a/osinaweb/customercore/__pycache__/custom_context.cpython-312.pyc b/osinaweb/customercore/__pycache__/custom_context.cpython-312.pyc index 022fd82778f704bbd9aff77c1e8c69bdb178cefa..faba4a14ce23c9ee60ea88d105bfb017902a686a 100644 GIT binary patch delta 20 acmbO!GE;>6G%qg~0}wR5^4rMG#{~d2p#6G%qg~0}yO-_u0tJ#{~d06$EYo diff --git a/osinaweb/customercore/__pycache__/decorators.cpython-312.pyc b/osinaweb/customercore/__pycache__/decorators.cpython-312.pyc index 748d04a89016156d56c732c4701e7c4fe2d9f0b5..9221dde5f4d8d56b6bfaca33613e75b0b3014170 100644 GIT binary patch delta 20 acmdnawVjLmG%qg~0}wR5^4rL*!wLX6i zd_hQ#F>vw(eu>HK!kWSY3KQ6_3n*L^P*~x-A?1pIb))BIdtn_G9-9ee(`zQyd|_Z_ Kw3%Ekt_}bvMJ-7H delta 120 zcmdm?KTn_cG%qg~0}!nG;+r;eBkxi{#&weo_-rSC5X_i7ftiz)yOLRxWpa*?%H)MY zrh>OP-7<4h-7-^iQf{%N0hyDZ3CS_~PM*LoF6ictnujm5Z delta 20 acmX>ictnuKRt9YV delta 20 acmdlLzAK#jG%qg~0}u#5_1(z5UK;>HDh2oe diff --git a/osinaweb/customercore/add/__pycache__/urls.cpython-312.pyc b/osinaweb/customercore/add/__pycache__/urls.cpython-312.pyc index b5f3c52b5dd7c40c6c8d051278ef8a7791702aae..8be3638c1fc7990d73e36a60623604aa420518d5 100644 GIT binary patch delta 20 acmbQhHi3=%G%qg~0}wR5^4rMG$_xN9Is~Nv delta 20 acmbQhHi3=%G%qg~0}$9f_1(zL$_xN7I|N$* diff --git a/osinaweb/customercore/add/__pycache__/views.cpython-312.pyc b/osinaweb/customercore/add/__pycache__/views.cpython-312.pyc index 5f65b0aebe5f85d50950e6d90b0c5729b3b015d6..db69ccf36e356019b1f156e27a6c25d1a1420432 100644 GIT binary patch delta 20 acmaFt_}G#AG%qg~0}wR5^4rLLLjeFtn+CA} delta 20 acmaFt_}G#AG%qg~0}w3y>AR8ph5`Ud$p+p4 diff --git a/osinaweb/customercore/migrations/0018_alter_ticketattachment_file.py b/osinaweb/customercore/migrations/0018_alter_ticketattachment_file.py new file mode 100644 index 00000000..46ce5eec --- /dev/null +++ b/osinaweb/customercore/migrations/0018_alter_ticketattachment_file.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-05-23 08:01 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0017_tickettask'), + ] + + operations = [ + migrations.AlterField( + model_name='ticketattachment', + name='file', + field=models.FileField(upload_to='uploaded_images'), + ), + ] diff --git a/osinaweb/customercore/migrations/0019_file.py b/osinaweb/customercore/migrations/0019_file.py new file mode 100644 index 00000000..a10d4419 --- /dev/null +++ b/osinaweb/customercore/migrations/0019_file.py @@ -0,0 +1,22 @@ +# Generated by Django 5.0.4 on 2024-05-23 08:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0018_alter_ticketattachment_file'), + ] + + operations = [ + migrations.CreateModel( + name='File', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('existingPath', models.CharField(max_length=100, unique=True)), + ('name', models.CharField(max_length=50)), + ('eof', models.BooleanField()), + ], + ), + ] diff --git a/osinaweb/customercore/migrations/0020_alter_ticketattachment_file.py b/osinaweb/customercore/migrations/0020_alter_ticketattachment_file.py new file mode 100644 index 00000000..19878bc6 --- /dev/null +++ b/osinaweb/customercore/migrations/0020_alter_ticketattachment_file.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-05-23 08:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0019_file'), + ] + + operations = [ + migrations.AlterField( + model_name='ticketattachment', + name='file', + field=models.FileField(upload_to='uploaded_ticket_files'), + ), + ] diff --git a/osinaweb/customercore/migrations/0021_file_ticket.py b/osinaweb/customercore/migrations/0021_file_ticket.py new file mode 100644 index 00000000..33eabec0 --- /dev/null +++ b/osinaweb/customercore/migrations/0021_file_ticket.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.4 on 2024-05-23 08:56 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0020_alter_ticketattachment_file'), + ] + + operations = [ + migrations.AddField( + model_name='file', + name='ticket', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='customercore.ticket'), + ), + ] diff --git a/osinaweb/customercore/migrations/0022_remove_file_ticket.py b/osinaweb/customercore/migrations/0022_remove_file_ticket.py new file mode 100644 index 00000000..4b96963e --- /dev/null +++ b/osinaweb/customercore/migrations/0022_remove_file_ticket.py @@ -0,0 +1,17 @@ +# Generated by Django 5.0.4 on 2024-05-23 08:58 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0021_file_ticket'), + ] + + operations = [ + migrations.RemoveField( + model_name='file', + name='ticket', + ), + ] diff --git a/osinaweb/customercore/migrations/0023_delete_file_remove_ticketattachment_file_and_more.py b/osinaweb/customercore/migrations/0023_delete_file_remove_ticketattachment_file_and_more.py new file mode 100644 index 00000000..1584d39c --- /dev/null +++ b/osinaweb/customercore/migrations/0023_delete_file_remove_ticketattachment_file_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0.4 on 2024-05-23 10:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('customercore', '0022_remove_file_ticket'), + ] + + operations = [ + migrations.DeleteModel( + name='File', + ), + migrations.RemoveField( + model_name='ticketattachment', + name='file', + ), + migrations.AddField( + model_name='ticketattachment', + name='file_path', + field=models.CharField(max_length=255, null=True), + ), + ] diff --git a/osinaweb/customercore/migrations/__pycache__/0001_initial.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0001_initial.cpython-312.pyc index 0be7952e49e170854ff57f19b88dec7f3a6d2910..3ea36716dccfff8625644b5d9d4b82ce5f43fc11 100644 GIT binary patch delta 20 acmZ3cxJ;4zG%qg~0}wR5^4rKgTL1t$g9WMp delta 20 acmZ3cxJ;4zG%qg~0}yO-_u0rjTL1tz_XRZo diff --git a/osinaweb/customercore/migrations/__pycache__/0002_alter_ticket_department.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0002_alter_ticket_department.cpython-312.pyc index 2472bca63911263c386bec4fcf33368738c19bb0..23c35fdac9fd3d0d545fe1e273f0ef53ff6257e2 100644 GIT binary patch delta 20 acmdnZv73YYG%qg~0}wR5^4rL5zybg{I|VBM delta 20 acmdnZv73YYG%qg~0}yO-_u0s8zybg^uLQOL diff --git a/osinaweb/customercore/migrations/__pycache__/0003_ticket_customer_ticket_status_and_more.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0003_ticket_customer_ticket_status_and_more.cpython-312.pyc index 5f6066de52f45109d2f8d3cf30d145fd17b35a11..21d0177648c100061d4d08342f533670f313ef21 100644 GIT binary patch delta 20 acmeC->EYo%&CAQh00d31{5EnkvH<`xbp)sY delta 20 acmeC->EYo%&CAQh00f)deKvA4vH<`u=>#(X diff --git a/osinaweb/customercore/migrations/__pycache__/0004_ticket_ticket_number_and_more.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0004_ticket_ticket_number_and_more.cpython-312.pyc index 866d4fa94b4a4e709d0d12f024f1123dff8c9bbe..082515c2b6d35ea7cfdde7fba368014a8717c92d 100644 GIT binary patch delta 20 acmaFO`I?jaG%qg~0}wR5^4rM$fCT_S-v&JZ delta 20 acmaFO`I?jaG%qg~0}yO-_u0t(fCT_QQw7KX diff --git a/osinaweb/customercore/migrations/__pycache__/0005_ticketstatusupdate.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0005_ticketstatusupdate.cpython-312.pyc index 6bed799c7e456dda837737ae4dc2880175568564..85316f09157077ceff57ef3d115e9b7b8d63a01c 100644 GIT binary patch delta 20 acmX@icbJd+G%qg~0}wR5^4rL5!43dBRs~W3 delta 20 acmX@icbJd+G%qg~0}yO-_u0s8!43d8$^_j2 diff --git a/osinaweb/customercore/migrations/__pycache__/0006_ticketupdate_read.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0006_ticketupdate_read.cpython-312.pyc index 3f53c5dc0b6006c1ad90e8055cf55ef75f5b69d4..6fb41c77684aa94fcf0625e6c8b8b7156a919214 100644 GIT binary patch delta 20 acmbQkHiwP-G%qg~0}wR5^4rKQ$P5598U)Dz delta 20 acmbQkHiwP-G%qg~0}yO-_u0rT$P556js#Qy diff --git a/osinaweb/customercore/migrations/__pycache__/0007_remove_ticketupdate_read_ticketupdatereadstatus.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0007_remove_ticketupdate_read_ticketupdatereadstatus.cpython-312.pyc index 07f106cee917b29b1370a6fbaf08e39844771232..ca0f1e2164fcc6a314961bb597ce5679ca0eab9c 100644 GIT binary patch delta 20 acmaFQ`<|EkG%qg~0}wR5^4rM$gbe^g5e8EL delta 20 acmaFQ`<|EkG%qg~0}yO-_u0t(gbe^dg$3RK diff --git a/osinaweb/customercore/migrations/__pycache__/0008_rename_ticketupdatereadstatus_ticketread.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0008_rename_ticketupdatereadstatus_ticketread.cpython-312.pyc index a70326a451cca55f66298db8594bcd5847728eb2..5864606309ed50c1ab46745e6919c32f0f02379b 100644 GIT binary patch delta 20 acmbQjK82n8G%qg~0}wR5^4rMW$qWE9{sl7t delta 20 acmbQjK82n8G%qg~0}yO-_u0tZ$qWE7as<8r diff --git a/osinaweb/customercore/migrations/__pycache__/0009_alter_ticketattachment_ticket.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0009_alter_ticketattachment_ticket.cpython-312.pyc index 103b02807e0deeac78de63ba8ebe517333dac98b..d502df1cb43d26975a3d7714ddc04845d1708092 100644 GIT binary patch delta 20 acmZ3+v5bTJG%qg~0}wR5^4rKQ%>n>5^91Yw delta 20 acmZ3+v5bTJG%qg~0}yO-_u0rT%>n>3X9RZu diff --git a/osinaweb/customercore/migrations/__pycache__/0010_rename_ticketreaction_ticketupdatereaction.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0010_rename_ticketreaction_ticketupdatereaction.cpython-312.pyc index cd2b753aa62bdcb68b8d9af138c76669032521cb..0cccddae822908cec1e14645da532e93cc5aa620 100644 GIT binary patch delta 20 acmaFJ`jD0TG%qg~0}wR5^4rLLjR^ohy#^Hk delta 20 acmaFJ`jD0TG%qg~0}yO-_u0sOjR^ofF$JIi diff --git a/osinaweb/customercore/migrations/__pycache__/0011_ticketupdatereaction_customer.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0011_ticketupdatereaction_customer.cpython-312.pyc index bf52473748623ed92ba484f8446139a41c1ba4c5..9fac7deaaa07dd5463936205c3d08ac20809b523 100644 GIT binary patch delta 20 acmX@id6<*?G%qg~0}wR5^4rM0g9QLPp9RGL delta 20 acmX@id6<*?G%qg~0}yO-_u0t3g9QLN69rHJ diff --git a/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-312.pyc index e10c5faa024788367839661c7ee634c1d7f19fbb..f785511ff1432f2b43e1939017d68556a61b9a6a 100644 GIT binary patch delta 20 acmeC;=;Gi$&CAQh00d31{5Ep`X9fT>k_DFl delta 20 acmeC;=;Gi$&CAQh00f)deKvCcX9fT<1_dGj diff --git a/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-312.pyc index d41175ab79ac167799723d4a7b300c3fa5c41335..199396b7a26cfaaff91a1d2495c016651cf5c7b0 100644 GIT binary patch delta 20 acmZo?Z)fK|&CAQh00d31{5EpeFarQF_5}<8 delta 20 acmZo?Z)fK|&CAQh00f)deKvB}FarQDY6O=6 diff --git a/osinaweb/customercore/migrations/__pycache__/0014_remove_ticket_department_ticket_department.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0014_remove_ticket_department_ticket_department.cpython-312.pyc index bdaa10f13979767516298cdd98e4ca7cc0217fbb..54e0f52854becd4b7726f27b2f618ac05127ef65 100644 GIT binary patch delta 20 acmcb?euJI+G%qg~0}wR5^4rLLmKgv(o(2B^ delta 20 acmcb?euJI+G%qg~0}yO-_u0sOmKgv%5(SC? diff --git a/osinaweb/customercore/migrations/__pycache__/0015_rename_department_ticket_departments.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0015_rename_department_ticket_departments.cpython-312.pyc index afa38f58c7f55886d29729f3354c01bb84f76ea1..ef19b471ac59bc040dbcee86d44085939b0369a6 100644 GIT binary patch delta 20 acmey$`jwUYG%qg~0}wR5^4rM$iU|Nh-3Czr delta 20 acmey$`jwUYG%qg~0}yO-_u0t(iU|NfQ3c!p diff --git a/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-312.pyc index 0fb4366bffb9395b1406f60cc5cc6135ca149c37..f64e626f37c9d50f38a3062116a43b1fb31d0251 100644 GIT binary patch delta 20 acmZo=Z)N8`&CAQh00d31{5En|F#`ZGrUeE7 delta 20 acmZo=Z)N8`&CAQh00f)deKvAeF#`ZE8U&F5 diff --git a/osinaweb/customercore/migrations/__pycache__/0017_tickettask.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0017_tickettask.cpython-312.pyc index a89c9609aec99e4e70832b3145a5549decc3993e..1b88b0a337b7fc1560035ce6771469ae01fa1ce4 100644 GIT binary patch delta 20 acmey&^_h$NG%qg~0}wR5^4rLr!3qFELGmD_+|-68C0E_gIoW{6{E&Q?Oe8|)`hte zC2zCFbl7*iVmKMV3MX^jA z4daYZMsbvoKI0w|b``=!=IOF$)hA9#!h})owO+(x+VyN<;WCb~a4?p6qnJtD!1!=P zVwI~HWkZ%ymWC1Ixw2I_ui}E`d+L_lPyu^SDk-^evLRbq{0$bW@9Sg#17|t+GaeOT zmiVu;aHJaGewP#^9;<_tY|{Zr`7qooQLv518Eo^`r?0 zZ{i7#UQK)O$WI{gvW+Aqb0YD?tqB;TCug>;^q{lJyU#QGyzjnWU;F!2z>fK=Q2HnW z@ST(HiFd%oJOc*+0VLSK5sHE%7DWMw;1NLL9zZcHtjk@et9LEd#>H4w(&Oix=pt1e zt4v^Ed9F`o$3xim%_|=OqIB5B#ThdP0E41{Kv6_OSt!OtfTi`WqQ?t~h<}sU2YN0$ z5J~KbBe{O9Cbh3hB1%MR?H_6dNp-cxTEP!f_Wf6xtoPT1zq)})H`wOAw$>pfu`JcE zcO$cE)T*YZsIt=S2Ww8!toVWFU}Aa%(_1q$`B?+n0VYOZnHxBOK>*D)2fKk$vTRJH zWo|_ay;`Q?<0W09NmvOy!z3667}35>VmXjhjSXC-ijRo}ZR-uD$!$zlJs%q`bQr_C zmLFJd`8f>M&JoKuniJeLZ0weUH7ZwJYpcS3$K~huxIiGhR2suxNf*fw$8yQSHu4L4 zA59ohWW%7UVXz@rY|L=dFt#et=0P|^coVw_yQYPG!gq!CEk=2-@U0+xSTwm{l^?Q- zmU(EZEUrP)hRFrbvoUnrO!YQ#XQ@7e3+4!ZTe;V)UO(sgR$zKgZpkw%ym5Z600U@O z`3DzHp>^n%y_}18BHp19-odN6-g)G%HaEv6GZ&3udb3LS?nj0L{{u67pd|z4K`SN> z$#0*wRG^H#SDT5^Mq>0dl|D<|2-6e$+s*VuBRz2>9gl}aBXr40+7GqhG&L4x^Ph&B z*?c3LKYDpQbdoKE+B4=DX7t11W=3yh^e-rtcIHDtLg(%xa{cjA6~bo1mcqkPr< fo6NLgf*|~qfuLW?njr71O>MlPjsF0QMBaY@K6oMx literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0020_alter_ticketattachment_file.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0020_alter_ticketattachment_file.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..24295aede362da2ff6a936113faf9225b2531633 GIT binary patch literal 809 zcmY*X&ubGw6n?Y2+3YT<#GpjcdI+VkhjybkK?*{xAR13z_A+jFCUMjK5qCC};H5$j z9($4g4buK6UJM8cbM@qHAr+w~XJ!*p=P>(yZ{C~v-nZ}j#)bo8eL`>hUlG7BNmi@2 z1dBZZ&Vc|yF(k-GiRNnvG+gkLVPBsZZtb@uuEw1t8stF{Whvuk zk`WrSa9smXUy{Xp0nUMfj|li0K?CIL8c<`X1m7$HA%n;>b9n3jxMak*tX+uK$IL6$;SmcdkDsThikK-Vg zxsnk&qA8(i7*Uo>Te=+feEu#kOUpLp*W&6$_6s0g#f z+t0$WY=e2dpa|lLJV=8bG7Qo|=B4yl@g-IGm>zmJ-SO7{(d%}fba5aBEp1r)qzu^| zO>#LPYLkG;i8_VS1be&GwL9j?>(T-H(HCcCZBDJtdE1@eZqHktv+Y@{Gi`N#?Ck$+ zy|}6ywo~e6%l!N*zqh)u=NjCur0$YKWskC?da^CkRPKF&uB~U4$9wq$LFHJmhhi&r agwS6Tkb7k|ka_0Jnp@N6)*lc=RsRDZP1TqH literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0021_file_ticket.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0021_file_ticket.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d63789c3b6ff1a2dfc1909638ddaa078ad02f1b5 GIT binary patch literal 1017 zcmZuwyKmD#7(YL9wXGDDv;wM9Uab%whzm0y@oDph z6sI&+M$1gu0T^H<1Pz7VYN$q9LyPo=t^gH01X$YwSSMOrpcMe}-qqyYDD@P(^otuc zTcuVMv{Ek*k~pIHF%zgl<|x4OZaW zN9l#4rVZ(=Y`%({Rr&6#1ykucmPXBgalyA>SvEb-Q3TXQrX3o$SD49uUyyPC fP*W6T1c7q-2e@_s%L?4K22+dusm0%b83N!hVDJZp literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0022_remove_file_ticket.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0022_remove_file_ticket.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5087818e2293cbd87ca2461a607b772e61ae9c53 GIT binary patch literal 669 zcmYjPziZn-82wH^E|!vjn}(J^n^MT4!B(0vgiaxa(mGJ+qUBI@UyNKy=Sp&ow-z#V z?3TYFr2k2$ObNGk>LzfqWa^z{Vc+oSy-)Ameea|{o0~4E)wfU2j|sqEP1^6Y<_ctpBsJj}x~7FiK3wE*n~^CQ*0 z1cZQa2nhO3zpK-MAC*Sy_*V-3CqG1rKRh@Taz7DHyD#HV@fblekL~<`#K2|Ez*qR z7&DGp6l0O=@N)eVrs5l(#F%jDiZL#dU%_0D{5bVL7nm2mDB>~_sede@Ns3un_=B(v zlbL>zg*`qBv!U=aoYs6nYdpm>e>I@Lyk1{LJz#k~!D{0Ec$VwWS{JH7(NpCDDhf`o zGL3Ee{X^w~^XjL2+u6P8?A|?pdG}=J-ZmY#GVLw;<9+_L^$$E#I?X_RepaV$Hs8{U vTDGmwW9O*3wYT{*Mb%#h#S2v`lMwPifxNz_>xBMtZ@YUp-Mt4;q;~%YJdLbb literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0023_delete_file_remove_ticketattachment_file_and_more.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/0023_delete_file_remove_ticketattachment_file_and_more.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48b375031fc14392e8f82c76b05ddb57e338460f GIT binary patch literal 1017 zcmZ8g&u`N(6tz(!s+vp#ktq z8s(}?z<5i56F>lg5s0A=W6jqf(7+Qwv?D-t3Oi<*H2t3H1@`s6;Z`oB;cDE8!xqDN zm?jxFNIA(1tu1;2ToaGP%Q^+>Ausixpi*uma~aLYe6r|)0na# zWt2BJHa0gAqjCCSFkHxu1jm%m7has_IB3T-5phXYx=F2&WHG4# zw^fxc&f6D%h5br#@Ou=|q?NZty?#f1Z^`)9+N7m%lBSI8nhHC9`8?z$fq+L3> z?r&f$g5c_l_d262^U^HLgEaQG)1W6u&AdIF zZ~CS@q4PZ?8WfEdI!`qJU)Umu6Cwm)biLbW@(HU=f-Dl-5g3`kzCY5n8|H^+BL~>G zJ~?OB^3Ym7Uua(Hn(au!)Y){UzoHAj1?(kBUL0DB=hDA)-dH)ld)8PPHdej{-;JM* zhnI7PU@p`f=EtY(W_kRcYjC?5cb)7j>6NTSgG-X8xXS`vSr3Z)+hVtcDSv@XGDbRt a@Q(?gdud*W=CN}&zdD>>{SAbnvi|`|iUwE! literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/__init__.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/__init__.cpython-312.pyc index 3b61409b98d80886396c74079329bb322a62f3bc..c94ad974bdc9fe514eb99805408f1d74ab740f88 100644 GIT binary patch delta 19 ZcmX@fc#@I(G%qg~0}wR5@|(!L4*)et1)~4} delta 19 ZcmX@fc#@I(G%qg~0}yO-_nFAO4*)YU1ug&p diff --git a/osinaweb/customercore/models.py b/osinaweb/customercore/models.py index 848343ce..70b2f52c 100644 --- a/osinaweb/customercore/models.py +++ b/osinaweb/customercore/models.py @@ -68,7 +68,7 @@ class TicketRead(models.Model): class TicketAttachment(models.Model): ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE, null=True, blank=True) ticket_update = models.ForeignKey(TicketUpdate, on_delete=models.CASCADE, null=True, blank=True) - file = models.FileField() + file_path = models.CharField(max_length=255, null=True) class TicketUpdateReaction(models.Model): @@ -85,4 +85,6 @@ class TicketUpdateReaction(models.Model): class TicketTask(models.Model): ticket = models.ForeignKey(TicketUpdate, on_delete=models.CASCADE) - task = models.ForeignKey(Task, on_delete=models.CASCADE) \ No newline at end of file + task = models.ForeignKey(Task, on_delete=models.CASCADE) + + diff --git a/osinaweb/customercore/payment/__pycache__/urls.cpython-312.pyc b/osinaweb/customercore/payment/__pycache__/urls.cpython-312.pyc index 6f87e49e73472a12cdb51d59790174a4e744d74c..5fb493448e35b5b453cd16ffa58bce5bd6d42590 100644 GIT binary patch delta 20 acmaFI^^S}CG%qg~0}wR5^4rLr%nATOd delta 20 acmaFI^^S}CG%qg~0}yO-_u0su%nATL@C8%= diff --git a/osinaweb/customercore/payment/__pycache__/views.cpython-312.pyc b/osinaweb/customercore/payment/__pycache__/views.cpython-312.pyc index fa8d6d771264323bed93bbc5de72e67c4a900a36..523efed0a41dc07a9dd12aeb6bf178e923348c5e 100644 GIT binary patch delta 20 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 delta 2081 zcmaJ?4Nz3q6~6cV?A!md?>%JQtgH(N1_4=i`4OmrHN^z13W&9Z>aws4A_%MnX^cOR z^(Qfz0(r%oNu?pqM5d$GTB5J1v8XXthty)s5S@f{6C^C9=rN+v3{TLZy4r14>b90gh9)r*`3`%H7l}_?+@anhVDa-%T55aFOy> zhKnuI?NtO<`f!dbU#FDS%vBC;?no{qU;KsV8ZkIbN z-Ibm0_BdTR`C0CKPuAkB+$C8#?&0c&Uv6Y$v|kMiV<`-6?viHstLw%oTGJjPoWnA;DOPp2a?-Y6ndVaBNes9ep0d;e|{=-9~>) zL(tdWSl86&jZ=Lunj(6Ro@JhLwK7}%$x+iY9=1XVsY1l`7*?Nn-}D#0uS~0krcBCj z*=mN+D$F5u+o1VNO!xLdE{R>qkhAGA&V8p3nbp&Wpk%^fhb9Em@CE!GJ^=-O3Qxgq z*ah351KOZTE$y+j($OO5YZyqPS%S@qKTfFi6W1I z_%vsSW<>N6V|pM7k|dup^6Aj(Ixc4ep>ZTnspwKwjPcn8#2Vh4kHX9 z_$Pc$JG%w%!Q1dB_ydf93ddmxUZ&oAKpiR+*SlOiOrqI6n1)F_hh7WoEaY!_%QW^k z_cO&>d5%SxiwZU>7>>m{?Wr!2v#>T}3K4om4|V_4z$Dp-_vd1)>OCl)^`z( delta 20 acmey&{F#~iG%qg~0}yO-_u0t(f)M~exCPMw diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-312.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-312.pyc index caed8348484d7d7cefc5a75080ef19a0e773f133..e00915ed1ade1045e2e2435a2570a21616572d12 100644 GIT binary patch delta 20 acmX?Nbi|1JG%qg~0}wR7^4rL5DG2~Trv{w delta 20 acmZ3+wTz4VG%qg~0}yO-_u0rT%?bcBumpSn diff --git a/osinaweb/osinacore/__pycache__/forms.cpython-312.pyc b/osinaweb/osinacore/__pycache__/forms.cpython-312.pyc index 2d0b354fd032117763d1e61fa6d40f308d1a4871..bef46315d33b7f3ae1be820b9fc2d3b1e0db8763 100644 GIT binary patch delta 20 acmeyy`HhqNG%qg~0}wR7^4rM$ngswuo(5k4 delta 20 acmeyy`HhqNG%qg~0}yO-_u0t(ngsws3kB%_ diff --git a/osinaweb/osinacore/__pycache__/models.cpython-312.pyc b/osinaweb/osinacore/__pycache__/models.cpython-312.pyc index 2ada3c16f5f62ca9000404709610d2acdb774d88..de19ded4a1a3d24b913a5a18d7415f3c83b6fec8 100644 GIT binary patch delta 22 ccmZ3mi*dm&M()$Ryj%=G(EQ48Be!TQ08*d^ng9R* delta 22 ccmZ3mi*dm&M()$Ryj%=G;CgMr~Ohyw!(P{!wmjq0H+222d8j49Ts%vlyN1qeFD zW)0hFW(YrBCQ7!_R?}{C3(J0Hg(}{(%$(HFf}H%sl++^qTRg~IKTWyKZXDYgxxmu# zAgRf}IIFpwfF>~lak1>?dMM`j qG-Wq;b8Kgv?9WxfeA|NsA2yZWwH=!?J-ApVjNKOsN{gTd=X`-E5M$J+%AU0IO0iIh44 zJarMVQ{>a+1Q(|zp^ZtC6Q^mNs7LwXZe_%a!yY^O@u?@#wT%m@4Q{@qHuEZ zKvy$&?#$df_cM29^s@z){F2rGr%tD4;Ja11XQ=1MWxbQFyBwUEiZW5vi21M?eyc|; zqt?S#mVvTn#5QU_Y-btH5!F7++`yjj9d<%pS5kLDU0+gnL)}nP_dwlPQujjLR8pVv z0m58@D34m6We)oRYc0VBpk5QTJfVxi9n^g#^$^s{OX~Gd_m|XHKs``WZ-9D5Nxc#3!O9XuQ?v?XZw7RA z3AW{|DikD5lFwNCLad;SbBRQ3?06i?(w^AJt*=Ww64per(o?LF?3Qg{t>ih`R=}iW z9@b8NA)A$jKyyYiBmXOj$#%=G_>>eVU)HQ)8^}AFEsh|xhGe`Ie(|djJc1xdR%r+P zc zJU2GTg=0~^9Z`zG@v#K=bRw>TTA=Xpb(B03jfMwL#S`PB9M5;(8q%#|54tO^HC%1T zy6e;K`s*7r?sYj|^|d2ck7Rv~XAc*TwN#}oRdc-=OJmONU(_(F z;C)7}Qs37zM(3<1W2jCks~6>r%64h^);+yc8dw3-Qt<@k(!6cRigYXjJTwrS4PQ_zmTs+RjLlVA&eA&`IwHaG+iTQO1I+0Gh zB~LeSc7iKiYow4Ng{)`$uI~MUvOvgJV3QO<8Gw+9ryA%$#6AFmrXUBdcnRm^q}8Di zncYMF(%LNV0_wPl^ari3lGQIT&L4*6{p7!`u~tj<=fk%>^Oo*u5B)eWkR_aWGVU;sf;UwTnrLx^4GF)idxUqDVdvyxx>?3!apM49X& zhH{6S`iKgBB%X*24e?{p{w(~&kC9E~m)mk$TUP5!YkjkWb1O62+N`!At!>C?n-l=aRrM99yP?w`7+(rg#y4}V41g;E^ zAc5c%`F70#wu888Yg_5cKd4SY)6b6&bAt)$Wz-K#!`eixXNqd>B#b4LLCEFfSTg5( z?c+|Kit*eiHD8Os;Ww9{eq!#p}ZyMZNBYzv;7C1-|f6##`+Jjmo#^b9?@%mXsldR0r7n; z>P(k0)TWfRpfgaZt2SpVCwoI~aMzJg8*4KnS5G52gTR5{EcvJUwxKC3mMkn*FCf6J zK#W^TEYY~75LfO~h@gVvkb(?CKYvzG@?3mkd@RoKU4V@%0OU6czK-l(;Z}bdFu%g4 zkCBrrR<}cBf&Zcn-&aUY>S@`cno;R5s%O;CY42M6Ic?{!%UJ6Mj9`vw!=jQ=nJ=}I zcUFK{+X?GMB)kM5UP8E` z(Jdo@Gn1o@BH?E8Z;g%Z4<@21*bb>FQzR{K`5k8C6PXIWli*kubY=nz8CL-|@udsX-dA-e9Pp7cp6!Gx*P0AU$UBr z{Ot3qz2LIG)#WbgvPx7ivdDiC$SYYe7d07Jyv-7^1yt3Lyrh|U= z4tXc&C#pxHWj`^v2>-~YvOBH-dF_!kPdKY`&Z_%1tx-KKUGy?4-9^=m>N(9_PvzXk z+tsf(e68Vj`Mjq$rF8ySV_&d%Qr@Q9?b&s^)9ZH6Tl!MkzPpxSs;(nrS(DPP0S5=K z@vqF8ojI#F=cpw8?daww+PAV>Uq<<C1d_wh$*Be~bnJT-^KW$KglkHa2a%wz=V?(TujR9mmeMQzdP>F_v_ zAe*2)s7uNLfi8(oiERezKG>f3ny&!%1THcd0=c%PO$jLn{I^sRVa+3~l$h3{lnrYw ztnC#bElSD%Jyvg!fpx1mI`@~L9#YXnjGx1{2L<8(0dW-wviuL9Wx@;~d=7P)Kg3@ve&=!{Dqox$-?2ZAgSON?-$JyM@UN8_o}FL@^U?Dd) zxmh#$&Zb5`hVbPXMaON3lUq{KEs#+x47qNt*qmhL;yRKqZShrz)-*UiGR}+J5^^L8 zli$gHzNP7*OJfB>L79k+a_7d!INpO*DR>1Zu2*qqQ!QU5>MGyFd2kFKXN2Pg_N4ZV zE1h4Hyh+zWM1hEbBzbH3Hqg9=>v9VU=b1Zt^Z9K*A>Z8kg7blVYQwh_8BK3W+RK9% zcRem?u>m=qu*AsCh_e6)NkuQFOJGN=jr_J}>r|0TSpv49vwQ&CXi61>lAxv8Cxr4L z*Z`JWkQ-@nad$Aei-SO)-N9ujJST3GMp#<51{(dEpzYhSTl`k+o2BI7XIQL#J8h)%85nV z=7N%-?&2mQe1c|u)FX--mWk{ZQw1DFP)CJc%L7O4(Uz&MWl?K=d0_>Om-+ zC(p|(Wi~%VD)Ro076?#PI|*As`J+s|1w_>2Uy+DhQ-p(LcdeiLKDIrW^DfuRB$6Oo z%gr^Ph!ur-8;Phyn*4U1z{4qBYX!9B*IJa!hLRDo+pM04CaDCZ`8@f@-MvARZNX8u zV06!(xt6?|%=(+t{^pz7jDJ0Bcg~IXWip3)TC=Dnp1w-fKsNN*LE=aI2%o_*SgG3`Tf}P zXBnuraJEN%E;ms-idagJ7f^uVn^C|+P=LszATP+veRmyIAn5%viBmnTg*-xK%PL)I zrE6a4xi2TX_Iso~Kn^n4$%XyD_ZH>ASOYgARLL~%ILOt3rsXoN1*+vT4dYZ(VOz_${2R1l)D!+COpS(&1kw((yl+DxEBx94J`{WWdo7p%Y}S+ zWGPETjxX1j4#fj}UQKsEo_-YU0Qro(Mt)as!a#E1V6z+*F<3@UhOD=)9UNdaG(Dh^ z_Mgc|kJak1F37mi@!=S6C9Q`-2LgbhTa}>P$KjO=cttV#%Z6fnJi-4L5>d0Gsm~Uu zhQv@JsK8Sar{b6iQz~&ra`RBDk0xwdQ8W3Ge+oUr$oVz$(V>txXRyt7EtWB^mR~ch ztMa|d;LA0C7X*aN{u8p{@R}8H&oF1ZJ^&bJGmtpjrnPqsp4mgGx}KDGTgCv%FKmA> z=%9p{3|2{{g1mgN=GKo76Sg)1(N_EtxB~QxYG2jefcf#8R3({VH@T;r0eJk#F395wW`!n6Huy$1LU5{LcZT( zArlVOYJF1Q#auKDN{$0#NA)n5A!!({6z464mnF{`rOc#m(lGV}(I0italh_S>G`cC z>{pZiqy9n@@jjuEX_A`ZTAb4JkU@{LlR9Jz2V_GiAo-O?CE?dSh>%Vi6IQZtxYc8P z)mjj5QkPg!U@&S+N(xM=>;;MfCg><&lCS_t4J;;JaV`52O{6^RC3oyf8w(UkbJShX{%U5@lGwb|VoI7{^%UABtw}58&x>y;@UPIoGGp4r)pFpqI=(xtje2dFx3J`*ZTMC%abSz=C4` zsR^1w(TxS;^Et;h4)WT_Nb}~w!SPdLiRLY_kr8-%fJKf(d{aE`nD7iCk43}b*q9*Q zGr^6CCk{;h;h04Iycfzvtf1n#;}JeehryQL01#B;&=u|;j-3@W`C>GZ-~=Tml>L#! zQ-Xv)7Lo|^L~QT`mk?Bd?||bIw47_{=J|1cZ2%raxIlEAiw7W04scJ$;)y^c5lB46 z1t4oV9gA|&0CreQWXHDKkSjPSj*Ns$k~DJgSin^yCJCr^LAD29J@T=RTsl@E9t3E1 zRlJaRFpTpjQ7p{G1nKq!H!7%N0K+t8dIqub0V;%;`xmq03hYLckn>0-8IKE65&ZcZd3gHK^53I|~xkIqu;%|iSU^Jlx5kRCv6FXck)SUw6a?}({|9XO2wT`8!6Ygs99d#aOq(!Gr|BViEU3qV zm?Wy{UL`Jr3)ne{;l8nq^hR5z7MyTN(VTI%KtQkC#6m=`TbYtp-wABW2DYUG+j8FE zH(FEc`!ehH07XSFQdI0^Q&QhuXGPW-N;^YYXG_}Il51UkGXXc<>(}SD?@L8T78&L& zyH5h0T&=j3?3bjZw!2RMHN#ay*4dPHHr-aHoClgR&dt!UU=L*Nb!mHD*4~h|H)QNh zS$lih-hNx2v2Q%T=dP>%)wQ>`&%1h3QhOn5uxAwhoY_9D5P`LET9tEzQug|34T*5J z#}|x_*=^T$UEP)SHl)1`*AHd9?U4OC)=Y1^;|xu2&v~n|-j=ktCF@<4_O8l!ADP~L zr*r#n;XY_5n``K}1aB(Aj1e|JL`?6z$KY?sw)8ggH{6PYp31DJA?<0%dfL;T_LRG0 zdS?#Dy`wQ-?40S$YW!)9e@-{AXDsBE=aYkk^U zKW}aLKm$~i6dnys_LRN1_RY||abUsVm^Iuyoo(NlZr?d?*p*W50_n?}bG|0Lu=3QC ze;sl){OA3rG1Bie=Z1U4AuS>|t$;X`J{cgJ|%HlzAlBJExsD#!eyPh(sBsZN_Ns=WkQtwoOA^N8Q4{UV_JQvX~s)I4~FD)^@|Bv?~ zM}99d^a)Z7>|%JwXH`K8;XZQCuzl=wWF!_1-~$U6PY7~M9Ai_1u*cxjU0kr8niv_6 zKqwFA0}hT8AHauk8u7#9C-^6TAAt>@D?4*+#W~xf`3`~orv?Y%{dMTn$jDhZaQH9^ zYH26fi*Sz#>BOfwdN!dstPW^+Jqwr8f^-<}69wgH(0_ zya9)mo#6o`NO>+2g>4YiFW!Ra-491PcA;}iB zW89hW&{UyC6NN>Ijlq(@QwZisG_)4OszzKLIuzdmGrW#*bpsU6GdYFs(!nc7FCR@S zD(8l8D_+-rO`ERmT7XRXK&s}El(#)&=twC$FjlOeSwCw}YXaxHa`?PEHItm(kv0U+ z_bzC37u#prF__FM=ju`oTfg;KM$>n`3tV2N_~gzDJO5g8MR8ei#c)24{j7n`WA3t@G;goI5z{zs_E- zx$d~>x~WM`IXb7c3kDMnDe%}l+dKDEs%6`o-i+Y@yf!O!mrOJ8z;j>00DDUV{ZL&F zuUBgQbo5epM&*XrPFZmFL{4cD52mx#*FslAFRqwZ)_zb1P51=qOjUHeS)F$7$!Pjh z(*6$=fX7!-S@6R+8pOY^4|KPcz0oG??o`}*Z|H4ypbb?^4Th#XQgK(rGJg<meBE z6NcT6iwbZ~0$YVFMwhqUQxn)qErb6*>;efJ!~cQ&{;9SpEfz7c5VYc!|ENez=fb%2 z(DY#d8!*Y>jo5!#QcyUJ<)??!7~R8HAt{dId_eLXaEjavFl9!X@nfodk zy$R7WDmz)XS4BF8<2p={Ly|uD)0e(bE4e-VG1g7io#>t7(KiK6bT~40e7p(%f@Fx- z0jXeG!th)ZU2qExCEf@w^2R>O+4o0^p6|p^ErJ%hUQ57E&$90^o6^jt1*ZI6X3e`y^}CG!U9x+`H1!Un zdY1{j%T(TBZTBP&b_@IKGDc!wq{YQmP`oFpX15ivSX}I5DY~(U#^U0WB6=0uRiMV= z;+TkTW_t=~EG|YVn*3C$xWM9K9mSg2eFZEQ^So(U$Tr0##^Pc*rPZ z4S4Tl1Kn&%w!7UhFfFM&8#7fYP}1D#GSf$#2r3>?39U|#Rwr1P~GW_eRc^_=87 zw!nAL479q4wg9auqOCw{i)b6rx+2;Rw7!UT0BtCuogw3Ml7lYbmNM?FIISBP6(RF; z+=?O|;8=<}dV#hU(Pco}ifA9ul_7i42!7x=iX_T`b{5eUK)Ys(7?r?q7tvKfdy434 zpuI(O4bWvpbS==nBDxM}e-Rx3y1a;9d)gG>s_2OH<%R#0x}=7}&`4F;LaAAlK{C4zEgiuE|FY$^!Tt))ZeL)&{$s22e< zXD4F25%eMGM=*$B0KqN*g8JA@G(5#eqkJ?VC9U)m^QOiQY(;O9HUwKxPTQH28#z7A z-{;mLi|c?7q{Pm zE+e$U8rE8>zZ1Dtzi8>1Q{JKR{pB)6%1}q&vA*RsyE6uJ#%RsB>ofY&OhsG95Cl{2o`tC{}5 z6X4dt(;qmZPaAI^O z$`gz*jQkl0eL|QKEI*9VSn&Aq(dkGu91BOLU~P}$fXu*7z@nIW`5Y1dikYIqOo_(y z(3?zv%=0LGgg#R?-+Zery|q8Nwg0_+iQ$pd*8S znK7B?6nFI|dfw-tkN8g6ZQfTW<|op&nxw7f^=DGH4H>&T<0zwdeOG2J?pFuq2hx`6 zq^0`x@sy=0^VO`hx-;w6`UFG8QrWshTYuuf;lznZ`a~>wBDPpI zb4imiy318!8tuAG#NhoWwN{P{yu~lYFZu(-t#dXusEzX5^0kdNK zl2Zs~5LgjBMSr<=L&sS}i#&|vECNgn!d#63Anu0>(S>u!U>2XEN9(PvEJYN+%%zB! z8x}Mkvknp@LQaoPMnb^}@*;@+3Vx&K>Gk@JLpE;)e(Yth#^>Y93R$UoPM%duRQikR z3+k7&cg?|Mf?Tu?Ke~5iw1`sXurDqyl@_FDn z=#@rMc)QGWD*_w+&nryKgU_M04$TtzZ zhJdAb!8H$Xh@e2bZ~}Chpbti);qfUxG#ZN_^D^DK(Nn@=#!4^N+C2G~QDV%XZsfbr zZ!K(-Q4_tmaaYq~!^5{9UUUs#=v!7wV4Lok??{_#lIEI}xh`#9pER$(S)DR(o>M}y z>s|EyS`TgjN(1%Od1+^BNPZ8J*F~?jZbQDSoPN^UHtVX+xT=?}TBCYSmi0(fx{Im{ zs+Tk{gs1ZLj$2jlHvCn?t+GY;&Vq9+`4^wE0$TO4FH;b&7|;!nZeda9vl?qip{$ z0QQA$FcR~3MJA^w_!u9$wuT^={0RaUwc4E{BSWLZJ9>5u?-(YBSR<`!YxevxqN|o& zJ`@SVM(v}KHd})q1=wtCG#pouPcs3w5+%UE?8UX9Z?#$FH-T}6e$ci>31txelu_N5 zR;b2bYKP5lVRVa`vwjZ;UD2MriR3l<{MHtpO>!ORfQrbG{Qw2Y4QybWpcXL^_pw7E-&bY%A7SeiNXEL^2W{)$!e(X+=9rjOEWgmKfM)gHUYKjuG%RJ{ zN)dvCb}TkJLng%SRRhDY_3`_C;xYk4U@3#yMs5N5r#(5h5OKsI9nb=1xOLSJMOCh6kabjD;upGm$BtIFXb=7VxW2N7ZT%vebA7 z=V6B_&Iq?0?8yQeS0U%G-2PGnI}vO!D3Xh!+aU8J^w|O+aH-Ur&i8&q|E=p4PDh{Z zwn3O*?mi@4XNFe7EGoph5qYHm0x~g4S-S&lB-geI8YXSL0kw}h3>^(nr=8=P7m|b5dxWwZG{+9iymSV|HDCS`+Ee;PnC!< z?WzESV-JUcI|B~G+=U0gio0@WxDnmOBu8_i?}5}O3mrRu&6$`hdVz*h4*w7<-Mzc{ z5gVec%?_BL?&hb1B*rR6rmhm(SxU%7bqiGljv}Z-D;=V^aWI`=OG@l^mHY^3t(0bW zH%bj=>g!tv3pCV6xpFo?oAie`JSO%vsi+lWSgCB_q1g|x?f!arwcnpX5w>5gQZ`qc z6_ib&B-2=vJJe%%E9KwHk2VliYzM|z6na`E?L5Ohl+{@$QV13Rk><|S**ch1~= z>h1Vj@${zNzEpZ=%hn^mW3;Wvs~2!96&xq z4O#Y~u4mTL?OrG&hHSr!A9(EhAV1_5tzf-Q4CCD0PPD&h-C!KSj@B2%EKq9Y?EeWg zH;eXvIrLlXmpj#Sx~!Hyu@~)sc`w@k@&1p+;+xt3J}Qj{p9xUT;_Af(X=HV=cq3A* zUhTcuVbwx^H7e=n!=6TV;jp10`IiM8J!eJ+#_2{g@IV&drhGowXB|~=a4xTrI@EJo z*osxww9=VWIv17hWhFhk&&@1w(!bdErDr9Z*ggYqEX*Rdr&!@8VW&SEvCrP0TV(SC z)Gv8ZQi*%lMiBqX$!bQE3h!6qEkXdvN70^X(H@2V`E$>nyG)gX4tjCFr5#MOma&?^ zyewa1RnMuQ_)(cI>M!UQl@2J;jGlz2KV=w5Cl0O)2~SIqj0cefhCOT~ET( zn=(LcyA#&r!-G!gPv!J)12qfALtp1)amh&+eamSs)jm-tkzC@)Cn3pM75u8{w!`(* zVA4oq7Wzgr)E1k~rnu&Y{yGN=p-$S6;j9j%?DU`1X6iqz;TmZJ^bskw=>~Tl)Mlcp zQ0ZCSRPT!L(IaX-X^7=Ul1O3|wCRYC^*nmSTB=6z7`lahAu~NX>cm!A$a0;d>yCJl z_`Q%duS;APSH;y}3;J)>7X!P*?_@nKFLxPl*sf#60N+`CTz|3=nI)VA&?dUR(oFA- zn%m>r{Lq{vwn3DZfJn&vyG~-ij>k28XAN*uDGu>UMh}of|I;dE|bLY63D)g3)J3{rwV^>xbvO&N#Z4OMO+$JhCHvy z&YEHm<)z}1kT-6+jwdvH`y_#~L3W@`*}imdIi zSa9qFE2CJ!_do0`V0BdPPdiYwS>qJkyLPrxMu zoK|Rvl3$@b^N&Sz93I}dHO)+;L&<+ZJ5BJG;NB%P9XxP|ElMTC+%!ZIvd}dOgY=< z^h>@#+P6OGTc7rAPWm?A)+c7FlCAcJ z;-Sba;tacEbiFuTo{SG!}YPN zFiT{Xb~3j7;#K)+jD}w$_yRycD(G@SQ4|g2OKksd1fSE;lN)9g7jW%1s{nXk1zuW+&wLo$ zKs<$Eib;H4a#vUO+Nn1Ki@KKcJ>Ws5fz>>=A1i!IP{+Zezq{gU`<3>zyFTfze{&$^ z-jaJ*U2>LV?0mBfmP@QrC6tnLx^5UYARQbGaD#z*S{D6%&OzUZ?wp0JWB(7Ch`_&2 zp!Q-<>LF4K;-m|~qX;Gtd=0^i2reR+M?evL7r{*g_z=SG{^T}dctIn0Pa=4?AXs3N z3<9j_2$nqS2-Xe+la!zfu1VN?6uYQ=p=^f=aAtykn3O{k{79nf=nrEJvrynkZTF;h zu9N$04WL1Q28#f5- zayBL6*%mgooZFR`M)XrXy*lHbwLsga(msys$~Q7Rdqm1QnYi6~KBCzM#x)kWh-T{; zx1ulxqS<~_=ToVxFfXFnb|&oR`f%V`^b6wIhZ$Q_FbPq3WJDhtxuLukh-PaTx0D;s za}mvHq33qyxrpXu4cv}A7ttJ7%kAsPt&NuJ$oko^+Je4_=C~b&0T9jZ6#e63zGnRp HWpVL;g$z9D diff --git a/osinaweb/osinacore/add/urls.py b/osinaweb/osinacore/add/urls.py index 74e96abf..03364b39 100644 --- a/osinaweb/osinacore/add/urls.py +++ b/osinaweb/osinacore/add/urls.py @@ -31,4 +31,7 @@ urlpatterns = [ path('ticket//', views.add_ticket, name='addticket'), path('ticketupdate//', views.add_ticket_update, name='addticketupdate'), path('add_project_momber', views.add_project_member_modal, name='addprojectmembermodal'), + + path('fileUploader/', views.upload_file, name='fileUploader'), + ] \ No newline at end of file diff --git a/osinaweb/osinacore/add/views.py b/osinaweb/osinacore/add/views.py index 85217ba0..6dd427b2 100644 --- a/osinaweb/osinacore/add/views.py +++ b/osinaweb/osinacore/add/views.py @@ -9,8 +9,9 @@ from django.http import JsonResponse from osinacore.decorators import * from billing.models import * from customercore.models import * - - +import os +from django.conf import settings +from django.core.files import File @staff_login_required def add_status_modal(request, *args, **kwargs): @@ -18,7 +19,7 @@ def add_status_modal(request, *args, **kwargs): text = request.POST.get('text') current_datetime = datetime.now() date = datetime.now().date() - time = current_datetime.strftime("%I:%M %p") + time = current_datetime.strftime("%I:%M %p") try: staff_profile = StaffProfile.objects.get(user=request.user) @@ -30,7 +31,7 @@ def add_status_modal(request, *args, **kwargs): text=text, staff=staff_profile, date=date, - time = time, + time=time, ) status.save() @@ -39,7 +40,6 @@ def add_status_modal(request, *args, **kwargs): return render(request, 'add_templates/add-status-modal.html') - @staff_login_required def add_customer(request): references = Reference.objects.all().order_by('-id') @@ -48,7 +48,7 @@ def add_customer(request): email = request.POST.get('email').lower() first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') - + user = User.objects.create_user( username=email, email=email, @@ -57,28 +57,27 @@ def add_customer(request): user.first_name = first_name.lower().capitalize() user.last_name = last_name.lower().capitalize() user.save() - + if request.POST.get('referenceid'): reference_id = request.POST.get('referenceid') reference = get_object_or_404(Reference, id=reference_id) - else: + else: reference = None CustomerProfile.objects.create( user=user, - mobile_number = request.POST.get('mobile_number'), - personal_website = request.POST.get('personal_website'), - status = request.POST.get('status'), - reference = reference, + mobile_number=request.POST.get('mobile_number'), + personal_website=request.POST.get('personal_website'), + status=request.POST.get('status'), + reference=reference, ) return redirect('customers') - context = { - 'references' :references, + context = { + 'references': references, } return render(request, 'add_templates/add-customer.html', context) - @staff_login_required @@ -88,10 +87,10 @@ def add_business(request): if request.method == 'POST': customer_id = request.POST.get('customer') - customer = get_object_or_404(CustomerProfile, id=customer_id) + customer = get_object_or_404(CustomerProfile, id=customer_id) name = request.POST.get('name') - email= request.POST.get('email') + email = request.POST.get('email') financial_number = request.POST.get('financial_number') phone_number = request.POST.get('phone_number') vat = request.POST.get('vat') @@ -107,19 +106,19 @@ def add_business(request): business_type = get_object_or_404(BusinessType, id=business_type_id) business = Business( - customer = customer, - name = name, - email = email, - financial_number = financial_number, - vat = vat, - commercial_registration = commercial_registration, - website = website, - type=business_type, - logo = logo, - phone_number = phone_number, + customer=customer, + name=name, + email=email, + financial_number=financial_number, + vat=vat, + commercial_registration=commercial_registration, + website=website, + type=business_type, + logo=logo, + phone_number=phone_number, ) business.save() - + return redirect('businesses') context = { @@ -130,8 +129,6 @@ def add_business(request): return render(request, 'add_templates/add-business.html', context) - - @staff_login_required def add_staff(request): staffpositions = StaffPosition.objects.all().order_by('-id') @@ -139,10 +136,11 @@ def add_staff(request): email = request.POST.get('email').lower() first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') - username = f"{first_name.replace(' ', '').lower()}{last_name.replace(' ', '').lower()}" + username = f"{first_name.replace(' ', '').lower()}{ + last_name.replace(' ', '').lower()}" original_username = username - counter = 1 - + counter = 1 + while User.objects.filter(username=username).exists(): username = f"{original_username.lower()}{counter}" counter += 1 @@ -155,9 +153,9 @@ def add_staff(request): user = User.objects.create_user( username=username, email=email, - password= request.POST.get('password2'), - is_staff = True, - is_active = active + password=request.POST.get('password2'), + is_staff=True, + is_active=active ) user.first_name = first_name.lower().capitalize() user.last_name = last_name.lower().capitalize() @@ -168,26 +166,25 @@ def add_staff(request): if request.POST.get('intern'): intern = True - else: + else: intern = False StaffProfile.objects.create( user=user, - image = request.FILES.get('image'), - mobile_number = request.POST.get('mobile_number'), - active = active, - intern = intern, - staff_position = staff_position, - ) + image=request.FILES.get('image'), + mobile_number=request.POST.get('mobile_number'), + active=active, + intern=intern, + staff_position=staff_position, + ) return redirect('users') context = { - 'staffpositions' : staffpositions, + 'staffpositions': staffpositions, } return render(request, 'add_templates/add-staff.html', context) - @staff_login_required def add_project(request): staffs = StaffProfile.objects.all().order_by('-id') @@ -202,13 +199,11 @@ def add_project(request): managerid = request.POST.get('manager') manager = get_object_or_404(StaffProfile, id=managerid) - project_type = request.POST.getlist('project_type') details = request.POST.get('details') membersids = request.POST.getlist('members') start_date = request.POST.get('start_date') - end_date = request.POST.get('end_date') - + end_date = request.POST.get('end_date') project = Project( name=name, @@ -219,29 +214,28 @@ def add_project(request): end_date=end_date, ) project.save() - + project.project_type.set(project_type) project.members.set(membersids) - requirements = request.POST.getlist('requirements') + requirements = request.POST.getlist('requirements') for requirement_content in requirements: if requirement_content: - requirement = ProjectRequirement(content=requirement_content, project=project, added_by=request.user) + requirement = ProjectRequirement( + content=requirement_content, project=project, added_by=request.user) requirement.save() return redirect('my-projects') - - context = { - 'staffs' : staffs, - 'project_types' : project_types, - 'customers' : customers, + context = { + 'staffs': staffs, + 'project_types': project_types, + 'customers': customers, } return render(request, 'add_templates/add-project.html', context) - @staff_login_required def add_user_story_modal(request, project_id): project = get_object_or_404(Project, project_id=project_id) @@ -249,24 +243,23 @@ def add_user_story_modal(request, project_id): content = request.POST.get('content') story = ProjectRequirement( - content = content, - project = project, - added_by = request.user, + content=content, + project=project, + added_by=request.user, ) story.save() # Reload the parent page using JavaScript - response = HttpResponse('') + response = HttpResponse( + '') return response - context = { - 'project' : project, + 'project': project, } return render(request, 'add_templates/add-userstory-modal.html', context) - @staff_login_required @@ -275,13 +268,14 @@ def add_file_modal(request, *args, **kwargs): context = { } - return render(request, 'add_templates/add-file-modal.html', context) + return render(request, 'add_templates/add-file-modal.html', context) + def add_credential_modal(request, *args, **kwargs): context = { } - return render(request, 'add_templates/add-credentials-modal.html', context) + return render(request, 'add_templates/add-credentials-modal.html', context) @staff_login_required @@ -290,9 +284,7 @@ def add_project_member_modal(request, *args, **kwargs): context = { } - return render(request, 'add_templates/add-project-member-modal.html', context) - - + return render(request, 'add_templates/add-project-member-modal.html', context) @staff_login_required @@ -302,30 +294,27 @@ def add_task(request, project_id=None, requirement_id=None): epics_of_my_project = None projects = None - - if project_id: #Case where user wants to add task from project page(Adding a task for a project) + # Case where user wants to add task from project page(Adding a task for a project) + if project_id: project = get_object_or_404(Project, project_id=project_id) epics_of_my_project = Epic.objects.filter(project=project) if requirement_id: - requirement = get_object_or_404(ProjectRequirement, id=requirement_id) + requirement = get_object_or_404( + ProjectRequirement, id=requirement_id) - - else: #Case where user wants to add task from tasks page(No project specified) + # Case where user wants to add task from tasks page(No project specified) + else: projects = Project.objects.all().order_by('-id') - staffs = StaffProfile.objects.all().order_by('-id') - if request.method == 'POST': name = request.POST.get('name') status = request.POST.get('status') - extra = request.POST.get('extra') - description = request.POST.get('description') - start_date = request.POST.get('start_date') - end_date = request.POST.get('end_date') - - + extra = request.POST.get('extra') + description = request.POST.get('description') + start_date = request.POST.get('start_date') + end_date = request.POST.get('end_date') if not project_id: project_id = request.POST.get('project') @@ -334,91 +323,85 @@ def add_task(request, project_id=None, requirement_id=None): epic_id = request.POST.get('epic') epic = get_object_or_404(Epic, id=epic_id) - assigned_to_id = request.POST.get('assigned_to') assigned_to = get_object_or_404(StaffProfile, id=assigned_to_id) task = Task( name=name, status=status, - project=project, + project=project, epic=epic, extra=extra, description=description, start_date=start_date, end_date=end_date, - assigned_to = assigned_to, - requirement = requirement, + assigned_to=assigned_to, + requirement=requirement, ) task.save() - task_details_url = reverse('detailed-task', args=[task.task_id]) if requirement: - return redirect('detailed-project', project_id=project.project_id) + return redirect('detailed-project', project_id=project.project_id) else: - return HttpResponseRedirect(task_details_url) - + return HttpResponseRedirect(task_details_url) - context = { - 'project':project, - 'epics_of_my_project' : epics_of_my_project, - 'staffs' : staffs, - 'projects' : projects, - 'requirement' : requirement + context = { + 'project': project, + 'epics_of_my_project': epics_of_my_project, + 'staffs': staffs, + 'projects': projects, + 'requirement': requirement } return render(request, 'add_templates/add-task.html', context) - @staff_login_required def add_point_modal(request, task_id): task = get_object_or_404(Task, task_id=task_id) if request.method == 'POST': text = request.POST.get('text') point = Point( - text = text, - task = task, - status='Not Completed' + text=text, + task=task, + status='Not Completed' ) point.save() # Redirect back to the same page return redirect(request.META.get('HTTP_REFERER', '')) - + context = { - 'task' : task, + 'task': task, } return render(request, 'add_templates/add-point-modal.html', context) - @staff_login_required def save_point_modal(request, task_id): task = get_object_or_404(Task, task_id=task_id) if request.method == 'POST': text = request.POST.get('text') point = Point( - text = text, - task = task, - status='Not Completed' + text=text, + task=task, + status='Not Completed' ) point.save() return JsonResponse({'success': True, 'message': 'Point saved successfully.'}) - + context = { - 'task' : task, + 'task': task, } return render(request, 'add_templates/add-point-modal.html', context) - @staff_login_required def add_epic(request, project_id): project = get_object_or_404(Project, project_id=project_id) @@ -427,43 +410,39 @@ def add_epic(request, project_id): status = request.POST.get('status') description = request.POST.get('description') - project_id = request.POST.get('project') project = get_object_or_404(Project, id=project_id) - start_date = request.POST.get('start_date') end_date = request.POST.get('end_date') - epic = Epic( title=title, status=status, - project=project, + project=project, description=description, start_date=start_date, end_date=end_date ) - epic.save() redirect_url = reverse('detailed-project', args=[project.project_id]) return redirect(redirect_url) - - context = { - 'project' : project, + + context = { + 'project': project, } return render(request, 'add_templates/add-epic.html', context) - @staff_login_required def add_note_modal(request, project_id=None): project = None - if project_id: #Case where user wants to add note for a project page(Adding a note for a project) + # Case where user wants to add note for a project page(Adding a note for a project) + if project_id: project = get_object_or_404(Project, project_id=project_id) - else: + else: project = None if request.method == 'POST': text = request.POST.get('note_text') @@ -482,13 +461,12 @@ def add_note_modal(request, project_id=None): # Reload the parent page return HttpResponse('') - context={ + context = { 'project': project, } return render(request, 'add_templates/add-note-modal.html', context) - @staff_login_required def add_daily_report(request): user = request.user @@ -497,12 +475,12 @@ def add_daily_report(request): if request.method == 'POST': text = request.POST.get('text') current_datetime = datetime.now() - time = current_datetime.strftime("%I:%M %p") + time = current_datetime.strftime("%I:%M %p") try: staff_profile = StaffProfile.objects.get(user=request.user) except StaffProfile.DoesNotExist: # Handle the case where a StaffProfile does not exist for the user - staff_profile = None + staff_profile = None dailyreport = DailyReport( text=text, @@ -511,7 +489,7 @@ def add_daily_report(request): staff=staff_profile ) dailyreport.save() - + return redirect('dailyreports') context = { @@ -520,14 +498,13 @@ def add_daily_report(request): return render(request, 'add_templates/add-daily-report.html', context) - @staff_login_required def add_department_modal(request, *args, **kwargs): if request.method == 'POST': name = request.POST.get('name') department = Department( - name = name, - + name=name, + ) department.save() @@ -542,15 +519,16 @@ def add_projecttype_modal(request, *args, **kwargs): if request.method == 'POST': name = request.POST.get('name') projecttype = ProjectType( - name = name, - department = get_object_or_404(Department, id= request.POST.get('department')) - + name=name, + department=get_object_or_404( + Department, id=request.POST.get('department')) + ) projecttype.save() # Reload the parent page return HttpResponse('') - context ={ + context = { 'departments': departments, } return render(request, 'add_templates/add-projecttype-modal.html', context) @@ -562,16 +540,17 @@ def add_staffposition_modal(request): if request.method == 'POST': name = request.POST.get('name') staffposition = StaffPosition( - name = name, - department = get_object_or_404(Department, id= request.POST.get('department')) + name=name, + department=get_object_or_404( + Department, id=request.POST.get('department')) + - ) staffposition.save() - + # Reload the parent page return HttpResponse('') - context ={ + context = { 'departments': departments, } return render(request, 'add_templates/add-staffposition-modal.html', context) @@ -582,19 +561,15 @@ def add_businesstype_modal(request, *args, **kwargs): if request.method == 'POST': name = request.POST.get('name') - businesstype = BusinessType( - name = name, + name=name, ) businesstype.save() - # Reload the parent page return HttpResponse('') - - return render(request, 'add_templates/add-businesstype-modal.html') - + return render(request, 'add_templates/add-businesstype-modal.html') @staff_login_required @@ -603,42 +578,38 @@ def add_reference_modal(request, *args, **kwargs): name = request.POST.get('name') date = request.POST.get('date') - reference = Reference( - name = name, - date = date, + name=name, + date=date, ) reference.save() - # Reload the parent page return HttpResponse('') return render(request, 'add_templates/add-reference-modal.html') - @staff_login_required def add_tag_modal(request, *args, **kwargs): if request.method == 'POST': name = request.POST.get('name') - tag = Tag( - name = name, + name=name, ) tag.save() - + # Reload the parent page return HttpResponse('') return render(request, 'add_templates/add-tag-modal.html') - @staff_login_required def add_reaction(request, status_id, emoji): status = get_object_or_404(Status, pk=status_id) user = request.user - existing_reaction = Reaction.objects.filter(status=status, user=user).first() + existing_reaction = Reaction.objects.filter( + status=status, user=user).first() if existing_reaction: # If the user has already reacted, update the reaction existing_reaction.emoji = emoji @@ -646,44 +617,49 @@ def add_reaction(request, status_id, emoji): return JsonResponse({'message': 'Reaction updated successfully.'}) else: # If the user hasn't reacted yet, create a new reaction - new_reaction = Reaction.objects.create(status=status, emoji=emoji, user=user) + new_reaction = Reaction.objects.create( + status=status, emoji=emoji, user=user) return JsonResponse({'message': 'Reaction added successfully.'}) - @staff_login_required def add_ticket(request, customer_id): customer = get_object_or_404(CustomerProfile, id=customer_id) customer_orders = Order.objects.filter(customer=customer) - customer_orders_with_last_status = customer_orders.annotate(max_status_date=Max('orderstatus__date')) - customer_orders_completed = customer_orders_with_last_status.filter(orderstatus__status='Completed', orderstatus__date=F('max_status_date')) - customer_products = OrderItem.objects.filter(active__in=[True, None], item__type='Product', order__customer=customer, order__in=customer_orders_completed) + customer_orders_with_last_status = customer_orders.annotate( + max_status_date=Max('orderstatus__date')) + customer_orders_completed = customer_orders_with_last_status.filter( + orderstatus__status='Completed', orderstatus__date=F('max_status_date')) + customer_products = OrderItem.objects.filter(active__in=[ + True, None], item__type='Product', order__customer=customer, order__in=customer_orders_completed) customer_projects = Project.objects.filter(customer=customer) all_departments = Department.objects.all().order_by('name') support_department = get_object_or_404(Department, name='Support') - + if request.method == 'POST': project = None product = None regarding = 'General/Account/Billing' departments = [support_department] - + if request.POST.get('project'): - project = get_object_or_404(Project, id=request.POST.get('project')) + project = get_object_or_404( + Project, id=request.POST.get('project')) regarding = 'Project/Product' - project_types = project.project_type.all() - departments = [project_type.department for project_type in project_types] - + project_types = project.project_type.all() + departments = [ + project_type.department for project_type in project_types] + elif request.POST.get('product'): product = get_object_or_404(Item, id=request.POST.get('product')) departments = [product.item_type.department] regarding = 'Project/Product' if request.POST.getlist('departments'): - department_ids = request.POST.getlist('departments') + department_ids = request.POST.getlist('departments') departments = Department.objects.filter(id__in=department_ids) - + ticket = Ticket( status='Open', customer=customer, @@ -696,24 +672,22 @@ def add_ticket(request, customer_id): opened_date=datetime.now() ) ticket.save() - - ticket.departments.set(departments) - - ticket_status_update = TicketStatus( - ticket=ticket, - status='Open', - added_by=request.user, - date_added=datetime.now() - ) - ticket_status_update.save() - - for file in request.FILES.getlist('files'): - ticket_attachment = TicketAttachment( - ticket=ticket, - file=file - ) - ticket_attachment.save() - + + ticket.departments.set(departments) + if request.POST.get('filePath'): + file_path = request.POST.get('filePath') + + # Check if the file exists + if os.path.exists(file_path): + with open(file_path, 'rb') as f: + ticket_attachment = TicketAttachment( + ticket=ticket, + file_path=file_path + ) + ticket_attachment.save() + else: + # Handle the case where the file does not exist + print("Error: File does not exist at the provided path:", file_path) return redirect('ticketdetails', ticket_number=ticket.ticket_number) context = { @@ -726,19 +700,42 @@ def add_ticket(request, customer_id): return render(request, 'add_templates/add-ticket.html', context) +def upload_file(request): + if 'file' not in request.FILES or 'filename' not in request.POST: + return JsonResponse({'data': 'Invalid Request'}) + + file = request.FILES['file'] + fileName = request.POST['filename'] + path = os.path.join('static', 'images', 'uploaded_ticket_files', fileName) + + # Ensure the directory exists + os.makedirs(os.path.dirname(path), exist_ok=True) + + # If the file already exists, generate a new filename + index = 1 + base_filename, extension = os.path.splitext(fileName) + while os.path.exists(path): + new_filename = f"{base_filename}_{index}{extension}" + path = os.path.join('static', 'images', 'uploaded_ticket_files', new_filename) + index += 1 + + # Write the entire file + with open(path, 'wb+') as destination: + destination.write(file.read()) + + return JsonResponse({'data': 'Uploaded Successfully', 'existingPath': path}) @staff_login_required def add_ticket_update(request, ticket_id): ticket = get_object_or_404(Ticket, id=ticket_id) - if request.method == 'POST': ticket_update = TicketUpdate( - ticket = ticket, - description = request.POST.get('description'), - added_by = request.user, - date_added = datetime.now(), + ticket=ticket, + description=request.POST.get('description'), + added_by=request.user, + date_added=datetime.now(), ) ticket_update.save() for file in request.FILES.getlist('files'): @@ -748,16 +745,11 @@ def add_ticket_update(request, ticket_id): ) ticket_attachment.save() return redirect('ticketdetails', ticket_number=ticket.ticket_number) - + context = { 'ticket': ticket, - + } return render(request, 'add_templates/customer-add-ticket.html', context) - - - - - diff --git a/osinaweb/osinacore/api/__pycache__/serializers.cpython-312.pyc b/osinaweb/osinacore/api/__pycache__/serializers.cpython-312.pyc index f730770e5f6a253c3a0016014b3ef5a2dcf4aae4..69128554931f26e6bc085c3b412d0b3b224b7d38 100644 GIT binary patch delta 20 acmbQsIhT|BG%qg~0}wR7^4rKgi3I>PwgprG delta 20 acmbQsIhT|BG%qg~0}yO-_u0rji3I>NBLv<6 diff --git a/osinaweb/osinacore/api/__pycache__/urls.cpython-312.pyc b/osinaweb/osinacore/api/__pycache__/urls.cpython-312.pyc index 7b6065989d070f2d027d9e04caed0e0101676632..9b9abedf4ba7d324e733b5ef3d42d74f6e3777bf 100644 GIT binary patch delta 20 acmeBT?qcRX&CAQh00hmi{5EpeGXelH;{^-= delta 20 acmeBT?qcRX&CAQh00f)deKvB}GXelFPz06$ diff --git a/osinaweb/osinacore/api/__pycache__/views.cpython-312.pyc b/osinaweb/osinacore/api/__pycache__/views.cpython-312.pyc index aa201c2f52d5a3910a0422dd9bda2697ce1ea088..7ab9b2bef46fa2ba10e3063d831a3b12beaa42f1 100644 GIT binary patch delta 20 acmZ3-zmA{#G%qg~0}wR7^4rM0m>mE)IR%yg delta 20 acmZ3-zmA{#G%qg~0}yO-_u0t3m>mE%rUf7X diff --git a/osinaweb/osinacore/delete/__pycache__/urls.cpython-312.pyc b/osinaweb/osinacore/delete/__pycache__/urls.cpython-312.pyc index 9b866e2d599d1184d1b1f111f0336f2837e94820..c556ea0a8961a35c498c3b7a947bda4822f69d7d 100644 GIT binary patch delta 20 acmZ3%yMmYdG%qg~0}wR7^4rKgmkj_o00n;l delta 20 acmZ3%yMmYdG%qg~0}yO-_u0rjmkj_lZ3PJc diff --git a/osinaweb/osinacore/delete/__pycache__/views.cpython-312.pyc b/osinaweb/osinacore/delete/__pycache__/views.cpython-312.pyc index 15b194d1a4ffcd3c3c234be34f006d1f4d073bff..05d5d170c96ed260d7d581475a731ec9511f3280 100644 GIT binary patch delta 20 acmeyV_fwDiG%qg~0}wR7^4rLrCk_BeT?Rz} delta 20 acmeyV_fwDiG%qg~0}yO-_u0suCk_Bb$_38= diff --git a/osinaweb/osinacore/edit/__pycache__/urls.cpython-312.pyc b/osinaweb/osinacore/edit/__pycache__/urls.cpython-312.pyc index 83aa00a25f8215f70e5efbb5a63076a2e96d04f0..bd4251264a2a1df3f93d0f037de0b6b6fbf84bf5 100644 GIT binary patch delta 20 acmdlczD=C_G%qg~0}wR7^4rM0ni~K+odv=G delta 20 acmdlczD=C_G%qg~0}yO-_u0t3ni~K)3I$96 diff --git a/osinaweb/osinacore/edit/__pycache__/views.cpython-312.pyc b/osinaweb/osinacore/edit/__pycache__/views.cpython-312.pyc index fccc02bd5e77ed93c9ae737011798a5d3ca656b9..b32d549643acec23d6a163f664d627e7377450a1 100644 GIT binary patch delta 22 ccmZ2=k#W^UM()$Ryj%=G(EQ48Blr9a09e`waR2}S delta 22 ccmZ2=k#W^UM()$Ryj%=Gu*uzLBlr9a09Ho^`v3p{ diff --git a/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0001_initial.cpython-312.pyc index f2fe251a4f63165a1f4d407ddeaba9efd1d38957..ad8c1fdbd65c480a38122853260d6891696d9868 100644 GIT binary patch delta 20 acmca3dqt^FV&CAQh00hmi{1$RE0{|?w1cv|s delta 19 ZcmeBX>t^FV&CAQh00f)deHL;v0{|+R1Q7rL diff --git a/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0006_note.cpython-312.pyc index 86e6d717e9768b4eb80f8323a5bf0cbce331b5b6..3977beb3e93617b634d10da76d879398c62b2d0f 100644 GIT binary patch delta 20 acmbQrJC&FFG%qg~0}wR7^4rMW#RdR12n9v} delta 20 acmbQrJC&FFG%qg~0}yO-_u0tZ#RdQ}bp+4= diff --git a/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0007_project_project_id_alter_project_status.cpython-312.pyc index fb6015918d5b3bcf9eb5acd50bd8a08280be6f9b..18acedf39d391f07d9e564bb9cd406f41a54947d 100644 GIT binary patch delta 20 acmZ3)v515FG%qg~0}wR7^4rKQ&H?~6S_I($ delta 20 acmZ3)v515FG%qg~0}yO-_u0rT&H?~3#{_Et diff --git a/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0008_alter_project_project_id.cpython-312.pyc index a8a2e54c2502f860fb0ae7ba2a85e392f9276c6f..49254eed044eca32ef228f8fe1e9441fc006e1f1 100644 GIT binary patch delta 20 acmX@gc9f0#G%qg~0}wR7^4rL5#S8#Ci3LRf delta 20 acmX@gc9f0#G%qg~0}yO-_u0s8#S8#9_5{xW diff --git a/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0009_alter_project_project_id.cpython-312.pyc index 66dd8b263e418bc51c55a7a0888630214165bf19..b0f0928d77cf4b03b15b2551b5ca0eb2ec30a746 100644 GIT binary patch delta 20 acmdnWwv~gVD<&CAQh00hmi{5Ep4umS)ws|2k8 delta 20 acmeC@>gVD<&CAQh00f)deKvBlumS)u7z8%} diff --git a/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0013_projectfile.cpython-312.pyc index afd657868d824e332db8cbcd707d6b6ee33f6373..12a201fa678fb42189fe0882656bf9e7de054f29 100644 GIT binary patch delta 20 acmZqTZsO)X&CAQh00hmi{5EozvjPAy#{~!g delta 20 acmZqTZsO)X&CAQh00f)deKvBJvjPAwGz5|W diff --git a/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0014_alter_projectfile_file.cpython-312.pyc index df411f760c39d3ffeb94e59ec106215ed005b891..57866a25f3640089c72b973dad6a54f9ce03d9b9 100644 GIT binary patch delta 20 acmbQnHjRz@G%qg~0}wR7^4rMG%?toDF$A~( delta 20 acmbQnHjRz@G%qg~0}yO-_u0tJ%?toAo&-Vw diff --git a/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0015_projectcredentials.cpython-312.pyc index c5ea939560b113fc5c643aff0c1315864804ba55..662314725228b785d3abbf0cc795b3793032c039 100644 GIT binary patch delta 20 acmeC+?%?J=&CAQh00hmi{5EpevH}1yw*?vi delta 20 acmeC+?%?J=&CAQh00f)deKvB}vH}1wBm|@Y diff --git a/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0016_rename_projectcredentials_projectcredential.cpython-312.pyc index b8091f2bc4679bc160830aee5fd84911fa99caab..c9bd05aa7c8a241c3a897c915959f2d88f152ee7 100644 GIT binary patch delta 20 acmcb_dWn_$G%qg~0}wR7^4rLLoCyFuYz656 delta 20 acmcb_dWn_$G%qg~0}yO-_u0sOoCyFr*#&a| diff --git a/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0017_alter_project_end_date_alter_project_start_date.cpython-312.pyc index c331d8bce9047d4c925a4c439f88e3b20bdadee9..098bdc4e0cd6b71a131a1a6e1016170379555979 100644 GIT binary patch delta 20 acmX@cevF;_G%qg~0}wR7^4rM0n;8H*)dk7` delta 20 acmX@cevF;_G%qg~0}yO-_u0t3n;8H(LIqR+ diff --git a/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0018_epic_status.cpython-312.pyc index 44ca408ae60e7715b05d5eb4647151f1dd6ee490..777a632bc9f6e2919733c2ae76ea983d46aadc7f 100644 GIT binary patch delta 20 acmaFF_K1!9G%qg~0}wR7^4rKA&I|xQ5e1w8 delta 20 acmaFF_K1!9G%qg~0}yO-_u0rD&I|xNeg!4~ diff --git a/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0019_alter_epic_end_date_alter_epic_start_date.cpython-312.pyc index a17775de7dd8f67725f5b62c90b148e5a7a01539..1ff3a60b5629438f23af8522835a3115579146f7 100644 GIT binary patch delta 20 acmbQkK8KzAG%qg~0}wR7^4rKgkr@CrMFmU% delta 20 acmbQkK8KzAG%qg~0}yO-_u0rjkr@CovIN!u diff --git a/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0020_task.cpython-312.pyc index 674143724e97d1777003317f6dfefa57ee08686b..defca6db8cab8ee4565d80a65aac8aed7ae0c88c 100644 GIT binary patch delta 20 acmbQnKaHRJG%qg~0}wR7^4rMW%?wnB{iG%qg~0}wR7^4rKQ%MAcHNd*=F delta 20 acmZ1>wnB{iG%qg~0}yO-_u0rT%MAcEwgjL6 diff --git a/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0022_customerprofile_customer_id.cpython-312.pyc index f9559912c38a17d7d54be5dd82c97f9d90f6e4a6..31d136f5c4c8b9dcf4c61ab23c99c9203f3a19f5 100644 GIT binary patch delta 20 acmX@lcAkyZ diff --git a/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0023_task_assigned_to.cpython-312.pyc index b86504a8be7fcac0e8b318119df2ca90af089487..7c5e469126d76f7ded4c6d9ca4a623dd7278d834 100644 GIT binary patch delta 20 acmaFM{+6BlG%qg~0}wR7^4rM$h#3Gu?FK&p delta 20 acmaFM{+6BlG%qg~0}yO-_u0t(h#3GsS_R1f diff --git a/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0024_task_task_id.cpython-312.pyc index 691b07a558caffc33fec9eb278d263df71c8ec0e..d17c665eafd4f4b67bd0841918e27466682c0f9d 100644 GIT binary patch delta 20 acmbQqHj|C}G%qg~0}wR7^4rMG#|!{7sRY3Q delta 20 acmbQqHj|C}G%qg~0}yO-_u0tJ#|!{576eNG diff --git a/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0025_status.cpython-312.pyc index e6e39b7c75208cdc73f8b4b98be129b44099399e..551f8620bc152c7c0213a60730cf9eff6a14d293 100644 GIT binary patch delta 20 acmZ3%vx0~FG%qg~0}wR7^4rKQ%LV{8+ywmq delta 20 acmZ3%vx0~FG%qg~0}yO-_u0rT%LV{6Nd$)g diff --git a/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0026_remove_status_user_status_staff.cpython-312.pyc index a74e5c81b6506d44766d49f0bd88f5de813ba7cb..df25a5bd9d2124ab97eaca316e13cf5f92f4ad16 100644 GIT binary patch delta 20 acmaFC@q&Zn>3dIY@y delta 20 acmbQnF^z-!G%qg~0}yO-_u0tJ%>n>0=LAOp diff --git a/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0028_remove_projecttype_color.cpython-312.pyc index 2313fca6666474f34822e3773aa0b6ca54ebbf69..9ed7d5c27f4e5127bfba07322482e5796bd7157b 100644 GIT binary patch delta 20 acmZ3*x{8(iG%qg~0}wR7^4rKgp9ugrECq1@ delta 20 acmZ3*x{8(iG%qg~0}yO-_u0rjp9ugonFRX) diff --git a/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0029_alter_reference_date.cpython-312.pyc index bb861bfec7bc0eed3e2c151bd4c191c3dcbeb5e6..bd7b0735de1f5a268f1a044e38846da80c5a797c 100644 GIT binary patch delta 20 acmbQvHl2<8G%qg~0}wR7^4rMG!wdj3Sp>TP delta 20 acmbQvHl2<8G%qg~0}yO-_u0tJ!wdj0#sozG diff --git a/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0030_tag.cpython-312.pyc index 9c906c7fc6784f1a0c07a97d28f07c3a1ccd69ee..118d52b80347aa11a484773cca6680e6d0b3271d 100644 GIT binary patch delta 20 acmbQvKAoNWG%qg~0}wR7^4rMW!wdj4eFZ%L delta 20 acmbQvKAoNWG%qg~0}yO-_u0tZ!wdj1>IBCC diff --git a/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0031_alter_staffprofile_image.cpython-312.pyc index 5fed5a3d8a43d560d874b8536ca863cf03cdc47f..10911b9ee7269ca45f1eb4b0b41d28d7fafe4e8d 100644 GIT binary patch delta 20 acmbQsHkXb2G%qg~0}wR7^4rKQ#0&s5Nd(OR delta 20 acmbQsHkXb2G%qg~0}yO-_u0rT#0&s2wgguI diff --git a/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0032_point.cpython-312.pyc index 4a0546a24e68f3acd350135ace9e27a90f293e79..fbce61d21e5460cc162976311eb694a156a151ea 100644 GIT binary patch delta 20 acmbQrJ(ZjLG%qg~0}wR7^4rMW#R>p4zXd@6 delta 20 acmbQrJ(ZjLG%qg~0}yO-_u0tZ#R>p2ECkB{ diff --git a/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0033_point_date_completed_point_date_workingon_and_more.cpython-312.pyc index 658c4df7ce313ad28484b65ea8d71c117d8b1186..05aa17d2d7845540f2928dfb2cbb99bec9542142 100644 GIT binary patch delta 20 acmX@id6<*?G%qg~0}wR7^4rM0g9QLPrUk|T delta 20 acmX@id6<*?G%qg~0}yO-_u0t3g9QLN69rHJ diff --git a/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0034_alter_point_date_completed_and_more.cpython-312.pyc index 2cbf8554f2a30e081e5b2e6318fa288711a89643..42d2ed6ff42c40c9165508d67d22df89281db9bd 100644 GIT binary patch delta 20 acmey(`J0pbG%qg~0}wR7^4rM$fdv3WW(IBm delta 20 acmey(`J0pbG%qg~0}yO-_u0t(fdv3T(*^hd diff --git a/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0035_business_business_id.cpython-312.pyc index 181ba4157d692df48940522f35fa7b3f94f395aa..96bee5341454e8240ebb43a4141ca93b5a76554b 100644 GIT binary patch delta 20 acmdnXwwI0jG%qg~0}wR7^4rL5#0&sANd+wc delta 20 acmdnXwwI0jG%qg~0}yO-_u0s8#0&s7wgk5T diff --git a/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0036_staffposition_alter_staffprofile_position.cpython-312.pyc index 44e2db13b1aa3a6a8d1363de7017a45ffd0ed560..9b33748eb2032fe17569895d763bec031a73529e 100644 GIT binary patch delta 20 acmeC+?BL`+&CAQh00hmi{5EpevH$=wZUq$p delta 20 acmeC+?BL`+&CAQh00f)deKvB}vH$=t+XSBg diff --git a/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0037_remove_staffprofile_position.cpython-312.pyc index b734fd173411bef6ba033c0bc67b0953b91037ea..902f3a216891d3a1c6f4b105f600fa03addf33e4 100644 GIT binary patch delta 20 acmX@bdWx0%G%qg~0}wR7^4rM0p9ugwECta3 delta 20 acmX@bdWx0%G%qg~0}yO-_u0t3p9ugtnFU(_ diff --git a/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0038_staffprofile_staff_position.cpython-312.pyc index 78873d7ca5f98ba2549358816fff2b1bb75f7b3b..c8bc608dabbd98ecbfead01a26f9350a7acbfc8a 100644 GIT binary patch delta 20 acmZqWXyxEO&CAQh00hmi{5Ep`Vg>**(FKVB delta 20 acmZqWXyxEO&CAQh00f)deKvCcVg>*(J_Qp1 diff --git a/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0039_alter_staffprofile_staff_position.cpython-312.pyc index 77acaf0d83e932a4115974ddf39d7a089974f8fa..9eb81fdd8327b2cf80f1aa2a111f19d0b0490d69 100644 GIT binary patch delta 20 acmbQoF^_}$G%qg~0}wR7^4rKQ%mM&3x&+k# delta 20 acmbQoF^_}$G%qg~0}yO-_u0rT%mM&1Cj?&r diff --git a/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0040_staffprofile_staff_id.cpython-312.pyc index 14c3a8de9e9c18ef914d3120f2e71247f63546b6..0fc13c47763fee0a5244b0eadeaa2ae486ca08d7 100644 GIT binary patch delta 20 acmdnXwwI0jG%qg~0}wR7^4rL5#0&sANd+wc delta 20 acmdnXwwI0jG%qg~0}yO-_u0s8#0&s7wgk5T diff --git a/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0041_dailyreport.cpython-312.pyc index e79f433c6fa0c47b9470a63419e85e121d1d552c..00369259a735296f2c58473b2640f03081e8a0fa 100644 GIT binary patch delta 20 acmdnZy_=i+G%qg~0}wR7^4rM0ffWEcuLZLJ delta 20 acmdnZy_=i+G%qg~0}yO-_u0t3ffWEa90ff9 diff --git a/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0042_remove_customerprofile_email_and_more.cpython-312.pyc index 6f4fb45a5254dc433954e62919b39fb89531c3d3..0f67f1ac624b58020ad2ca9168ae527a3421ff1b 100644 GIT binary patch delta 20 acmbQrIhB+9G%qg~0}wR7^4rMW#R32{b_F~D delta 20 acmbQrIhB+9G%qg~0}yO-_u0tZ#R32^;{?V4 diff --git a/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0043_businesstype.cpython-312.pyc index 55e04d37f69a8fd4554c846845e2277318197293..21679a8c069859e6866ac84552b9ee7cfd9e6803 100644 GIT binary patch delta 20 acmdnZzMGxILTj diff --git a/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0047_task_status_date.cpython-312.pyc index 5db7a45fc1dcf4b0e5e2683ebdb53430d48b85d4..8b202ea980bb3e467e1e335df2a78ab1743f19f7 100644 GIT binary patch delta 20 acmbQiK7*b6G%qg~0}wR7^4rMW%M1WCr3F9$ delta 20 acmbQiK7*b6G%qg~0}yO-_u0tZ%M1WA5(LTs diff --git a/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0048_alter_customerprofile_business.cpython-312.pyc index f59b4ecfde139f790eeaccc1c8bff64557c8ab2e..419b7286c704419d0461c375dcdc977e341ae10b 100644 GIT binary patch delta 20 acmdnQv5ABGG%qg~0}wR7^4rL*&H?~8+655+ delta 20 acmdnQv5ABGG%qg~0}yO-_u0s;&H?~6M+BPy diff --git a/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0049_alter_customerprofile_business.cpython-312.pyc index db98258c17e64052b0cc7cbe5490025053f097d1..be3e1ef4d6dad70effc5cd88bf98cfbf0839d7d6 100644 GIT binary patch delta 20 acmbQlF^PlwG%qg~0}wR7^4rMG&H?~3+61ux delta 20 acmbQlF^PlwG%qg~0}yO-_u0tJ&H?~1M+7?n diff --git a/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0050_projectrequirement_added_by_projectrequirement_date.cpython-312.pyc index 506476b7c1d416393c5a90d9be467b1530ace0be..c03f8e3f4a783a9e18ccca920d7bfc1e8f3d71e9 100644 GIT binary patch delta 20 acmcb|b&retG%qg~0}wR7^4rKA%nATM0|lA@ delta 20 acmcb|b&retG%qg~0}yO-_u0rD%nATJa0Mg) diff --git a/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0051_alter_task_requirement.cpython-312.pyc index b7d8a38e70239f2dab8b88274110da9d5d603972..84c14e438cfc2404cebd6b927630c46464a55ae3 100644 GIT binary patch delta 20 acmbQrF_nY+G%qg~0}wR7^4rMG#R32`QUtmH delta 20 acmbQrF_nY+G%qg~0}yO-_u0tJ#R32@zXU`8 diff --git a/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0052_note_project.cpython-312.pyc index 67364150675e8f58594ff06765365e17fa7402bd..2d2fc0b462ced72ebfcffcf75334f4522e442e20 100644 GIT binary patch delta 20 acmaFH{*0abG%qg~0}wR7^4rLLn;8H=)dng6 delta 20 acmaFH{*0abG%qg~0}yO-_u0sOn;8H;LItz{ diff --git a/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0053_pointactivity.cpython-312.pyc index 631dfa2ee173713535e67195a2c9e5a822d4e04c..fa192c4efa111388fcf7f048b828bd15bba94e37 100644 GIT binary patch delta 20 acmeC=>g3`+&CAQh00hmi{5Ep`V*vm&x&@j5 delta 20 acmeC=>g3`+&CAQh00f)deKvCcV*vm$Cj}$` diff --git a/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0054_remove_point_date_completed_and_more.cpython-312.pyc index 52bd63f27fb6cf7616a838a2f1bf8dd2f2873678..21787d4f73ff8bc268c3fcbd2fccf3be5430a5b1 100644 GIT binary patch delta 20 acmbQoK98OIG%qg~0}wR7^4rKgnHc~zl?74& delta 20 acmbQoK98OIG%qg~0}yO-_u0rjnHc~x0tDOu diff --git a/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0055_alter_point_status.cpython-312.pyc index 48539c0ae36df7c0f08ca5055a63f9a7aaf0209d..fa2f69e0ab2221e4f8221d2e919976bcc1a136b4 100644 GIT binary patch delta 20 acmbQqK9imMG%qg~0}wR7^4rMW#|!{8%>_dM delta 20 acmbQqK9imMG%qg~0}yO-_u0tZ#|!{6It0xC diff --git a/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0056_alter_pointactivity_end_time.cpython-312.pyc index a207bf863ba7c434bd1f3ae08f19e0cfd877b82f..f0d51b5a050ecf8b8e87cfccaa57b18032e69d5b 100644 GIT binary patch delta 20 acmZ3+wv3JYG%qg~0}wR7^4rKQ%?toFu>|M< delta 20 acmZ3+wv3JYG%qg~0}yO-_u0rT%?toD9t3g# diff --git a/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0057_point_total_time_hours_point_total_time_minutes_and_more.cpython-312.pyc index ae6841ee485f56743eee8c30c10be3fecbbfffd2..1522d2a8baa5eea82dc4168e738c444ace2a46b3 100644 GIT binary patch delta 20 acmcb}agl@jG%qg~0}wR7^4rMm#sUC5vITAc delta 20 acmcb}agl@jG%qg~0}yO-_u0tp#sUC39|ZUS diff --git a/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0058_remove_point_total_time_hours_and_more.cpython-312.pyc index 9fd0616dad38098d4105871387744e3b4f374510..c1761217d53d62cdd68040eb00d8deeb34ef3d95 100644 GIT binary patch delta 20 acmeBR?_lRX&CAQh00hmi{5EpeG6MiIB?S-w delta 20 acmeBR?_lRX&CAQh00f)deKvB}G6MiFk_4In diff --git a/osinaweb/osinacore/migrations/__pycache__/0059_alter_task_requirement.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0059_alter_task_requirement.cpython-312.pyc index 8931c29c9de8ccbacf1e539977c92332b688f92f..7d1113767de1f5c1d64c097894b2f15dc755fc7c 100644 GIT binary patch delta 20 acmbQmF^hxyG%qg~0}wR7^4rMG&jJ868U)Dz delta 20 acmbQmF^hxyG%qg~0}yO-_u0tJ&jJ83hXhjq diff --git a/osinaweb/osinacore/migrations/__pycache__/0060_pointactivity_total_time.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0060_pointactivity_total_time.cpython-312.pyc index a0f6c18ef0e1fc1befc44cca87fbebd6916b1653..97f6c456557964e2611f64e7c21ac5d6dd26fdee 100644 GIT binary patch delta 20 acmZ3+wv3JYG%qg~0}wR7^4rKQ%?toFu>|M< delta 20 acmZ3+wv3JYG%qg~0}yO-_u0rT%?toD9t3g# diff --git a/osinaweb/osinacore/migrations/__pycache__/0061_alter_task_end_date_alter_task_start_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0061_alter_task_end_date_alter_task_start_date.cpython-312.pyc index f24cae052b23cfcb75e376e16cbfb68add96d0c5..a92209a9376f188bac59c64d2772dc8d59e98ebd 100644 GIT binary patch delta 20 acmbQwKA)ZYG%qg~0}wR7^4rKgg&6=fy#-YO delta 20 acmbQwKA)ZYG%qg~0}yO-_u0rjg&6=dDg@sE diff --git a/osinaweb/osinacore/migrations/__pycache__/0062_connection.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0062_connection.cpython-312.pyc index a983718f145e628b568cdabbf4dee032f87f2f3d..2561f7ffcdbc584bae853458c090a34d9c86b80f 100644 GIT binary patch delta 20 acmbQoGmnS+G%qg~0}wR7^4rKQ%mx58Oa$Km delta 20 acmbQoGmnS+G%qg~0}yO-_u0rT%mx55xddqd diff --git a/osinaweb/osinacore/migrations/__pycache__/0063_alter_connection_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0063_alter_connection_date.cpython-312.pyc index 27e23bf205e628d8ffa49ee0caac7c661666c3d1..40a92d57daaa6dbe37510c4841e619b89c47c1b4 100644 GIT binary patch delta 20 acmZo=Yh~j;&CAQh00hmi{5Ep`Vgdj%hy{cI delta 20 acmZo=Yh~j;&CAQh00f)deKvCcVgdj!^#u+9 diff --git a/osinaweb/osinacore/migrations/__pycache__/0064_reaction.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0064_reaction.cpython-312.pyc index b9882b20dc86b183cfff3b0d0bc7fabda075ea9f..77c83f66ecd4f550d68fadff9482e3be8f554e1e 100644 GIT binary patch delta 20 acmdnPvxkTKG%qg~0}wR7^4rL5$OZs8`~^7x delta 20 acmdnPvxkTKG%qg~0}yO-_u0s8$OZs6X#~Rn diff --git a/osinaweb/osinacore/migrations/__pycache__/0065_alter_customerprofile_status.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0065_alter_customerprofile_status.cpython-312.pyc index 624f06df854a71865d75826ecbfc56af29a13b68..e2598e0516c872ab2bec41a83def3052b5bfb305 100644 GIT binary patch delta 20 acmeBW?`7vc&CAQh00hmi{5EnoF#`ZH?FAnI delta 20 acmeBW?`7vc&CAQh00f)deKvA8F#`ZFS_G*8 diff --git a/osinaweb/osinacore/migrations/__pycache__/0066_remove_customerprofile_business_business_customer.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0066_remove_customerprofile_business_business_customer.cpython-312.pyc index 0e76f55d62bc0a52a2a82e0efbe4c0909097beae..9906c91df4f69fdef8f37f2b9fa18602885aea95 100644 GIT binary patch delta 20 acmeC>?B(P>&CAQh00hmi{5Enou>b%wHU%UA delta 20 acmeC>?B(P>&CAQh00f)deKvA8u>b%tqXe!1 diff --git a/osinaweb/osinacore/migrations/__pycache__/0067_customerprofile_confirmed.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0067_customerprofile_confirmed.cpython-312.pyc index 0fda86e3671c32a225095962b28d24e4b38a4c7a..f5c308e91f0042a45a6d874ca6724a54b104882b 100644 GIT binary patch delta 20 acmcb>c7cuiG%qg~0}wR7^4rMm$_xNJK?P<2 delta 20 acmcb>c7cuiG%qg~0}yO-_u0tp$_xNGt_1J^ diff --git a/osinaweb/osinacore/migrations/__pycache__/0068_remove_customerprofile_confirmed_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0068_remove_customerprofile_confirmed_and_more.cpython-312.pyc index 19b8738273d229f291c38d98cbce1abce5c27a37..22674c5afe2a33609b0951cab60b3e34ca808de4 100644 GIT binary patch delta 20 acmbQsF_(k;G%qg~0}wR7^4rKQ!~y^`k_6HK delta 20 acmbQsF_(k;G%qg~0}yO-_u0rT!~y^@{{&nB diff --git a/osinaweb/osinacore/migrations/__pycache__/0069_alter_business_logo_alter_projectfile_file_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0069_alter_business_logo_alter_projectfile_file_and_more.cpython-312.pyc index a1e8945230a8dbd2aa582223b88ab0ab1446d5c0..ab24824dc6de18129ab57a24a2bee7f22dea9fdc 100644 GIT binary patch delta 20 acmbQmIg69~G%qg~0}wR7^4rMW&jJ87J_Snv delta 20 acmbQmIg69~G%qg~0}yO-_u0tZ&jJ84s|3{m diff --git a/osinaweb/osinacore/migrations/__pycache__/0070_department_alter_staffprofile_staff_position_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0070_department_alter_staffprofile_staff_position_and_more.cpython-312.pyc index 7582f3c45c7801b495d48d4966e69430b3241615..68c3a6ede6e2b9b1ca6822b8aa30f9dbe0540245 100644 GIT binary patch delta 20 acmcc3dz+X0G%qg~0}wR7^4rLLfeipZ_y!mN delta 20 acmcc3dz+X0G%qg~0}yO-_u0sOfeipXWd))D diff --git a/osinaweb/osinacore/migrations/__pycache__/0071_projecttype_department_ticket.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0071_projecttype_department_ticket.cpython-312.pyc index 83c12dcd169397c84823a5465c087db13444a7bc..92627f277db0dfe0735c9c9bbf8be1a7b2e66a8a 100644 GIT binary patch delta 20 acmdlcv`vWnG%qg~0}wR7^4rL*%?SWG=LI$Z delta 20 acmdlcv`vWnG%qg~0}yO-_u0s;%?SWER0O~P diff --git a/osinaweb/osinacore/migrations/__pycache__/0072_ticketupdate_ticketreaction_ticketattachment.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0072_ticketupdate_ticketreaction_ticketattachment.cpython-312.pyc index 7e2f5257cea5b4979ba4a78aeb540dee4206e339..db4be3cdbd77c48a34d9cb15eaca01ce8363cd6f 100644 GIT binary patch delta 20 acmdlWxC delta 20 acmaFD`h=DHG%qg~0}yO-_u0sOlL-JlsRgM3 diff --git a/osinaweb/osinacore/migrations/__pycache__/0075_remove_ticketattachment_ticket_and_more.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0075_remove_ticketattachment_ticket_and_more.cpython-312.pyc index 0ef1b5cba309581066b8220704a97a2e33ddadb7..f87ecf78ff67e22ad4479f5e99289b9d09baa657 100644 GIT binary patch delta 20 acmdnSwT+AWG%qg~0}wR7^4rL*%?bcG!v!J$ delta 20 acmdnSwT+AWG%qg~0}yO-_u0s;%?bcEFa)ds diff --git a/osinaweb/osinacore/migrations/__pycache__/0076_alter_reference_date.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0076_alter_reference_date.cpython-312.pyc index 87bf4442c0d2a24fe439158474ff4ea3227584ec..c8d0f7e7dc4917c32b1a8bcd7a6a8db0dcbee3c0 100644 GIT binary patch delta 20 acmeBU>to|S&CAQh00hmi{5EnkGXnrI@dTg% delta 20 acmeBU>to|S&CAQh00f)deKvA4GXnrGUIZ!t diff --git a/osinaweb/osinacore/migrations/__pycache__/0077_remove_project_status_project_active_projectstatus.cpython-312.pyc b/osinaweb/osinacore/migrations/__pycache__/0077_remove_project_status_project_active_projectstatus.cpython-312.pyc index 9ededf01b7b4a0acf3b29adb2ef2c42a19ecf5ab..4c79b932af73f9a8e585b072e9b39b9b8da031fb 100644 GIT binary patch delta 20 acmX@fdy<#?G%qg~0}wR7^4rM0j|~7lC delta 19 ZcmX@cc#M(zG%qg~0}yO-_nFAO8vruG1tkCg diff --git a/osinaweb/osinacore/templates/add_templates/add-ticket.html b/osinaweb/osinacore/templates/add_templates/add-ticket.html index 68287429..e18f38e7 100644 --- a/osinaweb/osinacore/templates/add_templates/add-ticket.html +++ b/osinaweb/osinacore/templates/add_templates/add-ticket.html @@ -2,7 +2,34 @@ {%load static%} {% block content %} - +
@@ -10,7 +37,8 @@ Add Ticket for {{customer.user.first_name}} {{customer.user.last_name}} -
+ {% csrf_token %}
@@ -21,7 +49,8 @@
- + + +
-
- {% for department in all_departments %} @@ -62,32 +94,32 @@
- -
+ class="w-full py-1 px-3 border border-gray-300 outline-none rounded-md mt-1 resize-none" rows="8">
-
-
-
-
- -

Upload Document

-
- +
+
+ + +
+ + +
+ +
- -
-
-
+ +
+
+ +
diff --git a/osinaweb/osinacore/templates/index.html b/osinaweb/osinacore/templates/index.html index 1b36a2e5..4ecc6ac4 100644 --- a/osinaweb/osinacore/templates/index.html +++ b/osinaweb/osinacore/templates/index.html @@ -3,13 +3,106 @@ {% block content %} -
+
+ +
+

Open Tickets

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Subject + + Ticket ID + + Regarding + + Last Updated + + Updated By + + Actions +
+

Ticket Subject

+
+

234233

+
+

ggg

+
+

20-2-234

+
+

20-2-234

+
+
+ + + + + + + + + + + + + +
+ + + +
+
+
+
+
+ + {% if tasks %} -