From 1ecdbe48dff474020a3ce5698ee393e54fbd6df5 Mon Sep 17 00:00:00 2001 From: nataly Date: Mon, 22 Apr 2024 16:58:26 +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 939 -> 939 bytes .../billing/__pycache__/apps.cpython-312.pyc | Bin 493 -> 493 bytes .../__pycache__/models.cpython-312.pyc | Bin 9358 -> 9398 bytes .../billing/__pycache__/urls.cpython-312.pyc | Bin 987 -> 987 bytes .../billing/__pycache__/views.cpython-312.pyc | Bin 3649 -> 3649 bytes .../add/__pycache__/urls.cpython-312.pyc | Bin 572 -> 572 bytes .../add/__pycache__/views.cpython-312.pyc | Bin 4838 -> 4838 bytes osinaweb/billing/add/urls.py | 1 - osinaweb/billing/add/views.py | 65 +------- .../__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 0 -> 810 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 234 -> 234 bytes .../__pycache__/apps.cpython-312.pyc | Bin 508 -> 508 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 1012 -> 1012 bytes .../__pycache__/models.cpython-312.pyc | Bin 231 -> 231 bytes .../__pycache__/urls.cpython-312.pyc | Bin 1452 -> 1668 bytes .../__pycache__/views.cpython-312.pyc | Bin 8208 -> 9245 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 201 -> 201 bytes .../templates/listing_pages/products.html | 82 ++++------ .../templates/products/osicard-plans.html | 142 ++++++++++++++++++ osinaweb/customercore/urls.py | 1 + osinaweb/customercore/views.py | 10 ++ osinaweb/db.sqlite3 | Bin 1077248 -> 1077248 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 187 -> 187 bytes .../__pycache__/admin.cpython-312.pyc | Bin 3276 -> 3276 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 995 -> 995 bytes .../__pycache__/forms.cpython-312.pyc | Bin 1270 -> 1270 bytes .../__pycache__/models.cpython-312.pyc | Bin 22786 -> 22862 bytes .../__pycache__/urls.cpython-312.pyc | Bin 6149 -> 6149 bytes .../__pycache__/views.cpython-312.pyc | Bin 28837 -> 28837 bytes .../add/__pycache__/urls.cpython-312.pyc | Bin 2619 -> 2619 bytes .../add/__pycache__/views.cpython-312.pyc | Bin 22054 -> 22054 bytes .../__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 1568 -> 1568 bytes .../delete/__pycache__/views.cpython-312.pyc | Bin 5239 -> 5239 bytes .../edit/__pycache__/urls.cpython-312.pyc | Bin 2570 -> 2570 bytes .../edit/__pycache__/views.cpython-312.pyc | Bin 23525 -> 23525 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 0 -> 1178 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 198 -> 198 bytes .../osinacore/templates/customer_index.html | 37 ++++- .../osinacore/templates/customer_main.html | 15 ++ .../__pycache__/__init__.cpython-312.pyc | Bin 186 -> 186 bytes .../__pycache__/settings.cpython-312.pyc | Bin 3512 -> 3512 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 | 13 +- 167 files changed, 246 insertions(+), 120 deletions(-) create mode 100644 osinaweb/billing/migrations/__pycache__/0038_alter_invoice_pdf.cpython-312.pyc create mode 100644 osinaweb/customercore/templates/products/osicard-plans.html create mode 100644 osinaweb/osinacore/migrations/__pycache__/0069_alter_business_logo_alter_projectfile_file_and_more.cpython-312.pyc diff --git a/osinaweb/addressbook/__pycache__/__init__.cpython-312.pyc b/osinaweb/addressbook/__pycache__/__init__.cpython-312.pyc index 60d48e52f38323f4d8e74bc8417664d46a2c0cfd..9244fc5759c33bc398d9d0ba1769b6fb9f8826b1 100644 GIT binary patch delta 19 ZcmdnXxR;UpG%qg~0}z~yP@BlT2>>y?1q=WH delta 19 ZcmdnXxR;UpG%qg~0}yP9SDMJZ2>>xs1o{8~ diff --git a/osinaweb/addressbook/__pycache__/admin.cpython-312.pyc b/osinaweb/addressbook/__pycache__/admin.cpython-312.pyc index 5f7049efc77fe1dbaf6b73b412b8eee045b88167..07a937b979640f7686ff9531b5417423bb2278de 100644 GIT binary patch delta 20 acmdnWx|NmtG%qg~0}z~yP}|78iU|NVngt#J delta 20 acmdnWx|NmtG%qg~0}yP9SK7$EiU|NV9R&;k diff --git a/osinaweb/addressbook/__pycache__/apps.cpython-312.pyc b/osinaweb/addressbook/__pycache__/apps.cpython-312.pyc index 84b231793a7df97d32c6908cb263ff230567805f..7a398fed8313731382128a43c9a20c0e91571b4e 100644 GIT binary patch delta 20 acmey#{F9mcG%qg~0}z~yP}|7;ju8Mr@df1o delta 20 acmey#{F9mcG%qg~0}yP9SK7$^ju8MrbOqA@ diff --git a/osinaweb/addressbook/__pycache__/models.cpython-312.pyc b/osinaweb/addressbook/__pycache__/models.cpython-312.pyc index dd9a944b264f598116d5b345ff9e6e38b3c2c1fe..fd5845d1afeca5bc40c4f0c0f8646256a1897b39 100644 GIT binary patch delta 20 acmca8c2SJ`G%qg~0}z~yP}|7u#ti^GX9XPq delta 20 acmca8c2SJ`G%qg~0}yP9SK7$!#ti^F>IDk` diff --git a/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-312.pyc index d942afee3b50b2be5bd6c59199a043e7d42f0e80..75b34e6dfcd3bca94553b3bd7e856a577f8b7008 100644 GIT binary patch delta 20 acmZo-Z(`>@&CAQh00bu^)HZULGXnrF>ja7b delta 20 acmZo-Z(`>@&CAQh00dj&l{RvhGXnrFZUlG$ 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 50c0cc083b3109dc696ab00d541d817485737b83..fe551f1b8977eea6a0c5fb4a8773bcfeb568cf3a 100644 GIT binary patch delta 20 acmdnax1EpsG%qg~0}z~yP}|6@!wvv9GX%Q; delta 20 acmdnax1EpsG%qg~0}yP9SK7#}!wvv8wgjmF diff --git a/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-312.pyc index 240dea46da353ee1718d11f67f038ca9e43949a2..ce6108e2dba3d6b00339c686054b1fa8be4f2609 100644 GIT binary patch delta 20 acmZqTZsO)X&CAQh00bu^)HZULvjPAweFT&M delta 20 acmZqTZsO)X&CAQh00dj&l{RvhvjPAw00e>n diff --git a/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/0004_socialmedia.cpython-312.pyc index 98f311bf677f909c284024fc734eaa6ed85ebe1b..dd75e7032a23c493248d7e1f5ad81179854dbc76 100644 GIT binary patch delta 20 acmX@ld7hK|G%qg~0}z~yP}|6TgarUQJOy?D delta 20 acmX@ld7hK|G%qg~0}yP9SK7#ZgarUPzXfCf 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 313c417e24a0a25f3de6c26ff813d76c7bdb1fe4..7f3e16a8eab4116a10906c060cbcd518c7867f4f 100644 GIT binary patch delta 20 acmaFC{(_zRG%qg~0}z~yP}|6Tml*&)+XcJ; delta 20 acmaFC{(_zRG%qg~0}yP9SK7#Zml*&)UInTE diff --git a/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-312.pyc b/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-312.pyc index 287278b07fbc2614662dd5c33a74406988bae503..4fd413b117e98f999a6b590fe2905369fc1e732d 100644 GIT binary patch delta 19 ZcmX@Xc!H7pG%qg~0}z~yP@BlT7XUL;1uXyo delta 19 ZcmX@Xc!H7pG%qg~0}yP9SDMJZ7XUKo1sebW diff --git a/osinaweb/billing/__pycache__/__init__.cpython-312.pyc b/osinaweb/billing/__pycache__/__init__.cpython-312.pyc index ff8ea1e2391e72019d50fa90409cb875c0a2420e..fb141d2caf100bed024408c1d40e3cbaa151eb52 100644 GIT binary patch delta 19 ZcmdnVxRa6lG%qg~0}z~yP@BlT4gfJI1poj5 delta 19 ZcmdnVxRa6lG%qg~0}yP9SDMJZ4gfH{1nvL; diff --git a/osinaweb/billing/__pycache__/admin.cpython-312.pyc b/osinaweb/billing/__pycache__/admin.cpython-312.pyc index 7b5bc16ae7fea3c2965969c2eb416847b28ac576..85a2416258ca8d826a9141cd1b0bfdfa5fc3b76c 100644 GIT binary patch delta 20 acmZ3@zM7r;G%qg~0}z~yP}|78fEfTaQw0S8 delta 20 acmZ3@zM7r;G%qg~0}yP9SK7$EfEfTZ)&%na diff --git a/osinaweb/billing/__pycache__/apps.cpython-312.pyc b/osinaweb/billing/__pycache__/apps.cpython-312.pyc index 34ca6e6556fb48a6427b8a70b33b560fc335aacd..7758dfd85c3b8767e1583e62b1e8fd964b01ac66 100644 GIT binary patch delta 20 acmaFM{Fa&fG%qg~0}z~yP}|7;h!Frk5e2~j delta 20 acmaFM{Fa&fG%qg~0}yP9SK7$^h!Frjlm)K< diff --git a/osinaweb/billing/__pycache__/models.cpython-312.pyc b/osinaweb/billing/__pycache__/models.cpython-312.pyc index fe448ca275d5e95b6c6d1e87093b571147e53039..a52836bd59173d81764ebcddded97982adb31fb7 100644 GIT binary patch delta 290 zcmeD4+~&!9nwOW00SHb;sHNp?xqcw_QCu}zt*DNHF$YuHvZgCrRkqIgr-TNtAF zIvCOzQ#e{UqWC))Dj1^#f*CY9Z?SvkmE~t9rxw`)RfZJV0m&i*AaRSov>+!xF(ox6 zJ~KBlJ+)Yq`4%TcD83}WhzF#OZ}LJ}`^~}<#Y~J1o7<&MGcqJLLrc9dlKi delta 231 zcmdny+2_f7nwOW00SLClE2RZ)xqcy01Mu}zvxDNJivS2Ka67#N~>Q`lMiMd`I(X`_i~W<0*IuTvKiY_5Oe9|AZ1_1rIQyZ`*MQ~1?yfq O`G>MB0P delta 20 acmcc3ew&^9G%qg~0}yP9SK7#Zff)ciRt19q diff --git a/osinaweb/billing/__pycache__/views.cpython-312.pyc b/osinaweb/billing/__pycache__/views.cpython-312.pyc index 07d79c3b139a8adb2db11000cb943d756c42da75..7c425a3289a3dd32fa8ab81a7bce0274873a5f33 100644 GIT binary patch delta 20 acmX>ob5Mr+G%qg~0}z~yP}|6D#s>g8!UX&P delta 20 acmX>ob5Mr+G%qg~0}yP9SK7#J#s>g8MFi>q diff --git a/osinaweb/billing/add/__pycache__/urls.cpython-312.pyc b/osinaweb/billing/add/__pycache__/urls.cpython-312.pyc index 899dbce3b411556068dd8a6ffe29e82eef1f17fc..1410fe7937b59cb9e67e558622c1c84e01b5109a 100644 GIT binary patch delta 34 mcmdnPvWJE5G%qg~0|-Q^rTt>q$fv@@#lp|j$Xz516axT+HwJS6 delta 34 ncmdnPvWJE5G%qg~0}#weP)cKF+{mZG#Kq3f)W}^V3={+afT9K( diff --git a/osinaweb/billing/add/__pycache__/views.cpython-312.pyc b/osinaweb/billing/add/__pycache__/views.cpython-312.pyc index fd3f014dc85d910f53d5c03bb89e78eab3606df4..3a126b7f489e0f300ea22fd96de634b3007ba3d9 100644 GIT binary patch delta 22 ccmaE+`b?GgG%qg~0}y~b08EtzQUCw| diff --git a/osinaweb/billing/add/urls.py b/osinaweb/billing/add/urls.py index 304ba24f..c29906c6 100644 --- a/osinaweb/billing/add/urls.py +++ b/osinaweb/billing/add/urls.py @@ -6,5 +6,4 @@ urlpatterns = [ path('product', views.add_product, name='addproduct'), path('service', views.add_service, name='addservice'), path('order', views.add_order, name='addorder'), - path('invoice//', views.add_invoice_pdf, name='addinvoice'), ] diff --git a/osinaweb/billing/add/views.py b/osinaweb/billing/add/views.py index d2350d71..b7ecbfc3 100644 --- a/osinaweb/billing/add/views.py +++ b/osinaweb/billing/add/views.py @@ -5,7 +5,7 @@ from django.http import JsonResponse, HttpResponse from django.template.loader import get_template from django.conf import settings import os -from weasyprint import HTML, CSS + def add_product (request, *args, **kwargs): @@ -109,69 +109,6 @@ def add_order (request, *args, **kwargs): -def add_invoice_pdf(request, order_id): - - order = get_object_or_404(Order, id=order_id) - - - current_year = str(timezone.now().year)[-2:] - last_invoice = Invoice.objects.filter(invoice_number__startswith=current_year).order_by('-invoice_number').first() - if last_invoice: - last_invoice_number = int(last_invoice.invoice_number.split('-')[1].split('+')[0]) - new_invoice_number = f"${current_year}-{last_invoice_number + 1}" - else: - new_invoice_number = f"${current_year}-1425" - - - invoice = Invoice.objects.create( - invoice_number = new_invoice_number, - order=order, - date_created=datetime.now(), - ) - - template = get_template('details_templates/invoice-details.html') - context = {'order': order} - html_string = template.render(context) - - # Define the CSS string with Poppins font - css_string = ''' - @font-face { - font-family: 'Poppins'; - src: url('path_to_poppins_font_file.ttf') format('truetype'); /* Update the path to the font file */ - } - - body { - font-family: 'Poppins', sans-serif; /* Use Poppins font for the entire document */ - } - - /* Your existing CSS styles */ - /* Add or modify styles as needed */ - ''' - - # Generate PDF - pdf = HTML(string=html_string).write_pdf( - stylesheets=[ - CSS(string=css_string), - CSS(string='@page { margin: 30px; }') - ], - presentational_hints=True - ) - - - # Save PDF to a file - pdf_file_path = os.path.join(settings.MEDIA_ROOT, f'invoice_{invoice.id}.pdf') - with open(pdf_file_path, 'wb') as pdf_file: - pdf_file.write(pdf) - - # Associate PDF file path with the Invoice object - invoice.pdf = pdf_file_path - invoice.save() - - # Return PDF - response = HttpResponse(pdf, content_type='application/pdf') - response['Content-Disposition'] = 'attachment; filename="my_pdf.pdf"' - - return response diff --git a/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-312.pyc index 05d429c65cf79a4ef8783d4d814d971be3358607..bdb1a556aa2adfb8721a5f9c4bdf16b215de6b08 100644 GIT binary patch delta 20 acmX>ictnuN delta 20 acmX>ictnui@ diff --git a/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-312.pyc index 8ba1202d457b4d7b69b541438b380bd51279ab62..bd384a680723310611f09f8f6ea66734daa12b23 100644 GIT binary patch delta 20 acmdnax1EpsG%qg~0}z~yP}|6@!wvv9GX%Q; delta 20 acmdnax1EpsG%qg~0}yP9SK7#}!wvv8wgjmF 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 9498afb7f4da79cb9de794d6da166f5b665d4380..8282be153547979e10dd91f9a5ec41ee43daf1ad 100644 GIT binary patch delta 20 acmdnMx`CDZG%qg~0}z~yP}|78lnDSe(ghCy delta 20 acmdnMx`CDZG%qg~0}yP9SK7$ElnDSeRRsM2 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 ad3e528c14441559fa07d542097733dd91388be8..e61cefda5158a99ea3aed3a14e0a4f55ca6f97d5 100644 GIT binary patch delta 20 acmey){+*rsG%qg~0}z~yP}|7;h8X}sGX?1Y delta 20 acmey){+*rsG%qg~0}yP9SK7$^h8X}rwguM! 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 3ff53069fc25438a3064e244a638eadfef719918..74fd02ebf91df7666a1d82a387aee111dbddf14c 100644 GIT binary patch delta 20 acmX@YafE~WG%qg~0}z~yP}|6D$pQd4U`vi6X 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 d999e0c19317c51b642f2d2477063709a9fd9cce..f1f856239854481ac94296bc6478ff207e37e4d2 100644 GIT binary patch delta 20 acmbQwH=mFDG%qg~0}z~yP}|5Y!VUm4a|Ck$ delta 20 acmbQwH=mFDG%qg~0}yP9SK7!e!VUm3_5@)7 diff --git a/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-312.pyc index 98fc4a453314bf77032a55e83c1b5b07ad71e4cb..6c3e88bff0660c6e9b21413f4ca2e3284a648726 100644 GIT binary patch delta 20 acmcc0c9o6$G%qg~0}z~yP}|7u#S8#CzXbsR delta 20 acmcc0c9o6$G%qg~0}yP9SK7$!#S8#CLIm#s diff --git a/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0011_invoice.cpython-312.pyc index 41293d0d44bd629da0ee9d774a00a632a07d8ded..04a882c94119d52da8ed30c88cd917c357911986 100644 GIT binary patch delta 19 ZcmeC?>gM7;&CAQh00bu^)E08H0st#%1RVeX delta 19 ZcmeC?>gM7;&CAQh00dj&l@@Zd0st!h1PcHF 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 2de7d5dd1ad9e847788354080c6e60e1f1386b90..e4cffdc319f8eb55af55fc4b93c256b04ca7d7f4 100644 GIT binary patch delta 20 acmdnMy@8wiG%qg~0}z~yP}|78lobFrtpy$c delta 20 acmdnMy@8wiG%qg~0}yP9SK7$ElobFrFa-<% 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 312e9c61caedf2bfd0f4b04cb794e3e7739e4073..0e27b089e7ba2a9d76006f74e9830f2cd9a51526 100644 GIT binary patch delta 20 acmbQkHiwP-G%qg~0}z~yP}|5Y$P556*92Ao delta 20 acmbQkHiwP-G%qg~0}yP9SK7!e$P556S_DJ@ 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 e62b350f1221cb8efb40afe8cfa540fec6355439..277d564ab3827852388516dfec3069617bc2aeb0 100644 GIT binary patch delta 20 acmbQoHjj<_G%qg~0}z~yP}|5Y%nSfBCj?vo delta 20 acmbQoHjj<_G%qg~0}yP9SK7!e%nSfAssu^^ diff --git a/osinaweb/billing/migrations/__pycache__/0015_order.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0015_order.cpython-312.pyc index 4fee4f8e50c36c4501f91ec55729bf67c31ecfc6..829dc9cbcfa138f0c1f1b9ab686f0829af68769d 100644 GIT binary patch delta 20 acmeyt{ezqPG%qg~0}z~yP}|7;mK6X&?FIG# delta 20 acmeyt{ezqPG%qg~0}yP9SK7$^mK6X&a0TQ5 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 61be710c392b1e69313ea597632c7581f4d36ea1..7344fc8589a9ea7209d25ec960a512c6f2e943fa 100644 GIT binary patch delta 20 acmeyw_KA)AG%qg~0}z~yP}|6z&I|xQM+H~_ delta 20 acmeyw_KA)AG%qg~0}yP9SK7#(&I|xP$^}LM 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 77cd3171bfcfd974a569fee5f034393a77a3ea34..53def03fa6d4938813a79ef2b1bbe23d52157ae7 100644 GIT binary patch delta 20 acmcc1ewUs5G%qg~0}z~yP}|6Ti5UPrBL$lP delta 20 acmcc1ewUs5G%qg~0}yP9SK7#Zi5UPqrUi)r 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 29844939b29473ad45ff987796640680c8290f62..5469cc0f0e876d0824db90e7ef12da05f55a71b5 100644 GIT binary patch delta 20 acmeyx_KS`CG%qg~0}z~yP}|6z&kO)ShXrr| delta 20 acmeyx_KS`CG%qg~0}yP9SK7#(&kO)S3I$#O 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 093052ba1445ee4c8545eb0e3509ca450cf633c2..47061236fa9cccef8f9d7289fa061c973d47426b 100644 GIT binary patch delta 20 acmcbpa#4l*G%qg~0}z~yP}|7uCIkRJW(7b1 delta 20 acmcbpa#4l*G%qg~0}yP9SK7$!CIkRI=>;wT diff --git a/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-312.pyc index 7800021bfce8a6227e5216270474895499cd11f7..35804d9878fdd99a746e0c4a38ecc58c180490b9 100644 GIT binary patch delta 20 acmX@Wb%2ZeG%qg~0}z~yP}|6D$_fBD2?Wdl delta 20 acmX@Wb%2ZeG%qg~0}yP9SK7#J$_fBCj0Cy> 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 6cdb3164f7811100f0b1b99921102ee7be3c4090..ced9407907cba9c02ef5517344053dcf39079242 100644 GIT binary patch delta 20 acmaFD@q~l>G%qg~0}z~yP}|5I$pQd9UG%qg~0}yP9SK7!O$pQd8;{_oA 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 c2120655179c45655aaa5ba5f31a4d3a9ee068a6..b4410d5cfbf0186858a5ba2ef098c6022eb24823 100644 GIT binary patch delta 20 acmeyz@sET1G%qg~0}z~yP}|5|%mM&Ga0P(? delta 20 acmeyz@sET1G%qg~0}yP9SK7#3%mM&F^964J 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 6c9f10e08c294871f0a671339ff8d612c54aa09b..866bf7f0ed569d41879f60b1e8436733c92d6a3d 100644 GIT binary patch delta 20 acmcb`b&HGpG%qg~0}z~yP}|7u&k6uM83h^u delta 20 acmcb`b&HGpG%qg~0}yP9SK7$!&k6uLoCOE~ 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 43b9ab7bc0fb00b269e20df3b217c528471524ff..b543b4dfaa6feec817ef2814ee29f8f64bc15ad0 100644 GIT binary patch delta 20 acmZ3*x{8(iG%qg~0}z~yP}|5op9ugo;spHw delta 20 acmZ3*x{8(iG%qg~0}yP9SK7!up9ugoWd!R0 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 c358223c185e59d1cc1cc2f1ddc539092e326bf7..a8c7e15200fc598b954f223fbde83f980a88352d 100644 GIT binary patch delta 20 acmbQiIfIk?G%qg~0}z~yP}|7e%K`v0qy*6b delta 20 acmbQiIfIk?G%qg~0}yP9SK7$k%K`v0Cj`F$ 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 8c63aae2c8c63ad9a69066780ff7e668807ac83a..c16c775a4ecd5ed7c52b29b99e6c360686472e98 100644 GIT binary patch delta 20 acmX@Yc7%=lG%qg~0}z~yP}|6D$qWEE7X;1# delta 20 acmX@Yc7%=lG%qg~0}yP9SK7#J$qWEDngqN6 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 b33e90470fde85c8032c6a13d52209cb1e7d2360..22b6ce4a3b341660bd3e4e13f6fcb5eac4026ac6 100644 GIT binary patch delta 20 acmcc3cAJg+G%qg~0}z~yP}|5IzzhI8uLTnT delta 20 acmcc3cAJg+G%qg~0}yP9SK7!OzzhI8G6ewu 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 cbff50554806e7b63f065c85c5da26d4f0167a12..6c14085a02125141849418cd2c2896b480b87b6f 100644 GIT binary patch delta 20 acmbQvI-QmKG%qg~0}z~yP}|7e!vp{^>IB39 delta 20 acmbQvI-QmKG%qg~0}yP9SK7$k!vp{^Z3MCa 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 6dab73d451ffc7e43c8a329224d9086c4b326713..b9e087d060a59aaf55479ebba1e040f8d072f4a7 100644 GIT binary patch delta 20 acmbQjHieD*G%qg~0}z~yP}|7O$qWE6mjpfl delta 20 acmbQjHieD*G%qg~0}yP9SK7$U$qWE68U!o= 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 f8cd2fe1eaa71c66fc44f79dfabb5bdb6fcc1f04..7d524b6d1b2774fc43d3b734b7459b54ce47ab5c 100644 GIT binary patch delta 20 acmcb{evO^`G%qg~0}z~yP}|6Tni&8*3k8M% delta 20 acmcb{evO^`G%qg~0}yP9SK7#Zni&8)js diff --git a/osinaweb/billing/migrations/__pycache__/0033_alter_order_status.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0033_alter_order_status.cpython-312.pyc index e548ea10cba82e4fa2d1e789b19f8e031fefff2c..5c0220df477e8251ff7aa90e0c2bd48cf29b6e08 100644 GIT binary patch delta 20 acmeBX?`G#d&CAQh00bu^)HZTAFarQEQv{^| delta 20 acmeBX?`G#d&CAQh00dj&l{RuWFarQD)&!FP diff --git a/osinaweb/billing/migrations/__pycache__/0034_alter_invoice_pdf.cpython-312.pyc b/osinaweb/billing/migrations/__pycache__/0034_alter_invoice_pdf.cpython-312.pyc index 62f7a61ed515722d1d296ffe2d9abf9d3ad73779..1558cb7b9ff2d2e77573a677934fb9feacf49412 100644 GIT binary patch delta 20 acmZ3*wu+7WG%qg~0}z~yP}|5Y&kO)G2Lyls delta 20 acmZ3*wu+7WG%qg~0}yP9SK7!e&kO)FiUe)| 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 e2762824cc427e03958aa3e2e831cfac5a83c70c..5a464e0c01000d79145e68152cf6142be12a4320 100644 GIT binary patch delta 20 acmbQiHiM1(G%qg~0}z~yP}|7O%M1W9Hv~!m delta 20 acmbQiHiM1(G%qg~0}yP9SK7$U%M1W8x&$}? 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 703193ba79a32a4939f6f0519d834c95c1fcb011..9dc2e16998cd4c1f194a56945fd766335757d2bb 100644 GIT binary patch delta 20 acmdnQwuz1VG%qg~0}z~yP}|6@&I|xGM+BGv delta 20 acmdnQwuz1VG%qg~0}yP9SK7#}&I|xF$^?c0 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 51c93db67292420761fa352f058218b635ae6d2d..0a5f408b7363b22eada35c5bbafd96bd9709f7db 100644 GIT binary patch delta 20 acmaFH{*0abG%qg~0}z~yP}|6Tn;8H;iv_j- delta 20 acmaFH{*0abG%qg~0}yP9SK7#Zn;8H;4h5tD 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 new file mode 100644 index 0000000000000000000000000000000000000000..e892ca232b1a60fe908b130f1f38d90460fbdeaf GIT binary patch literal 810 zcmY*XO^ee&7@kSeGzq)9mc{Rilw~0YHw6!RkOifzAlj2FlFN{0re(U5NjD!Zy(#R$ z+24X>+9?7{s#!aPerO# zE5Tw{f>VG2h73f|hmq!M5NO~jz}hjuI)Ov8YFfQN>r3qGW5cceQpDAS6VX8uWHjcf zFryd~mWHby0PK=1umq=o03TxDYZwlouWNu9!$R=CEkMe^DrXKa{lBjmHsn(~Gb=e~ z^$N*}*4T1wVZW#}NrCkqWsLHHxZZBxe}EDa=1C%XI1U*>G$WCyQ~oBVArblr_g{+3 z`G~~cuI|!Z`9eahOMhXQ|f>vVe_Mf(Q5TFyMpO3O9~-s*RH(yxao zP+CxF5R(4vjK+z&9Ys(eeImm#n47?E&vk9neEWRv0Q=5+XKFPkR&#dk?(E9dS)+Bb zJ#Dlmjn>D_FP-n5{U422=XJw&=DOK1-#triRzth4A?&5T9o#ECDSTKSdqb5KwYMa? rupTXq-A$U3$}11j+cL~`2;m;>Ea diff --git a/osinaweb/customercore/__pycache__/decorators.cpython-312.pyc b/osinaweb/customercore/__pycache__/decorators.cpython-312.pyc index c63f915b8e0a7f13fca56ad6adcce69cadaf716c..7d04babc11bc4fa181fb1b7fb7061b32c7443912 100644 GIT binary patch delta 20 acmeyu{)L_UG%qg~0}z~yP}|7;k{JL%y9M9? delta 20 acmeyu{)L_UG%qg~0}yP9SK7$^k{JL%J_XJI diff --git a/osinaweb/customercore/__pycache__/models.cpython-312.pyc b/osinaweb/customercore/__pycache__/models.cpython-312.pyc index 6b53993b488f5e60c1cdc5b34ec57267cc7facd1..070923cd48563f9ec92c31efcf0a3d9c65e3be95 100644 GIT binary patch delta 19 ZcmaFP_?(gZG%qg~0}z~yP@Bko2LLzD1&ROw delta 19 ZcmaFP_?(gZG%qg~0}yP9SDMIu2LLx?1$Y1e diff --git a/osinaweb/customercore/__pycache__/urls.cpython-312.pyc b/osinaweb/customercore/__pycache__/urls.cpython-312.pyc index 034933b62e0bb7968b4dd9c8c372efa3492ba2dd..ad780d28aae488fda4089b65d7b83c34272d99c3 100644 GIT binary patch delta 313 zcmZ3(-NLJJnwOW00SI#9)zVy97#JRdI4~dpWqf8}+NiOHF@lL9l`%y!l{rfWrUF5y zNUdR8%?#m#)ky=@$sy!ntP~l9x^$i>fl66Txyg4J`y}}Ci!+lGi&At8auV~3^>6V& z`IA$aCMgOel~(Ge6{V)?14VOF^Ga{=0YyLpQ2ykvOp_S}CwDSObMV46-evX^xdqZ0 z4^kKpRaqo3S(ineQE0L&OD&f&&{>Q?T>O9X8J48U(yW0((lbJ@%Nk#lHNIfwb%n+I WCJV>pELL-FRbhUnM(!d-pke@`_DjeB delta 128 zcmZqSUBj($nwOW00SLClE2V8>W?*;>;=lkOl<|23<3^1&j2!7)QGAt>no^T>nEEE) zVCtFN#yp9Uf3hS?^yFq1ccvn~$@f^q83iVPW2xnm2kK=6;^G^VYgv;fe`2+p?80Ws PttiOP)W}^V3zPu>4uKs@ diff --git a/osinaweb/customercore/__pycache__/views.cpython-312.pyc b/osinaweb/customercore/__pycache__/views.cpython-312.pyc index 2cc89b76a699647552b73c1b4e021e05f21d2d3d..0e8a7865f0a4a00c95e8fb8474164ecfcc60fe11 100644 GIT binary patch delta 1492 zcmYjRO-vg{6yDig|E;kx*slMU#DVhPs6llJR8d0`lOho}uI*idk$+%ztrmm@ zsyH-}(txH-ph}A>Rc%z-L*<-$sFZUrv0BO2D(6b=$%LMA>YD{4M%r(`_sx6r^XAQL zjej#`|HEbz7-%zzv-21I+jcL@qV4YIL$XzB-emS^7qmH-6lUQA znnWa$gsIjNSi%LVm{yfYLCK_(SR&Kr&YoA>g+)UogGj9Z_Z;(ct7UU$jDjIi3R^MIl9Ax-OwP z((fKL6hSDJv+gR7CdhmK1(YJc_=g8?Q@jebaZ-*hjCCJF%l}FHD-|^*KJO+$~pPdhEZZq%zr&DuHpAJ z=M*IFu|YcVMrM5g!S3{DkYtdIfTqV>iB)Zli5KnUnb*0F*4UrT`|Ocg;?$N#{~EV{ zyiUZZ&W0*k8fuIYg{!N*3#z)Lj74aj=j43xe7cZ}B$qOgG?tU9d`>B*lr+xhXA#k? z)3NtwqSGJrU+5nY4fqnntTUQH&LuNhJPuQ6!h8lRY9gP^$(kjbY*1USkjiA`M823y z$ynp*{lTw8fXHFJGHJnSO{XV=Vp*dizfj1@qHyGP9~Arrg$ER%p4SjP_nLN_s@|T8x2NV_4?c=-$E)tHio2`kJyY{{?Dg*UR{ebye_st;gS)}1FH-SE z4y?u&q3&R8!JXN?_-?!!8m)vztD(tCXtK_+ZlP{wY|gD|;6CBNV|N%grv3{v4)24~ z-O|qNlaarg2R5c&@RrZJH>Y1%om-dxv<9B@<^XPm<%vEr&^Ci4a;br7PL46_r0|TIHn*aa+ delta 712 zcmXAmOH31C5XU?1ZcBH0+ZXgn3n{CHXoV0l3W!9LCV*6|*2qJ;NTsy(+cpurA~y|W zJi@_)iP7WY)e8p?UO1`QaPjCPUOalxndM8qU;g>ee3Nfx_HXQrwSH=8Q5wH6ag@{lMH&8z7I8TsM`L8L8(SNlTil zR&>oNLj02ds5vdUDvG)g8S`mJ)=4Eko*ILFZ1P=)5YG5Yscy~<^J~wlzC@{p<$9>s zMIZZiKM_3k{n1R3-3C8hv_bSX|K0G{B z;Jj&qb%CYsqO zG3FVocBmoBCwALkzBh=%mPhF?*t< diff --git a/osinaweb/customercore/migrations/__pycache__/__init__.cpython-312.pyc b/osinaweb/customercore/migrations/__pycache__/__init__.cpython-312.pyc index 5eacc8a462d36c0a242e3cd1f386447e14485b4b..099012e7dc80a13373dcdd99357221ece3f50de8 100644 GIT binary patch delta 19 ZcmX@fc#@I(G%qg~0}z~yP@BlT4*)ZG1uy^r delta 19 ZcmX@fc#@I(G%qg~0}yP9SDMJZ4*)X_1s(tZ diff --git a/osinaweb/customercore/templates/listing_pages/products.html b/osinaweb/customercore/templates/listing_pages/products.html index 8b316428..00976714 100644 --- a/osinaweb/customercore/templates/listing_pages/products.html +++ b/osinaweb/customercore/templates/listing_pages/products.html @@ -12,6 +12,8 @@

Cloud Hosting

+ +
@@ -27,7 +29,7 @@
+ class="w-full p-9 border border-gray-200 flex flex-col items-center gap-5 rounded-md bg-white">

Basic

@@ -38,7 +40,7 @@
+ class="w-full p-9 border border-gray-200 flex flex-col items-center gap-5 rounded-md bg-white">

Standard

@@ -49,7 +51,7 @@
+ class="w-full p-9 border border-gray-200 flex flex-col items-center gap-5 rounded-md bg-white">

Premium

@@ -61,7 +63,7 @@
- +
+