From d0d967df4bb1d9cd879ae5e4ccfa640203edf659 Mon Sep 17 00:00:00 2001 From: emile Date: Tue, 23 Jul 2024 22:17:08 +0300 Subject: [PATCH] new --- .../__pycache__/__init__.cpython-310.pyc | Bin 194 -> 194 bytes .../__pycache__/admin.cpython-310.pyc | Bin 400 -> 400 bytes .../__pycache__/apps.cpython-310.pyc | Bin 483 -> 483 bytes .../__pycache__/models.cpython-310.pyc | Bin 1941 -> 1941 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 700 -> 700 bytes .../0002_country_addressbook.cpython-310.pyc | Bin 1161 -> 1161 bytes .../__pycache__/0003_contact.cpython-310.pyc | Bin 1005 -> 1005 bytes .../0004_socialmedia.cpython-310.pyc | Bin 925 -> 925 bytes ...05_socialmedia_addressbook.cpython-310.pyc | Bin 764 -> 764 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 205 -> 205 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 190 -> 190 bytes .../billing/__pycache__/admin.cpython-310.pyc | Bin 499 -> 499 bytes .../billing/__pycache__/apps.cpython-310.pyc | Bin 471 -> 471 bytes .../__pycache__/models.cpython-310.pyc | Bin 6982 -> 6982 bytes .../billing/__pycache__/urls.cpython-310.pyc | Bin 831 -> 831 bytes .../billing/__pycache__/views.cpython-310.pyc | Bin 2306 -> 2306 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 909 -> 909 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 6772 -> 6772 bytes .../delete/__pycache__/urls.cpython-310.pyc | Bin 489 -> 489 bytes .../delete/__pycache__/views.cpython-310.pyc | Bin 1009 -> 1009 bytes .../edit/__pycache__/urls.cpython-310.pyc | Bin 511 -> 511 bytes .../edit/__pycache__/views.cpython-310.pyc | Bin 1513 -> 1513 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 1328 -> 1328 bytes ...vice_cancelled_at_and_more.cpython-310.pyc | Bin 824 -> 824 bytes ...003_payment_servicepayment.cpython-310.pyc | Bin 1169 -> 1169 bytes ...rename_payment_paymenttype.cpython-310.pyc | Bin 592 -> 592 bytes ...05_service_recurring_cycle.cpython-310.pyc | Bin 779 -> 779 bytes ...ervice_created_at_and_more.cpython-310.pyc | Bin 788 -> 788 bytes ...er_service_recurring_cycle.cpython-310.pyc | Bin 830 -> 830 bytes .../0008_alter_service_type.cpython-310.pyc | Bin 829 -> 829 bytes ...cepayment_service_and_more.cpython-310.pyc | Bin 1172 -> 1172 bytes .../0010_charge_amount.cpython-310.pyc | Bin 712 -> 712 bytes .../__pycache__/0011_invoice.cpython-310.pyc | Bin 905 -> 905 bytes ...nt_charge_receipt_and_more.cpython-310.pyc | Bin 1040 -> 1040 bytes ...alter_invoice_date_created.cpython-310.pyc | Bin 661 -> 661 bytes ...014_servicepayment_comment.cpython-310.pyc | Bin 660 -> 660 bytes .../__pycache__/0015_order.cpython-310.pyc | Bin 1111 -> 1111 bytes .../0016_alter_order_status.cpython-310.pyc | Bin 725 -> 725 bytes .../0017_service_order.cpython-310.pyc | Bin 751 -> 751 bytes .../0018_alter_order_status.cpython-310.pyc | Bin 733 -> 733 bytes ..._service_customer_and_more.cpython-310.pyc | Bin 2358 -> 2358 bytes .../0020_orderitem.cpython-310.pyc | Bin 904 -> 904 bytes ...m_recurring_cycle_and_more.cpython-310.pyc | Bin 837 -> 837 bytes ...e_item_created_at_and_more.cpython-310.pyc | Bin 843 -> 843 bytes ...em_project_alter_item_type.cpython-310.pyc | Bin 941 -> 941 bytes .../0024_remove_item_active.cpython-310.pyc | Bin 586 -> 586 bytes ...item_project_item_customer.cpython-310.pyc | Bin 888 -> 888 bytes ...tem_type_remove_order_paid.cpython-310.pyc | Bin 697 -> 697 bytes .../0027_item_type.cpython-310.pyc | Bin 709 -> 709 bytes ...0028_remove_order_due_date.cpython-310.pyc | Bin 567 -> 567 bytes .../0029_invoice_pdf.cpython-310.pyc | Bin 648 -> 648 bytes .../0030_alter_invoice_order.cpython-310.pyc | Bin 746 -> 746 bytes ...ter_invoice_invoice_number.cpython-310.pyc | Bin 671 -> 671 bytes .../0032_order_business.cpython-310.pyc | Bin 820 -> 820 bytes .../0033_alter_order_status.cpython-310.pyc | Bin 750 -> 750 bytes .../0034_alter_invoice_pdf.cpython-310.pyc | Bin 669 -> 669 bytes .../0035_alter_invoice_pdf.cpython-310.pyc | Bin 652 -> 652 bytes ...ter_invoice_invoice_number.cpython-310.pyc | Bin 678 -> 678 bytes .../0037_recurringcycle_item.cpython-310.pyc | Bin 762 -> 762 bytes .../0038_alter_invoice_pdf.cpython-310.pyc | Bin 669 -> 669 bytes ...recurringcycle_cycle_price.cpython-310.pyc | Bin 651 -> 651 bytes ..._orderitem_end_at_and_more.cpython-310.pyc | Bin 758 -> 758 bytes .../0041_orderitem_active.cpython-310.pyc | Bin 667 -> 667 bytes .../0042_order_due_date.cpython-310.pyc | Bin 634 -> 634 bytes .../0043_alter_invoice_pdf.cpython-310.pyc | Bin 667 -> 667 bytes ...044_alter_orderitem_active.cpython-310.pyc | Bin 650 -> 650 bytes ...ter_orderpayment_date_paid.cpython-310.pyc | Bin 740 -> 740 bytes ...t_order_orderpayment_order.cpython-310.pyc | Bin 855 -> 855 bytes ...cription_paymenttype_image.cpython-310.pyc | Bin 778 -> 778 bytes ...e_order_status_orderstatus.cpython-310.pyc | Bin 1112 -> 1112 bytes ...rename_due_date_order_date.cpython-310.pyc | Bin 618 -> 618 bytes ...ent_type_orderpayment_type.cpython-310.pyc | Bin 744 -> 744 bytes ..._alter_orderpayment_amount.cpython-310.pyc | Bin 670 -> 670 bytes ...2_alter_orderstatus_status.cpython-310.pyc | Bin 780 -> 780 bytes .../0053_item_photo.cpython-310.pyc | Bin 650 -> 650 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 201 -> 201 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 195 -> 195 bytes .../__pycache__/admin.cpython-310.pyc | Bin 236 -> 236 bytes .../__pycache__/apps.cpython-310.pyc | Bin 486 -> 486 bytes .../custom_context.cpython-310.pyc | Bin 1449 -> 1449 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 965 -> 965 bytes .../__pycache__/models.cpython-310.pyc | Bin 193 -> 193 bytes .../__pycache__/urls.cpython-310.pyc | Bin 1867 -> 1867 bytes .../__pycache__/views.cpython-310.pyc | Bin 7686 -> 7686 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 380 -> 380 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 2254 -> 2254 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 1969 -> 1969 bytes ...02_alter_ticket_department.cpython-310.pyc | Bin 836 -> 836 bytes ...mer_ticket_status_and_more.cpython-310.pyc | Bin 1114 -> 1114 bytes ...ket_ticket_number_and_more.cpython-310.pyc | Bin 929 -> 929 bytes .../0005_ticketstatusupdate.cpython-310.pyc | Bin 1204 -> 1204 bytes .../0006_ticketupdate_read.cpython-310.pyc | Bin 658 -> 658 bytes ...ead_ticketupdatereadstatus.cpython-310.pyc | Bin 1153 -> 1153 bytes ...pdatereadstatus_ticketread.cpython-310.pyc | Bin 755 -> 755 bytes ...er_ticketattachment_ticket.cpython-310.pyc | Bin 816 -> 816 bytes ...ction_ticketupdatereaction.cpython-310.pyc | Bin 641 -> 641 bytes ...ketupdatereaction_customer.cpython-310.pyc | Bin 894 -> 894 bytes ...0012_ticket_ticket_members.cpython-310.pyc | Bin 801 -> 801 bytes ...lter_ticket_ticket_members.cpython-310.pyc | Bin 758 -> 758 bytes ...partment_ticket_department.cpython-310.pyc | Bin 800 -> 800 bytes ...artment_ticket_departments.cpython-310.pyc | Bin 659 -> 659 bytes ...tstatusupdate_ticketstatus.cpython-310.pyc | Bin 740 -> 740 bytes .../0017_tickettask.cpython-310.pyc | Bin 954 -> 954 bytes ...lter_ticketattachment_file.cpython-310.pyc | Bin 672 -> 672 bytes .../__pycache__/0019_file.cpython-310.pyc | Bin 819 -> 819 bytes ...lter_ticketattachment_file.cpython-310.pyc | Bin 672 -> 672 bytes .../0021_file_ticket.cpython-310.pyc | Bin 772 -> 772 bytes .../0022_remove_file_ticket.cpython-310.pyc | Bin 573 -> 573 bytes ...etattachment_file_and_more.cpython-310.pyc | Bin 796 -> 796 bytes ...attachment_ticket_and_more.cpython-310.pyc | Bin 1217 -> 1217 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 206 -> 206 bytes .../payment/__pycache__/urls.cpython-310.pyc | Bin 990 -> 990 bytes .../payment/__pycache__/views.cpython-310.pyc | Bin 7898 -> 7898 bytes osinaweb/db.sqlite3 | Bin 1720320 -> 1728512 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 190 -> 190 bytes .../osichat/__pycache__/admin.cpython-310.pyc | Bin 534 -> 534 bytes .../osichat/__pycache__/apps.cpython-310.pyc | Bin 471 -> 471 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 4609 -> 4282 bytes .../__pycache__/models.cpython-310.pyc | Bin 2810 -> 3204 bytes .../__pycache__/routing.cpython-310.pyc | Bin 411 -> 411 bytes .../osichat/__pycache__/urls.cpython-310.pyc | Bin 368 -> 368 bytes .../osichat/__pycache__/views.cpython-310.pyc | Bin 754 -> 754 bytes osinaweb/osichat/consumers.py | 111 ++++++------ .../__pycache__/0001_initial.cpython-310.pyc | Bin 1999 -> 1999 bytes ...atroom_created_by_and_more.cpython-310.pyc | Bin 1024 -> 1024 bytes ...ove_chatroom_guest_session.cpython-310.pyc | Bin 945 -> 945 bytes .../0004_chatroomguest_room.cpython-310.pyc | Bin 782 -> 782 bytes ...5_alter_chatmessage_member.cpython-310.pyc | Bin 856 -> 856 bytes ..._alter_chatmessage_content.cpython-310.pyc | Bin 660 -> 660 bytes .../0007_chatmessage_room.cpython-310.pyc | Bin 760 -> 760 bytes ...008_alter_chatmessage_room.cpython-310.pyc | Bin 756 -> 756 bytes .../__pycache__/0009_visitor.cpython-310.pyc | Bin 812 -> 812 bytes ...ft_date_visitor_visit_date.cpython-310.pyc | Bin 689 -> 689 bytes .../0011_visitor_country.cpython-310.pyc | Bin 666 -> 666 bytes ...12_alter_visitor_reference.cpython-310.pyc | Bin 646 -> 646 bytes ...reference_visitor_referrer.cpython-310.pyc | Bin 624 -> 624 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 201 -> 201 bytes osinaweb/osichat/models.py | 14 +- .../osichat/templates/partials/message.html | 23 ++- .../__pycache__/__init__.cpython-310.pyc | Bin 192 -> 192 bytes .../__pycache__/admin.cpython-310.pyc | Bin 1966 -> 1966 bytes .../__pycache__/apps.cpython-310.pyc | Bin 477 -> 477 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 5714 -> 5714 bytes .../custom_context.cpython-310.pyc | Bin 2837 -> 2997 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 948 -> 948 bytes .../__pycache__/forms.cpython-310.pyc | Bin 1075 -> 1075 bytes .../__pycache__/models.cpython-310.pyc | Bin 16505 -> 16505 bytes .../__pycache__/routing.cpython-310.pyc | Bin 471 -> 471 bytes .../__pycache__/urls.cpython-310.pyc | Bin 3923 -> 4016 bytes .../__pycache__/views.cpython-310.pyc | Bin 18305 -> 18707 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 2148 -> 2148 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 15413 -> 15413 bytes .../__pycache__/serializers.cpython-310.pyc | Bin 1019 -> 1019 bytes .../api/__pycache__/urls.cpython-310.pyc | Bin 345 -> 345 bytes .../api/__pycache__/views.cpython-310.pyc | Bin 1177 -> 1177 bytes osinaweb/osinacore/consumers.py | 2 + osinaweb/osinacore/custom_context.py | 6 + .../delete/__pycache__/urls.cpython-310.pyc | Bin 1407 -> 1407 bytes .../delete/__pycache__/views.cpython-310.pyc | Bin 4422 -> 4422 bytes .../edit/__pycache__/urls.cpython-310.pyc | Bin 2251 -> 2251 bytes .../edit/__pycache__/views.cpython-310.pyc | Bin 12541 -> 12541 bytes .../__pycache__/urls.cpython-310.pyc | Bin 365 -> 365 bytes .../__pycache__/views.cpython-310.pyc | Bin 579 -> 579 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 2058 -> 2058 bytes ...ions_staffprofile_and_more.cpython-310.pyc | Bin 2180 -> 2180 bytes .../0003_milestone.cpython-310.pyc | Bin 1028 -> 1028 bytes .../__pycache__/0004_epic.cpython-310.pyc | Bin 971 -> 971 bytes .../0005_staffprofile_image.cpython-310.pyc | Bin 641 -> 641 bytes .../__pycache__/0006_note.cpython-310.pyc | Bin 1129 -> 1129 bytes ...ct_id_alter_project_status.cpython-310.pyc | Bin 824 -> 824 bytes ...8_alter_project_project_id.cpython-310.pyc | Bin 696 -> 696 bytes ...9_alter_project_project_id.cpython-310.pyc | Bin 681 -> 681 bytes .../0010_remove_note_date.cpython-310.pyc | Bin 576 -> 576 bytes ...r_alter_note_text_and_more.cpython-310.pyc | Bin 1187 -> 1187 bytes .../0012_projectrequirement.cpython-310.pyc | Bin 950 -> 950 bytes .../0013_projectfile.cpython-310.pyc | Bin 976 -> 976 bytes ...014_alter_projectfile_file.cpython-310.pyc | Bin 652 -> 652 bytes .../0015_projectcredentials.cpython-310.pyc | Bin 980 -> 980 bytes ...dentials_projectcredential.cpython-310.pyc | Bin 626 -> 626 bytes ...e_alter_project_start_date.cpython-310.pyc | Bin 747 -> 747 bytes .../0018_epic_status.cpython-310.pyc | Bin 716 -> 716 bytes ...date_alter_epic_start_date.cpython-310.pyc | Bin 706 -> 706 bytes .../__pycache__/0020_task.cpython-310.pyc | Bin 1203 -> 1203 bytes ...rprofile_business_and_more.cpython-310.pyc | Bin 1552 -> 1552 bytes ...ustomerprofile_customer_id.cpython-310.pyc | Bin 706 -> 706 bytes .../0023_task_assigned_to.cpython-310.pyc | Bin 769 -> 769 bytes .../0024_task_task_id.cpython-310.pyc | Bin 653 -> 653 bytes .../__pycache__/0025_status.cpython-310.pyc | Bin 1035 -> 1035 bytes ...e_status_user_status_staff.cpython-310.pyc | Bin 838 -> 838 bytes .../0027_alter_status_staff.cpython-310.pyc | Bin 798 -> 798 bytes ...8_remove_projecttype_color.cpython-310.pyc | Bin 586 -> 586 bytes .../0029_alter_reference_date.cpython-310.pyc | Bin 655 -> 655 bytes .../__pycache__/0030_tag.cpython-310.pyc | Bin 721 -> 721 bytes ...1_alter_staffprofile_image.cpython-310.pyc | Bin 657 -> 657 bytes .../__pycache__/0032_point.cpython-310.pyc | Bin 1015 -> 1015 bytes ...nt_date_workingon_and_more.cpython-310.pyc | Bin 829 -> 829 bytes ...nt_date_completed_and_more.cpython-310.pyc | Bin 876 -> 876 bytes .../0035_business_business_id.cpython-310.pyc | Bin 688 -> 688 bytes ...lter_staffprofile_position.cpython-310.pyc | Bin 878 -> 878 bytes ...move_staffprofile_position.cpython-310.pyc | Bin 617 -> 617 bytes ...taffprofile_staff_position.cpython-310.pyc | Bin 793 -> 793 bytes ...taffprofile_staff_position.cpython-310.pyc | Bin 809 -> 809 bytes ...0040_staffprofile_staff_id.cpython-310.pyc | Bin 688 -> 688 bytes .../0041_dailyreport.cpython-310.pyc | Bin 1012 -> 1012 bytes ...omerprofile_email_and_more.cpython-310.pyc | Bin 783 -> 783 bytes .../0043_businesstype.cpython-310.pyc | Bin 756 -> 756 bytes ...ove_business_business_type.cpython-310.pyc | Bin 590 -> 590 bytes .../0045_business_type.cpython-310.pyc | Bin 774 -> 774 bytes .../0046_task_requirement.cpython-310.pyc | Bin 770 -> 770 bytes .../0047_task_status_date.cpython-310.pyc | Bin 713 -> 713 bytes ...r_customerprofile_business.cpython-310.pyc | Bin 822 -> 822 bytes ...r_customerprofile_business.cpython-310.pyc | Bin 801 -> 801 bytes ...by_projectrequirement_date.cpython-310.pyc | Bin 965 -> 965 bytes ...051_alter_task_requirement.cpython-310.pyc | Bin 808 -> 808 bytes .../0052_note_project.cpython-310.pyc | Bin 760 -> 760 bytes .../0053_pointactivity.cpython-310.pyc | Bin 903 -> 903 bytes ...nt_date_completed_and_more.cpython-310.pyc | Bin 704 -> 704 bytes .../0055_alter_point_status.cpython-310.pyc | Bin 763 -> 763 bytes ...ter_pointactivity_end_time.cpython-310.pyc | Bin 668 -> 668 bytes ...otal_time_minutes_and_more.cpython-310.pyc | Bin 805 -> 805 bytes ..._total_time_hours_and_more.cpython-310.pyc | Bin 723 -> 723 bytes ...059_alter_task_requirement.cpython-310.pyc | Bin 804 -> 804 bytes ...0_pointactivity_total_time.cpython-310.pyc | Bin 668 -> 668 bytes ...date_alter_task_start_date.cpython-310.pyc | Bin 709 -> 709 bytes .../0062_connection.cpython-310.pyc | Bin 1078 -> 1078 bytes ...0063_alter_connection_date.cpython-310.pyc | Bin 637 -> 637 bytes .../__pycache__/0064_reaction.cpython-310.pyc | Bin 1022 -> 1022 bytes ...ter_customerprofile_status.cpython-310.pyc | Bin 750 -> 750 bytes ...business_business_customer.cpython-310.pyc | Bin 878 -> 878 bytes ..._customerprofile_confirmed.cpython-310.pyc | Bin 707 -> 707 bytes ...profile_confirmed_and_more.cpython-310.pyc | Bin 852 -> 852 bytes ..._projectfile_file_and_more.cpython-310.pyc | Bin 868 -> 868 bytes ...le_staff_position_and_more.cpython-310.pyc | Bin 1184 -> 1184 bytes ...jecttype_department_ticket.cpython-310.pyc | Bin 1403 -> 1403 bytes ...treaction_ticketattachment.cpython-310.pyc | Bin 1429 -> 1429 bytes ...073_alter_ticket_regarding.cpython-310.pyc | Bin 759 -> 759 bytes ...ed_ticketupdate_date_added.cpython-310.pyc | Bin 643 -> 643 bytes ...attachment_ticket_and_more.cpython-310.pyc | Bin 905 -> 905 bytes .../0076_alter_reference_date.cpython-310.pyc | Bin 647 -> 647 bytes ...oject_active_projectstatus.cpython-310.pyc | Bin 1208 -> 1208 bytes ...alter_projectstatus_status.cpython-310.pyc | Bin 782 -> 782 bytes ...e_alter_project_start_date.cpython-310.pyc | Bin 703 -> 703 bytes .../0080_project_logo.cpython-310.pyc | Bin 681 -> 681 bytes .../0081_status_task.cpython-310.pyc | Bin 778 -> 778 bytes .../0082_pinnedproject.cpython-310.pyc | Bin 971 -> 971 bytes ...ition_jobposition_and_more.cpython-310.pyc | Bin 691 -> 691 bytes .../0084_staffposition.cpython-310.pyc | Bin 988 -> 988 bytes ...sition_start_date_and_more.cpython-310.pyc | Bin 756 -> 756 bytes ...s_connection_terminated_at.cpython-310.pyc | Bin 769 -> 769 bytes ...087_remove_connection_date.cpython-310.pyc | Bin 613 -> 613 bytes .../0088_connection_date.cpython-310.pyc | Bin 641 -> 641 bytes .../0089_connection_connected.cpython-310.pyc | Bin 646 -> 646 bytes ...ed_at_connection_last_seen.cpython-310.pyc | Bin 641 -> 641 bytes ...0091_alter_connection_user.cpython-310.pyc | Bin 861 -> 861 bytes ...onnected_connection_online.cpython-310.pyc | Bin 628 -> 628 bytes ...93_connection_disconnected.cpython-310.pyc | Bin 671 -> 671 bytes .../0094_customuser.cpython-310.pyc | Bin 826 -> 826 bytes .../0095_delete_customuser.cpython-310.pyc | Bin 547 -> 547 bytes .../0096_status_date_time.cpython-310.pyc | Bin 647 -> 647 bytes ...us_date_remove_status_time.cpython-310.pyc | Bin 617 -> 617 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 203 -> 203 bytes .../templates/chat_templates/chat-room.html | 102 +++++++++++ .../templates/chat_templates/chat-widget.html | 40 +++++ .../chat_templates/conversations.html | 30 ++++ osinaweb/osinacore/templates/main.html | 162 +----------------- osinaweb/osinacore/urls.py | 5 + osinaweb/osinacore/views.py | 10 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 191 -> 191 bytes .../osinaweb/__pycache__/asgi.cpython-310.pyc | Bin 947 -> 947 bytes .../__pycache__/routing.cpython-310.pyc | Bin 424 -> 424 bytes .../__pycache__/settings.cpython-310.pyc | Bin 3211 -> 3211 bytes .../osinaweb/__pycache__/urls.cpython-310.pyc | Bin 1296 -> 1296 bytes .../static/js/osichat-admin/conversation.js | 52 ++++++ osinaweb/static/js/osichat/conversation.js | 10 +- osinaweb/static/js/osichat/visitors.js | 6 +- .../__pycache__/__init__.cpython-310.pyc | Bin 190 -> 190 bytes .../support/__pycache__/admin.cpython-310.pyc | Bin 538 -> 538 bytes .../support/__pycache__/apps.cpython-310.pyc | Bin 471 -> 471 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 8599 -> 8599 bytes .../__pycache__/decorators.cpython-310.pyc | Bin 996 -> 996 bytes .../__pycache__/models.cpython-310.pyc | Bin 8648 -> 8648 bytes .../__pycache__/routing.cpython-310.pyc | Bin 477 -> 477 bytes .../support/__pycache__/urls.cpython-310.pyc | Bin 1310 -> 1310 bytes .../support/__pycache__/views.cpython-310.pyc | Bin 2594 -> 2594 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 602 -> 602 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 1497 -> 1497 bytes .../__pycache__/0001_initial.cpython-310.pyc | Bin 2834 -> 2834 bytes ...icket_departments_and_more.cpython-310.pyc | Bin 1269 -> 1269 bytes .../0003_remove_ticket_status.cpython-310.pyc | Bin 590 -> 590 bytes ...ened_date_ticketconnection.cpython-310.pyc | Bin 1258 -> 1258 bytes ...er_ticketconnection_ticket.cpython-310.pyc | Bin 784 -> 784 bytes ...etconnection_type_and_more.cpython-310.pyc | Bin 731 -> 731 bytes ...07_alter_ticketstaff_staff.cpython-310.pyc | Bin 845 -> 845 bytes ...08_alter_tickettask_ticket.cpython-310.pyc | Bin 754 -> 754 bytes ...etconnection_terminated_at.cpython-310.pyc | Bin 677 -> 677 bytes ...icketconnection_terminated.cpython-310.pyc | Bin 614 -> 614 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 201 -> 201 bytes 297 files changed, 346 insertions(+), 227 deletions(-) create mode 100644 osinaweb/osinacore/templates/chat_templates/chat-room.html create mode 100644 osinaweb/osinacore/templates/chat_templates/chat-widget.html create mode 100644 osinaweb/osinacore/templates/chat_templates/conversations.html create mode 100644 osinaweb/static/js/osichat-admin/conversation.js diff --git a/osinaweb/addressbook/__pycache__/__init__.cpython-310.pyc b/osinaweb/addressbook/__pycache__/__init__.cpython-310.pyc index bfa0c02eb8a0fb3717b83bee4ad27bdf2d46c5e6..7ddd1219e54041420c798eb4b1ded7638d6a7edc 100644 GIT binary patch delta 19 ZcmX@ac!-fZpO=@50SJmt&!5P>9RM$e1yle4 delta 19 ZcmX@ac!-fZpO=@50SM05&zs1-9RM&i1!MpK diff --git a/osinaweb/addressbook/__pycache__/admin.cpython-310.pyc b/osinaweb/addressbook/__pycache__/admin.cpython-310.pyc index 261a592429bc2ef8c9f9c35ba304963d851aad6e..50c7500d50ca9885aec7823623f0ed9db5e94bdb 100644 GIT binary patch delta 20 acmbQhJb{@zpO=@50SJmt&)>-1$_M~0(*)xH delta 20 acmbQhJb{@zpO=@50SM05&)dk|$_M~1kp%Mq diff --git a/osinaweb/addressbook/__pycache__/apps.cpython-310.pyc b/osinaweb/addressbook/__pycache__/apps.cpython-310.pyc index 256e33a0456822ebe103154321e7fd5ac68b507d..a96380595645b4ebf8b7025174ee636675ec8f49 100644 GIT binary patch delta 20 acmaFN{Fs?LpO=@50SJmt&)>*>gAo8a%LUv3 delta 20 acmaFN{Fs?LpO=@50SM05&)dj-gAo8bi3RKc diff --git a/osinaweb/addressbook/__pycache__/models.cpython-310.pyc b/osinaweb/addressbook/__pycache__/models.cpython-310.pyc index 3a52cabe83aebd281e8f203827a9eeff9d07be66..cedf464328db351dcce2126da7ee83aac6d02aed 100644 GIT binary patch delta 20 acmbQrKb4<5pO=@50SJmt&)>-1#SQ>4Q3VhH delta 20 acmbQrKb4<5pO=@50SM05&)dk|#SQ>54+S6q diff --git a/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-310.pyc b/osinaweb/addressbook/migrations/__pycache__/0001_initial.cpython-310.pyc index 2370a0850edf600336a39e0abb66d4bf65abe917..ef9e7d24164b27682450ab0befc2a7426fdba0e9 100644 GIT binary patch delta 20 acmdnPx`&lJpO=@50SJmt&)>+skqH1a`~_?P delta 20 acmdnPx`&lJpO=@50SM05&)dkokqH1bx&?dy diff --git a/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-310.pyc b/osinaweb/addressbook/migrations/__pycache__/0002_country_addressbook.cpython-310.pyc index 203bec1a106ca6d82fc7a927d370529a5c4f1431..78969c2010d8d21929603cc26fd91f35a0fc6b81 100644 GIT binary patch delta 20 acmeC=?BwLm=jG*M0D_{^^EYzWu>b%qmIU1Z delta 20 acmeC=?BwLm=jG*M0D|-N^EPtVu>b%rR0Qn+ diff --git a/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-310.pyc b/osinaweb/addressbook/migrations/__pycache__/0003_contact.cpython-310.pyc index 5ee4f0227b41c2c1bb9bc27de80608a7a4d689a5..d7738bdce01a678b0ab2a279e61006ea9fa2d8d5 100644 GIT binary patch delta 126 zcmaFM{+69PpO=@50SJmt&)>)`$;cQrS(ULwpARUa$#jd&H$N#eC$)$l!etG}$j?hH z5`geH!ZQ*}iW3V8iUcR0U^HM9nf#OSA)5xsERD$zn667HgP1H}J}RL(`69Cn0R9~x A0ssI2 delta 126 zcmaFM{+69PpO=@50SM05&)di?$;fzXvMOVVK0i=Ilj#*Bi5UPeZ3Pqn delta 20 acmbQsK9`+4pO=@50SM05&)dj7i5UPfD+MF~ diff --git a/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-310.pyc b/osinaweb/addressbook/migrations/__pycache__/0005_socialmedia_addressbook.cpython-310.pyc index 99263633c61e0a57f8d36fb03c8aa017b75f9ea2..5b53a15f9fe4b81b1034b45c2137a1fcc07c9de0 100644 GIT binary patch delta 20 acmeyv`iGS}pO=@50SJmt&)>-XkqH1k{01xl delta 20 acmeyv`iGS}pO=@50SM05&)dlTkqH1lx&}M| diff --git a/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-310.pyc b/osinaweb/addressbook/migrations/__pycache__/__init__.cpython-310.pyc index 123e3d0336c1b9cda51abb91ebe57356787f0f18..0da6168f230de8fb54c63210782b492857856179 100644 GIT binary patch delta 19 ZcmX@hc$SenpO=@50SJmt&!5PB2mmo11$6)b delta 19 ZcmX@hc$SenpO=@50SM05&zs172mmq51%&_r diff --git a/osinaweb/billing/__pycache__/__init__.cpython-310.pyc b/osinaweb/billing/__pycache__/__init__.cpython-310.pyc index 932e570b1c2e37ea00a2635f2cd6e4c493e3006b..eb0c217e7c6c50762421a6b473ca7f74911d890f 100644 GIT binary patch delta 19 ZcmdnTxQ~%LpO=@50SJmt&!5P>82~Qw1xNq@ delta 19 ZcmdnTxQ~%LpO=@50SM05&zs1-82~S!1y}$8 diff --git a/osinaweb/billing/__pycache__/admin.cpython-310.pyc b/osinaweb/billing/__pycache__/admin.cpython-310.pyc index 565695a1a7814aa27aa184e6a0e28a0f59be362c..b3d06eb25a3ea36a354995969fab1aaa1545ae37 100644 GIT binary patch delta 20 acmey&{F#|MpO=@50SJmt&)>-Xf)M~cO9l)8 delta 20 acmey&{F#|MpO=@50SM05&)dlTf)M~d2?iVh diff --git a/osinaweb/billing/__pycache__/apps.cpython-310.pyc b/osinaweb/billing/__pycache__/apps.cpython-310.pyc index 344be1cbf0103b9dbeb14008a0dbbc280ecbbe55..a0a70003d2eeaa3d0b072ebb8095faa7c7b7acc8 100644 GIT binary patch delta 20 acmcc4e4Uv)pO=@50SJmt&)>*>h7kZb>jk&~ delta 20 acmcc4e4Uv)pO=@50SM05&)dj-h7kZcsRhUY diff --git a/osinaweb/billing/__pycache__/models.cpython-310.pyc b/osinaweb/billing/__pycache__/models.cpython-310.pyc index 09046057b90c6909aae40cffd74d01f6f32b8381..c2635cc0d09b569828a14e541c9206b7d7eba582 100644 GIT binary patch delta 20 acmX?RcFc@BpO=@50SJmt&)>*xEe!xXi3NoK delta 20 acmX?RcFc@BpO=@50SM05&)djtEe!xYM+KDt diff --git a/osinaweb/billing/__pycache__/urls.cpython-310.pyc b/osinaweb/billing/__pycache__/urls.cpython-310.pyc index ba9da988fa3cc2193aa1175051690f236f84d9bb..2ffc9988bba907e8fd90c18235bd006b40c0f044 100644 GIT binary patch delta 20 acmdnbwx5kVpO=@50SJmt&)>*x!VCa3nFRO% delta 20 acmdnbwx5kVpO=@50SM05&)djt!VCa4R|N+MDFpySa0Uth delta 20 acmexj^2LNZpO=@50SM05&)dkIDFpyTE(RI^ diff --git a/osinaweb/billing/delete/__pycache__/urls.cpython-310.pyc b/osinaweb/billing/delete/__pycache__/urls.cpython-310.pyc index 12dd8590527353be92709edd5e878927f58c4f54..ab64f9b40255014eb36fc4dde9f4d52ee00c5ccc 100644 GIT binary patch delta 20 acmaFK{F0eFpO=@50SJmt&)>*>j}ZVny9Mq5 delta 20 acmaFK{F0eFpO=@50SM05&)dj-j}ZVoc?JFe diff --git a/osinaweb/billing/delete/__pycache__/views.cpython-310.pyc b/osinaweb/billing/delete/__pycache__/views.cpython-310.pyc index 2f2ef22170c9690ac606fdce7153e4fd8e3f169b..a1946d965a9b66df1d7f6d5f398c358ace4ec43c 100644 GIT binary patch delta 20 acmey!{*j$KpO=@50SJmt&)>-Xj2QqujRp_^ delta 20 acmey!{*j$KpO=@50SM05&)dlTj2QqvO9mhS diff --git a/osinaweb/billing/edit/__pycache__/urls.cpython-310.pyc b/osinaweb/billing/edit/__pycache__/urls.cpython-310.pyc index b93c17304a50c0a2f41e2351421d3a528e60f7f2..f728b813b9d04112aa04c2cda305feb9ddae61fc 100644 GIT binary patch delta 20 acmey*{GXXSpO=@50SJmt&)>-Xg%JQhD+VwC delta 20 acmey*{GXXSpO=@50SM05&)dlTg%JQh=>|Xm diff --git a/osinaweb/billing/edit/__pycache__/views.cpython-310.pyc b/osinaweb/billing/edit/__pycache__/views.cpython-310.pyc index 7e02bd33d1de981a9e81bd97cfa25c74bdca9519..ffc359a49c730fdae7ea4b1e59259d6b2308bb28 100644 GIT binary patch delta 20 acmaFK{gRtIpO=@50SJmt&)>*>j}-ts-v$Bz delta 20 acmaFK{gRtIpO=@50SM05&)dj-j}-ttodyyB diff --git a/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0001_initial.cpython-310.pyc index 9d6d73e08c876d40be829afd684a749b9545ec76..e22a0519e2902cab54634cebfad742e748dae974 100644 GIT binary patch delta 20 acmdnMwSkK}pO=@50SJmt&)>+c$_fB7(*)H3 delta 20 acmdnMwSkK}pO=@50SM05&)dkY$_fB8kp$%c diff --git a/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0002_service_active_service_cancelled_at_and_more.cpython-310.pyc index 7c1b77d78aacbcc4ab88630af724a3b9914cb874..71cef3dca3f7d1a799cbdc70d05c48f8edde7174 100644 GIT binary patch delta 20 acmdnNwu6m3pO=@50SJmt&)>+c%M1WBfdu0K delta 20 acmdnNwu6m3pO=@50SM05&)dkY%M1WCKLqmt diff --git a/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0003_payment_servicepayment.cpython-310.pyc index ddfa0b9c8050ca223e4c5576ffec981422f3b463..c6c7ba39ec052e882aa6899f228c58cd1169370c 100644 GIT binary patch delta 33 ncmbQpIgyh)pO=@50SJmt&)>)$%E%ZsIg!zb@z&-kjDMK`i6{wW delta 33 ncmbQpIgyh)pO=@50SM05&)diy%E)+Yaw4Ma)E_ApO=@50SJmt&!5P>i7{&8J{cf!yOE6#B*-^8iSdXQgbC(@2!0@Oi^C>2 UKczG$)s7L!D`o)_JWOKD0B?2@2LJ#7 delta 83 zcmcb>a)E_ApO=@50SM05&zs1-iSgFNeKJ7eb|aerP_Rf~auVYaEeI3L2N8lm;ueQZ VZhlH>PO2RvkXOtCBzTy_m;tha6C(fs diff --git a/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0005_service_recurring_cycle.cpython-310.pyc index 87cdd485b77cb45e6a63573ac82632af6020854e..24952e1620f05ffe5df4a5cbed08205ec9cf6bb8 100644 GIT binary patch delta 67 zcmeBX>t^H5=jG*M0D_{^^CxoOWxTcVB_|`B6i7g7@(;$lQlcOx3z&~eNKbyxBm)2~ Cj1M3H delta 67 zcmeBX>t^H5=jG*M0D|-N^CoiNWsKVRl9Q255-3n4Ir#_UT`3U|lLgF2C8Q?5XOaN` D866I( diff --git a/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0006_alter_service_cancelled_at_alter_service_created_at_and_more.cpython-310.pyc index ef03abfe3dfa1c658ebcc20ab2d1a5916041211f..67f06b9d15fb922f2a59815e96357892696ea819 100644 GIT binary patch delta 20 acmbQjHieBlpO=@50SJmt&)>++$qWE3;RJU8 delta 20 acmbQjHieBlpO=@50SM05&)dk&$qWE4p9F^h diff --git a/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0007_alter_service_recurring_cycle.cpython-310.pyc index 0044993c9e3c30f9c966677dc90d91c4c0cc90f3..2acbececc5f77bfeebf89cc93fc25573f4cb6c35 100644 GIT binary patch delta 20 acmdnTwvUZFpO=@50SJmt&)>*x%nSfDaRl`M delta 20 acmdnTwvUZFpO=@50SM05&)djt%nSfEF9ihv diff --git a/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0008_alter_service_type.cpython-310.pyc index 86aeee0a3a9803561c8877c27f628cba84e88cae..1e35ea55c6f20c5d021d9bde9da40c57d77b05eb 100644 GIT binary patch delta 69 zcmdnXwwH}NpO=@50SJmt&)>)`$;cSBS(TBAkxd#TBt2P|>6Vljh{*!xqY^Tc6`5rK D+mj3i delta 69 zcmdnXwwH}NpO=@50SM05&)di?$;fzXvnnGKBby9Rs7PkAF4HY3aS)RQ%ts|;Co3|` F008&?44nV~ diff --git a/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0009_remove_service_due_at_remove_servicepayment_service_and_more.cpython-310.pyc index 1eb20b0c7f0e98a7a3e1d2544a3f4a195ecaa5a8..eadc5114e16a77d4b86a4480d7fa65d877f22b9a 100644 GIT binary patch delta 98 zcmbQjIfauupO=@50SJmt&)>-H%E)+YavoekkDi<;sCKZCucC7 cW77gLwKm%@D=|u`fY>Zx0aQYJas`VF0JZlKo&W#< diff --git a/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0010_charge_amount.cpython-310.pyc index 2a04985f0f1c7249ea5631886f74d2ef6f0a64fe..c8684d9e3cbc63ef90e93a34f1457dd01e1fd288 100644 GIT binary patch delta 62 zcmX@XdV-ZZpO=@50SJmt&!5PBhB0d54JXE^$*?h}A8!F&)QK6xFJ F6aWj24?X|@ delta 62 zcmX@XdV-ZZpO=@50SM05&zs17hVj5k$3Vc#&wLMlOvgw*_1%CN|T$IE=tLP Pm@HsEDxo|%msth?)uRw# delta 80 zcmeBV?_}rB=jG*M0D|-N^EPtxGBQR@mSmj3$TN8r<2pu>$&pOTY>GhHBE`u~Oc$kO QK};4fAC*v=oXac&0K1?M=Kufz diff --git a/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0012_remove_servicepayment_charge_receipt_and_more.cpython-310.pyc index a52f7064913dfcbbaf310727620043e96723711c..ce09f9d422a70504af296da447601e39fad4c87b 100644 GIT binary patch delta 20 acmbQhF@b|SpO=@50SJmt&)>++$^rl_iUe=~ delta 20 acmbQhF@b|SpO=@50SM05&)dk&$^rl`NCbcY diff --git a/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0013_alter_invoice_date_created.cpython-310.pyc index dd58fbd83f76f20d2a08505c95ad45f7480a6098..2a2d14aeaa2a5e51c146acd3794bef76e0270ae5 100644 GIT binary patch delta 20 acmbQrI+c|>pO=@50SJmt&)>-1#RLE@pO=@50SM05&)dk|#RLE^q6G&4 diff --git a/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0014_servicepayment_comment.cpython-310.pyc index 9dbc38dea5203bc01873c81da14c88d60d75f224..27aee0688c0c038a9b043ab1a4ea0b09853d953c 100644 GIT binary patch delta 20 acmbQjI)#-xpO=@50SJmt&)>-1$pio{yae-H%gA_ZawKE5iy%-$lj#I2h_DBw=A~rjr5A}n_$+?;d8tLBKu(e9WCM%u7zq z0f`7fMA!pT^HMVN(u;&4d=|g_ywoBQAg4%VvILVOqr~JWrgv=mAOZc!e$1Dpv_MQ2 NFdvmLm~71=0|25sA>#l5 diff --git a/osinaweb/billing/migrations/__pycache__/0016_alter_order_status.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0016_alter_order_status.cpython-310.pyc index 5ec1697d05151134d0f8b499179faaab8b56d8f4..f22aeb509375874404282ed1baa8a3b89bc8b551 100644 GIT binary patch delta 113 zcmcc0dX<$spO=@50SJmt&!5PBfiY_09W4_MAYYT|7MojQW=?8K5hsMp>71CCoSFj? r0qFoLVDZb(OD*CC>E@bj#khh^3dEF}{DSeY0E7wVg9z!#yP2c_oUI$h delta 113 zcmcc0dX<$spO=@50SM05&zs17f$`SFJ6a~3K)xo^EjG8r%$(GeB9J_g%juk$mzV+8Vw*?@!q69=OhGXOU}6RZFL delta 90 zcmaFQ`ks|LpO=@50SM05&zs17pD}9U>#uB5Kz@71CCoSFj? z0qFoLVDZb(OD*CC>E@p7#JGY@3dEF}{DJYX7K91rg9vFLaf`zyH$SB`C)JJ-$SY<6 J5&}$O%m6(;A0q$& delta 135 zcmcc1dY6?upO=@50SM05&zs17f$`SFJ4Pm)K)xo^EjG8r%$(GeB9J_g%juk$mzd=Mc6ByMro-H$jW$Yvo9+n6Pp)E$ZK;5`x-_mI}n=%EPzUQPnP18 F0RS-;4oCn1 delta 70 zcmdlcv`vURpO=@50SM05&)dlD$jTVC*_V}(iOmxzROGoignbR8lr4zO0v13eye3O= G$^ZZx)eX@A diff --git a/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0020_orderitem.cpython-310.pyc index 2440a7ca9cf74ce8d86df2fb58afd5dbc2a0b818..54813b24623a3873010f1530c7a88cf0cf61f9d5 100644 GIT binary patch delta 20 acmeBR?_lT7=jG*M0D_{^^EYzWG6MiDB?Q#~ delta 20 acmeBR?_lT7=jG*M0D|-N^EPtVG6MiD;{@dZ diff --git a/osinaweb/billing/migrations/__pycache__/0021_remove_item_recurring_cycle_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0021_remove_item_recurring_cycle_and_more.cpython-310.pyc index d372c152249707ffb6004a6ca5f031f6ace0c160..a32ff608fd39ad3ebe29a2255aee8bf46cfe0bf3 100644 GIT binary patch delta 20 acmX@gc9e}fpO=@50SJmt&)>*x#S8#7i3JJ( delta 20 acmX@gc9e}fpO=@50SM05&)djt#S8#8M+F)H diff --git a/osinaweb/billing/migrations/__pycache__/0022_remove_item_cancelled_at_remove_item_created_at_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0022_remove_item_cancelled_at_remove_item_created_at_and_more.cpython-310.pyc index 3f6a4ea2bebb829bb86a4c9a58a52c3748ef561f..213f49d615a479615e486a6b9be6cb2cb882d07a 100644 GIT binary patch delta 20 acmX@jcAAYlpO=@50SJmt&)>-HzzhI3c?BE* delta 20 acmX@jcAAYlpO=@50SM05&)dlDzzhI4Hw7#J diff --git a/osinaweb/billing/migrations/__pycache__/0023_alter_item_project_alter_item_type.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0023_alter_item_project_alter_item_type.cpython-310.pyc index 6d7c5dead10f8eb623bd5709f97273db833bfa2a..68b62780a0e7ec3b211ca0251f7a700b96c21c95 100644 GIT binary patch delta 20 acmZ3>zLuRkpO=@50SJmt&)>+sh#3Gf?FB>t delta 20 acmZ3>zLuRkpO=@50SM05&)dkoh#3Ggs|8d5 diff --git a/osinaweb/billing/migrations/__pycache__/0024_remove_item_active.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0024_remove_item_active.cpython-310.pyc index cda6f09ad33224377865633939f780af3a48c0e0..77779fa1bfb699d228249b45d55a66f81fb5c4c9 100644 GIT binary patch delta 20 acmX@ba*BmJpO=@50SJmt&)>*x&jbKA2n7@X delta 20 acmX@ba*BmJpO=@50SM05&)djt&jbKA#swq* diff --git a/osinaweb/billing/migrations/__pycache__/0025_remove_item_project_item_customer.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0025_remove_item_project_item_customer.cpython-310.pyc index 1d569e9089c881e7fa94e935f6800bbac367ecf6..6df2e6aea76ffb139c94addada967b6e70f16df8 100644 GIT binary patch delta 79 zcmeyt_JfT(pO=@50SJmt&)>)`%gA_ZvL<5_8#hRVXYxkIS#0tkru^hUrjJrmASMf# Mk4h*^j$xJo0O$=6V*mgE delta 79 zcmeyt_JfT(pO=@50SM05&)di?%g7itS(CAe4J1^=J$WPJEH*h1Q*Lq~(?=;u5R(PW MMHq)$ diff --git a/osinaweb/billing/migrations/__pycache__/0026_rename_type_item_item_type_remove_order_paid.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0026_rename_type_item_item_type_remove_order_paid.cpython-310.pyc index 2bcc226b5290495538896574385bb40fcbb99d7c..a38680fc3c4453a582ad61a7ed2d8ccbcb386e5b 100644 GIT binary patch delta 20 acmdnVx|5YVpO=@50SJmt&)>+sjtKxXgau;& delta 20 acmdnVx|5YVpO=@50SM05&)dkojtKxYLIraG diff --git a/osinaweb/billing/migrations/__pycache__/0027_item_type.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0027_item_type.cpython-310.pyc index b2772a4be6bfa52dd9619d30e18a426f2bef839f..af239b37c4abc3ee26221cc9bd0a3080046b5c59 100644 GIT binary patch delta 20 acmX@gdX$wrpO=@50SJmt&)>+siwOWWWCe!+ delta 20 acmX@gdX$wrpO=@50SM05&)dkoiwOWXA_bQK diff --git a/osinaweb/billing/migrations/__pycache__/0028_remove_order_due_date.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0028_remove_order_due_date.cpython-310.pyc index 60d9f460c3cec5b0e28e235e07c097ddf1f55e5f..9be2650a77c86a1d0e2ce5f227742d5f530b8525 100644 GIT binary patch delta 20 acmdnavYmxHpO=@50SJmt&)>+c!vp{`5Cq!* delta 20 acmdnavYmxHpO=@50SM05&)dkY!vp{`&IIcK diff --git a/osinaweb/billing/migrations/__pycache__/0029_invoice_pdf.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0029_invoice_pdf.cpython-310.pyc index e875a0cc213afbd29beddd913961786dc26276f8..ac0bdbbc0c51f38397a900951030e8849841001c 100644 GIT binary patch delta 20 acmeBR?O^53=jG*M0D_{^^EYzWG64WA+yu}7 delta 20 acmeBR?O^53=jG*M0D|-N^EPtVG64WBngrkg diff --git a/osinaweb/billing/migrations/__pycache__/0030_alter_invoice_order.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0030_alter_invoice_order.cpython-310.pyc index ada6ba23548a4811e000c802b7522a72b415d0a6..c568cb5cf8f3e6b919391dc06c641237aac060eb 100644 GIT binary patch delta 66 zcmaFG`ihl1pO=@50SJmt&!5PBmoaMM%QtM2Aim_}+l)7*L_kayFdvnWntYB)1^`*I B57htw delta 66 zcmaFG`ihl1pO=@50SM05&zs17m+{ubmv7jlfczq<$+sDAN{ND)EMPt=AwBsVlMDcK C?GS7L diff --git a/osinaweb/billing/migrations/__pycache__/0031_alter_invoice_invoice_number.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0031_alter_invoice_invoice_number.cpython-310.pyc index 6d673704835e84c1fb837245f5107034c9439d07..b8f577bd433738cc5ccb1603e5d0ad6545625e83 100644 GIT binary patch delta 20 acmbQwI-iw0pO=@50SJmt&)>*Bg$V#KbOjXv delta 20 acmbQwI-iw0pO=@50SM05&)dj7g$V#LG6f|7 diff --git a/osinaweb/billing/migrations/__pycache__/0032_order_business.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0032_order_business.cpython-310.pyc index 3b788d92e0285908dcec671798683f0cc42e8934..c0730a69717ea505bfddd572b461da91930a410c 100644 GIT binary patch delta 20 acmdnOwuOy5pO=@50SJmt&)>+c$qWE8;RM$J delta 20 acmdnOwuOy5pO=@50SM05&)dkY$qWE9p9JRs diff --git a/osinaweb/billing/migrations/__pycache__/0033_alter_order_status.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0033_alter_order_status.cpython-310.pyc index 13e19c7c9d2ee084a14e21e4a5e1f96c73f9ce99..da27f3adaccf2c2b4ae190821c5a2aed555ebb09 100644 GIT binary patch delta 151 zcmaFI`i_-5pO=@50SJmt&!5PBf$`SFJH{@YK)xo^EjG8r%$(GeB9J_g%juk$mz`AYYT|7MojQW=?8K5hsMp>71CCoSFj? z0qFoLVDZb(OD*DtaM%M<^HMVN(u;V2{37nj!Hg@|q(MyS$&5^gwIEC|A4JFiiCY{t Wx%nxjIjMGxKwdEmkPu)JV+H`Fha%np diff --git a/osinaweb/billing/migrations/__pycache__/0034_alter_invoice_pdf.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0034_alter_invoice_pdf.cpython-310.pyc index a1abb5604e1cf45b99cdfd3b5167c69764d8f699..620f195389064219f512effffd55f34718f751bc 100644 GIT binary patch delta 78 zcmbQsI+v9@pO=@50SJmt&!5PBhVjWHa^HWN5 RQtcRlykZt0A;2WY3;+^A5k~+3 delta 78 zcmbQsI+v9@pO=@50SM05&zs17hB0d5jmvDJKz@;3{A4G@&iCY{tx%nxj SIjMGxKwdEmkPu)JV+H{Dp%Bpk diff --git a/osinaweb/billing/migrations/__pycache__/0035_alter_invoice_pdf.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0035_alter_invoice_pdf.cpython-310.pyc index a86d37ce52fc40bdba1d7ff334d5cbfbedd9a2fb..5767bedfdd3b6b2d6dcacec9fa33fbf0b97acd21 100644 GIT binary patch delta 20 acmeBS?P2B4=jG*M0D_{^^EYxgG64WBd<5J8 delta 20 acmeBS?P2B4=jG*M0D|-N^EPrfG64WCIt1(h diff --git a/osinaweb/billing/migrations/__pycache__/0036_alter_invoice_invoice_number.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0036_alter_invoice_invoice_number.cpython-310.pyc index 44b1738637e9694a6ac248616ed00d89bbd6ef90..f6d8ab5e3d201acbf97e846bfd222113f7e1c5bd 100644 GIT binary patch delta 20 acmZ3+x{Q@OpO=@50SJmt&)>*Bn+X6hj0GwH delta 20 acmZ3+x{Q@OpO=@50SM05&)dj7n+X6iN(DLq diff --git a/osinaweb/billing/migrations/__pycache__/0037_recurringcycle_item.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0037_recurringcycle_item.cpython-310.pyc index 5cefd32948d4a35ae030573446ed98f9e9191816..cb580303fe5918d48a1394c86b6583e4cfbc6980 100644 GIT binary patch delta 20 acmeyx`iqr2pO=@50SJmt&)>-Xo(TXxtOh0k delta 20 acmeyx`iqr2pO=@50SM05&)dlTo(TXyY6dm{ diff --git a/osinaweb/billing/migrations/__pycache__/0038_alter_invoice_pdf.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0038_alter_invoice_pdf.cpython-310.pyc index b0c76f0a2d420304d18e7cc46c30080b7b54a296..10fb47a1f5400a2c8f1cecc4965af1c66b2b9744 100644 GIT binary patch delta 78 zcmbQsI+v9@pO=@50SJmt&!5PBhVj!phw>WHa^HWN5 RQtcRlykZt0A;2WY3;+`_5lsL9 delta 78 zcmbQsI+v9@pO=@50SM05&zs17hB0d5jmvCeKz@;3{A4G@)iCY{tx%nxj SIjMGxKwdEmkPu)JV+H{EkPz1Z diff --git a/osinaweb/billing/migrations/__pycache__/0039_recurringcycle_cycle_price.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0039_recurringcycle_cycle_price.cpython-310.pyc index 9bb2412c4eb1ef24b1966fb9bb6e9836e0bfeb6b..b97e99ccb57b06e7f4bfbcb7672dc80526ff73c2 100644 GIT binary patch delta 20 acmeBX?Plf9=jG*M0D_{^^EYxgFaZE9R0P=o delta 20 acmeBX?Plf9=jG*M0D|-N^EPrfFaZEA5(Mc0 diff --git a/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0040_rename_due_at_orderitem_end_at_and_more.cpython-310.pyc index c07f4b30257a12c96a63038632d4f550316778d5..f5521d1d3f3a6a40a1af5299bf77baf1a1c979ac 100644 GIT binary patch delta 20 acmeyy`i+%4pO=@50SJmt&)>-Xnh5|t39wJU5QAil`t4U7i`AWSeHM2JpqWRd~^nRg9C delta 56 zcmbQuI-8X{pO=@50SM05&zs17it*OOYggDrf&3!T$r~6C3P6}(K8O&T+{h#a0IuK- A*#H0l diff --git a/osinaweb/billing/migrations/__pycache__/0042_order_due_date.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0042_order_due_date.cpython-310.pyc index 312dca6e11ae61c7bc26a95370609c24512bd981..3bd79e791f47d4ce08b7cbb9c0056023dc0399e9 100644 GIT binary patch delta 56 zcmeyx@{5H#pO=@50SJmt&!5PBit*OOYg^ewL44846B+jlK$u`Yh!C5cz$66#%+d}d delta 56 zcmeyx@{5H#pO=@50SM05&zs17iZN>9wXJL-Kz@*Bfe8RF)CCCu delta 20 acmbQuI-8X{pO=@50SM05&)dj7fe8RGk_8z6 diff --git a/osinaweb/billing/migrations/__pycache__/0044_alter_orderitem_active.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0044_alter_orderitem_active.cpython-310.pyc index ee6851d3ce991c204c3e713da5057b28ffcb830f..f6148c2d26b4e8c0cf331d7122543ede4daff712 100644 GIT binary patch delta 20 acmeBT?PBH5=jG*M0D_{^^EYzWGXVfCECkj7 delta 20 acmeBT?PBH5=jG*M0D|-N^EPtVGXVfC>ICKh diff --git a/osinaweb/billing/migrations/__pycache__/0045_orderpayment_date_due_alter_orderpayment_date_paid.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0045_orderpayment_date_due_alter_orderpayment_date_paid.cpython-310.pyc index 4496e8fb514aa59140ed576678f95fe93bf668d2..e62826ea5b822a3c271f6a40e458fbf44aa91e85 100644 GIT binary patch delta 20 acmaFD`h=A`pO=@50SJmt&)>*>lL-JjJO$(c delta 20 acmaFD`h=A`pO=@50SM05&)dj-lL-Jj`UUg= diff --git a/osinaweb/billing/migrations/__pycache__/0046_remove_orderpayment_order_orderpayment_order.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0046_remove_orderpayment_order_orderpayment_order.cpython-310.pyc index c16e37b8a038e90c2aa892c29d2f0429465288f8..7c5b5e829b77b552d1ab9198664c6fc9e1f2978d 100644 GIT binary patch delta 77 zcmcc4cAbqopO=@50SJmt&!5Qsk}+!H*KRfr5TA2$8{=#?DG*a?vO3c*DNzuU1tf^1=jG*M0D_{^^CxmYVZ1f*Lo*vEh|e{-lChRe62z38{D<+00E7wVg9xd~ HADE;7Q5O)G delta 67 zcmeBT>tf^1=jG*M0D|-N^CogXVT_vip_z>X$S>lYT*+9=CIMnfO#Z|8L;%7B^Ff5< IOV diff --git a/osinaweb/billing/migrations/__pycache__/0048_remove_order_status_orderstatus.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0048_remove_order_status_orderstatus.cpython-310.pyc index 28ca4a6a9b8d800b211f11cd82482e206274513c..d4b5765433488818e173b18f57ae6ba6ecf549b3 100644 GIT binary patch delta 134 zcmcb?af5?9pO=@50SJmt&)>)`&&U`xS(|aaxgbzPlj#mYA87 zno=YT;c_}B<|U`*fJ8(DoSe*bj7VF;hiEip4E zHKj-d!sT>M%u7zq0f~qLMT&$c3o->Va!pQVI>x38640Hj&-__R1H@zj^HB-C$u=x9 E0Pyl2=l}o! diff --git a/osinaweb/billing/migrations/__pycache__/0049_rename_due_date_order_date.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0049_rename_due_date_order_date.cpython-310.pyc index 3b66cbdf0fd669d9928f9e4a9004aa6e8bdfd48b..c66e97b8a537c12e84dc2bc7be08728a63c7f696 100644 GIT binary patch delta 56 zcmaFG@`{B!pO=@50SJmt&!5P>h4I$J16$aHKzyOeRgA|3AWSeHL*>mk9tn+y(Fe delta 20 acmaFC`ht}^pO=@50SM05&)dj-mk9tong##> diff --git a/osinaweb/billing/migrations/__pycache__/0051_alter_orderpayment_amount.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/0051_alter_orderpayment_amount.cpython-310.pyc index a65b6cfa8e95d7d5d66afee7b2b4a7435ee817c7..3bb0deabf51e913b043db06fa438991dfaaae8bd 100644 GIT binary patch delta 20 acmbQoI**k*pO=@50SJmt&)>*BnF#tW;0=jG*M0D_{^^Cxm&V7xW)j*B-3kgv&fi#;GUFC{ZCy@(USXLC!;%t=it z0;vZ|b2=yHC8y?qM7Y5szqmc~6atF!(~DAzi;H-GVnv*jvl&;gNrRZulO>r>YC)J_ eK8TP361O;Pa`RJ4b5iXXfxKcCAR)jc#tZ=MVtW;0=jG*M0D|-N^Cog%V2ql0$Hki+$k$}L#U7BFmy(&6Uc>?6v$-W^=A@<+ zaYDG9&WU-+sW~7KkO`Vhzqmc~6atF!(~DAzi;K8{VnrO2vl&;gNr9MBlO>r>YC)J_ eK8TP861O;Pa`RJ4b5iXXfxKcCAR)jc#tZICKh diff --git a/osinaweb/billing/migrations/__pycache__/__init__.cpython-310.pyc b/osinaweb/billing/migrations/__pycache__/__init__.cpython-310.pyc index 7a5c1fe075de85c9040a7a983481a57c17e662bd..8f36a7ad30b071d31fb9401fc412927a5156b367 100644 GIT binary patch delta 19 ZcmX@fc#@GjpO=@50SJmt&!5P>4*)QU1!({P delta 19 ZcmX@fc#@GjpO=@50SM05&zs1-4*)SY1$h7f diff --git a/osinaweb/customercore/__pycache__/__init__.cpython-310.pyc b/osinaweb/customercore/__pycache__/__init__.cpython-310.pyc index 21a39f288d07b151d51aebfe8056a0aaf5846cb4..7d041b1ec5d3fd7c8f14a701f30f230c1553ad54 100644 GIT binary patch delta 19 ZcmX@ic$kqppO=@50SJmt&!5P>0{}0p1y=w7 delta 19 ZcmX@ic$kqppO=@50SM05&zs1-0{}2t1!n*N diff --git a/osinaweb/customercore/__pycache__/admin.cpython-310.pyc b/osinaweb/customercore/__pycache__/admin.cpython-310.pyc index ab8e3e2a966b52a377f23ffc56fa99cb6829121a..6784512e05bb44ddbd50f5aadfeb3d88caa7d1b7 100644 GIT binary patch delta 19 ZcmaFE_=b@?pO=@50SJmt&!5Qs5CAop1=0Wj delta 19 ZcmaFE_=b@?pO=@50SM05&zs2o5CAqt1>yhz diff --git a/osinaweb/customercore/__pycache__/apps.cpython-310.pyc b/osinaweb/customercore/__pycache__/apps.cpython-310.pyc index a6ec291e21efea774d7b2627774b5a94b55104af..05d7dd14dfd29f165d21f53390cc63b6b2dde509 100644 GIT binary patch delta 20 acmaFH{EV49pO=@50SJmt&)>*>n-KszLj~mk delta 20 acmaFH{EV49pO=@50SM05&)dj-n-Ks!0R{B{ diff --git a/osinaweb/customercore/__pycache__/custom_context.cpython-310.pyc b/osinaweb/customercore/__pycache__/custom_context.cpython-310.pyc index f8c883f7b0e1a63b3e41fb4bca907bbdd1f95015..e65ad17c2520e557956102815bc32c45a22aeda8 100644 GIT binary patch delta 20 acmZ3*Bj}-ti-vvSd delta 20 acmZ3+six~hmtp$t# delta 20 acmX@gew3X%pO=@50SM05&)dkoix~hnYXzJD diff --git a/osinaweb/customercore/__pycache__/models.cpython-310.pyc b/osinaweb/customercore/__pycache__/models.cpython-310.pyc index 9a18eb0d74cb935c6d19dec60d7c7bc2034bee6f..f6aebbe2818c9f1cca37bc9bfb55f8921d0390c1 100644 GIT binary patch delta 19 ZcmX@ec#x4hpO=@50SJmt&!5P>4FE4;1yKM1 delta 19 ZcmX@ec#x4hpO=@50SM05&zs1-4FE6?1z`XH diff --git a/osinaweb/customercore/__pycache__/urls.cpython-310.pyc b/osinaweb/customercore/__pycache__/urls.cpython-310.pyc index c7f77c843bb17a064f7e14b1fee0215a24e46f40..f27723b77c74df823d635fc56542ad4fd9f8c864 100644 GIT binary patch delta 20 acmX@jcbbnopO=@50SJmt&)>-HzzzU6odqxe delta 20 acmX@jcbbnopO=@50SM05&)dlDzzzU7TLnM> diff --git a/osinaweb/customercore/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/__pycache__/views.cpython-310.pyc index 16d5b0f0d552454f86d1b8aedc1aaff5e48ee2f9..9aa864eef8dfc28664fbf1fc6346fd73de915c68 100644 GIT binary patch delta 20 acmZp(X|v(Z=jG*M0D_{^^EYz;mIVMcV+GRy delta 20 acmZp(X|v(Z=jG*M0D|-N^EPt-mIVMdAqC?A diff --git a/osinaweb/customercore/add/__pycache__/urls.cpython-310.pyc b/osinaweb/customercore/add/__pycache__/urls.cpython-310.pyc index 055156c3f7ded3b6aa07490b747035ad6adbb5ee..5c50c3ff44e157809bb6a69cd49d6b8f9e55281f 100644 GIT binary patch delta 20 acmeyv^oNN%pO=@50SJmt&)>*h$Or&Ej|HUw delta 20 acmeyv^oNN%pO=@50SM05&)djd$Or&FO$D_8 diff --git a/osinaweb/customercore/add/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/add/__pycache__/views.cpython-310.pyc index 302b504f13974b9792f2bd0a24b66902dbe9f80e..a4c62abfa6983f5034c091ff3f297b2d5abd2bf8 100644 GIT binary patch delta 20 acmX>ncutTzpO=@50SJmt&)>*>m;(Sgf(5_; delta 20 acmX>ncutTzpO=@50SM05&)dj-m;(ShKn2hM diff --git a/osinaweb/customercore/migrations/__pycache__/0001_initial.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0001_initial.cpython-310.pyc index 65095a847ea5059a96cd562fd3c8483d54229471..57d78d48c5588eaf462750c1439d839027cfd1f4 100644 GIT binary patch delta 20 acmdnUzmcCipO=@50SJmt&)>+sj2!?pu?1uR delta 20 acmdnUzmcCipO=@50SM05&)dkoj2!?qZv}J! diff --git a/osinaweb/customercore/migrations/__pycache__/0002_alter_ticket_department.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0002_alter_ticket_department.cpython-310.pyc index 0abbe4380c041410affc4b5e36fb027eea8015d5..f8a46499da08241d4b85c6acb26646dbb64c45e5 100644 GIT binary patch delta 20 acmX@Yc7%;PpO=@50SJmt&)>*x$qWEBVFd>O delta 20 acmX@Yc7%;PpO=@50SM05&)djt$qWEC9|acx diff --git a/osinaweb/customercore/migrations/__pycache__/0003_ticket_customer_ticket_status_and_more.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0003_ticket_customer_ticket_status_and_more.cpython-310.pyc index 5032d4709b12ccddfa0bf72b436c971aaa5fed6e..926ba528069e2347d50f7aaa9653ed2f1c76c6d1 100644 GIT binary patch delta 20 acmcb`af^dHpO=@50SJmt&)>-H&jJ8B8U;=O delta 20 acmcb`af^dHpO=@50SM05&)dlD&jJ8B*acny diff --git a/osinaweb/customercore/migrations/__pycache__/0004_ticket_ticket_number_and_more.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0004_ticket_ticket_number_and_more.cpython-310.pyc index 9c3ffadc065450f3e436002d9a61e2140a9a04cc..73affa381094a62ac4b16c5a1b201b83ad6672b2 100644 GIT binary patch delta 97 zcmZ3;zL1?epO=@50SJmt&!5QshcRk02jdP#j>!iZH?hfsgykn!GJP_W0x?;@d{jaK c$i2m3lbfGXnv-hB2;>#B0SN&n4n{F%08P#la{vGU delta 97 zcmZ3;zL1?epO=@50SM05&zs2ohw;{A4#pjfoRbeSZemja3KuC%u4MXTCJkb;fcdC| dB9MEF!zMRBr8FnijuFT!W&;ueOdO12%m9066bk?V diff --git a/osinaweb/customercore/migrations/__pycache__/0005_ticketstatusupdate.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0005_ticketstatusupdate.cpython-310.pyc index d6172c6f21798c62c294782992435e0695f1dc04..945941628bc5ff9338c2d92a73bd7a2a8190cfaa 100644 GIT binary patch delta 131 zcmdnOxrLKEpO=@50SJmt&)>)$#>jYUauTC5kZfa2Qx*VxPE9Ein#|8+$0#=0kI9Hl5@d?hf~oIf+pjNVYMiDf0ovHJN^Kh36M#XXd3V_~#Yz zgN1IfIp^dTr=}DMOy*~@V-%U}$7IAN4wNdAnB2znolO_S)ScYS{8LID#AF5YQ3<`t H(^%vHP4*rZ diff --git a/osinaweb/customercore/migrations/__pycache__/0006_ticketupdate_read.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0006_ticketupdate_read.cpython-310.pyc index 623f6a46da6b54d3beae9191a371aa48af5fadec..1137183f18fbb161fbabea65e50cc1ba69991249 100644 GIT binary patch delta 20 acmbQlI*FA#pO=@50SJmt&)>-1&IAB1Yy|EA delta 20 acmbQlI*FA#pO=@50SM05&)dk|&IAB2Dg^!j diff --git a/osinaweb/customercore/migrations/__pycache__/0007_remove_ticketupdate_read_ticketupdatereadstatus.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0007_remove_ticketupdate_read_ticketupdatereadstatus.cpython-310.pyc index 307fd86c5f4156f7460ec0a487d516c1ebd64d77..f53378538eef85c61b4b1e3201daff314488feff 100644 GIT binary patch delta 39 tcmZqVY~&5leCOaQ{s3MBvl diff --git a/osinaweb/customercore/migrations/__pycache__/0008_rename_ticketupdatereadstatus_ticketread.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0008_rename_ticketupdatereadstatus_ticketread.cpython-310.pyc index 7eed9282bd239dea99b6facc4ec4848c3a968062..2f10e6b683b2528305ae3341b0d1d2f36e281664 100644 GIT binary patch delta 86 zcmey&`k9qGpO=@50SJmt&!5PBlQC-IQ&YyM$8 Z*yQG?l;)(`F#>tTY(RpCiHA{)8355q688WA delta 86 zcmey&`k9qGpO=@50SM05&zs17lkwKXr>2azCQCE!W)lXA770(j!}wYU!UXd{gb0wh a#bJ}1pHiBWYR3rV6|(^e9wr_}F=hZ4tP~Rf diff --git a/osinaweb/customercore/migrations/__pycache__/0009_alter_ticketattachment_ticket.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0009_alter_ticketattachment_ticket.cpython-310.pyc index 955712b7c5e73435f4a41433be525291e18ca2bd..acecae7aa205e04b9bdedba003a9b2fe0f5d6a92 100644 GIT binary patch delta 91 zcmdnMwtF8w(jWop$wEvo%)~%U7BC-`kO6XUaoFVM WrWHa X^HWN5QtcRlyka&WA;84JD8>u`oE8yH diff --git a/osinaweb/customercore/migrations/__pycache__/0010_rename_ticketreaction_ticketupdatereaction.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0010_rename_ticketreaction_ticketupdatereaction.cpython-310.pyc index 5d7b46f082b016df1b90dd15bcc2496fb133bc17..e84e284e2eb96f00cdecdac28fdbece2e5051bb5 100644 GIT binary patch delta 20 acmZo*h%nSfNaRs#i delta 20 acmeyz_K%G_pO=@50SM05&)djd%nSfOF9pQ_ diff --git a/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-310.pyc index 1ec38aa98b2a1e294f82e30e429ae97e5b59d23f..c7266599111c82a481124cf8d1eacbb24648ca5a 100644 GIT binary patch delta 20 acmZ3;wvdfGpO=@50SJmt&)>)`#tZ;2=>(nt delta 20 acmZ3;wvdfGpO=@50SM05&)di?#tZ;3rv$D5 diff --git a/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-310.pyc index e44b44d9f7b1ac485b54fbbcd2ce7c3563ae6660..5a743e7023505cc383cb0ae6cf25b6d259fcd040 100644 GIT binary patch delta 56 zcmeyy`i+%4pO=@50SJmt&!5Qsh4I!T#?Ne$Aim_}pNy9UAWSeHL`Y4(!z2X&%rOqa delta 56 zcmeyy`i+%4pO=@50SM05&zs2og)wRp<7YMrAiqdr@=wOg0uUyc4L_pO=@50SJmt&!5P>lQC-I(UWX~Aim(_DU4UOAWSeHLL_pO=@50SM05&zs1-lkwKXqbJ#ffczq%$x|4wYC)J_K8O$o61O;Pa`RJ4 Sb5iXXfxKcCAi={V#tZ-e8xZXP diff --git a/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-310.pyc index 4bee08196aa84c79863a18c5cfd54bfad32eeb80..d3e8ab038ecaf7dbda2aea071ca5e2d5ae4716ad 100644 GIT binary patch delta 62 zcmaFD`h=A`pO=@50SJmt&!5PBlQC-IQ!U1*$pVZ!*#tqNf|JiPz7&8k!F&)QH2DOR F3;-964}Smv delta 62 zcmaFD`h=A`pO=@50SM05&zs17lkwKXr&^4+CJQj`WD^F8770&2&-hXR!UXd{gvjI* GOfmpNK@gh& diff --git a/osinaweb/customercore/migrations/__pycache__/0017_tickettask.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0017_tickettask.cpython-310.pyc index 0ddbd88774767c67e4141799ba66ad4c2863bbd0..b4915440f97add3ca6262de05403d4cf8e5abdfa 100644 GIT binary patch delta 20 acmdnRzKfkZpO=@50SJmt&)>+so*4i%^#yAH delta 20 acmdnRzKfkZpO=@50SM05&)dkoo*4i&vjuwq diff --git a/osinaweb/customercore/migrations/__pycache__/0018_alter_ticketattachment_file.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0018_alter_ticketattachment_file.cpython-310.pyc index 224150cce859e7f77aa1312aae17f596b6521fa1..d7d53dd6330e4f4bf101eeed2b3e50596e6626c6 100644 GIT binary patch delta 78 zcmZ3$x`35CpO=@50SJmt&!5PBmhslao5$EhL4484OBpX}L6~4Zh!6u3w>WHa^HWN5 RQtcRlykZt0A;2WY3;+=|5kCL` delta 78 zcmZ3$x`35CpO=@50SM05&zs17mN9DL&0}mLKz@+c!3+R0xdhYz delta 20 acmdnYwwaAPpO=@50SM05&)dkY!3+R1cLd}B diff --git a/osinaweb/customercore/migrations/__pycache__/0020_alter_ticketattachment_file.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0020_alter_ticketattachment_file.cpython-310.pyc index abd2ce91dbc0a23ed84878758c07728b3001b968..49e65ffd517324651d67197a64a494d3a68d44cc 100644 GIT binary patch delta 78 zcmZ3$x`35CpO=@50SJmt&!5PBmN9DL&0}mLAil`trHmJ~AWSeHM2G^3TO2mI`6;D2 RsdkJ&UNH-h5MUBx1_1Ln5V-&V delta 78 zcmZ3$x`35CpO=@50SM05&zs17mhslao5$Ehf&3!T$x9h8YC)J_K8O$l61O;Pa`RJ4 Sb5iXXfxKcCAR)jc#tZ-zlMzn< diff --git a/osinaweb/customercore/migrations/__pycache__/0021_file_ticket.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0021_file_ticket.cpython-310.pyc index b2320b632446bab6e2942e441a32be0f29805178..50dfdf8d90460575341a5bd23b9883b744f3dbed 100644 GIT binary patch delta 20 acmZo+YhmNg=jG*M0D_{^^EYz;WC8#!U*x!~_5|00iv- delta 20 acmdnXvX_NBpO=@50SM05&)djt!~_5|z6AXM diff --git a/osinaweb/customercore/migrations/__pycache__/0023_delete_file_remove_ticketattachment_file_and_more.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/0023_delete_file_remove_ticketattachment_file_and_more.cpython-310.pyc index d0321bd177ad218f558fc3f9551880e77e657269..66c2a2b6d15de5890effc11394bb86aa509b4ccc 100644 GIT binary patch delta 95 zcmbQkHiwNnpO=@50SJmt&!5Qslrd`JM_)$v$@YxeY#`wx_Q?f|?QD`DrsU+mj9;}N gOfVlrNCAmk95%W6DWy57c8ow?F$<6oU=m{n065YV9smFU delta 95 zcmbQkHiwNnpO=@50SM05&zs2ol=0TYkG_l?lkFL`*|>qCMI4h07~9#TKuoF0e;L1O hL6~4Zh>!*nw>WHa^HWN5QtcRlykZt0A;2WY3;<+sjRgQURt1Fs delta 20 acmX@ed61JkpO=@50SM05&)dkojRgQV6a|$4 diff --git a/osinaweb/customercore/migrations/__pycache__/__init__.cpython-310.pyc b/osinaweb/customercore/migrations/__pycache__/__init__.cpython-310.pyc index 63f6bc528b6c666646f8bd34fea1df8f206a26a8..ef10ec7b26fec8889a654fdd12b25d21ee86872a 100644 GIT binary patch delta 19 ZcmX@dc#e@fpO=@50SJmt&!5PB7yvOs1$Y1e delta 19 ZcmX@dc#e@fpO=@50SM05&zs177yvQw1&9Cu diff --git a/osinaweb/customercore/payment/__pycache__/urls.cpython-310.pyc b/osinaweb/customercore/payment/__pycache__/urls.cpython-310.pyc index 7c918346949a15e7a29a165dfa304542ebbe1d9c..c45ddb415a2c72d57d3788517b7a85ecf91a6abf 100644 GIT binary patch delta 20 acmcb|evh3ypO=@50SJmt&)>*>nHc~&l?B%T delta 20 acmcb|evh3ypO=@50SM05&)dj-nHc~(Qw8S$ diff --git a/osinaweb/customercore/payment/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/payment/__pycache__/views.cpython-310.pyc index cb333da330040a4606bf3d2b1dc54fb01a9e0f63..e33b9508fc71e99ba07d5257de80c7e44075f82c 100644 GIT binary patch delta 20 acmca*d&`zPpO=@50SJmt&)>*>UJd|3s0LC1 delta 20 acmca*d&`zPpO=@50SM05&)dj-UJd|4W(Hya diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index a6e6a1ac3d33720ccf49988b3a5e528fe231d093..81bf772e84916bb75f6f6e97d15d46edf5140f1d 100644 GIT binary patch delta 18032 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 delta 8520 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 QNAV5$b8z!mEaLb62ae(D%m4rY diff --git a/osinaweb/osichat/__pycache__/__init__.cpython-310.pyc b/osinaweb/osichat/__pycache__/__init__.cpython-310.pyc index 0b1e297a6d4205a93f01d2025a116209c21b3805..fd1a5d732a55d26e037ffe8665e27e403d4221b3 100644 GIT binary patch delta 19 ZcmdnTxQ~%LpO=@50SJmt&!5P>82~Qw1xNq@ delta 19 ZcmdnTxQ~%LpO=@50SM05&zs1-82~S!1y}$8 diff --git a/osinaweb/osichat/__pycache__/admin.cpython-310.pyc b/osinaweb/osichat/__pycache__/admin.cpython-310.pyc index 872d5ee45fa700cf47fbba7aea5cb21fd6613b01..ec481a6adf6513973cefb5d8873c58a2a3d66e4a 100644 GIT binary patch delta 20 acmbQnGL3~hpO=@50SJmt&)>++%>)1~=mdBG delta 20 acmbQnGL3~hpO=@50SM05&)dk&%>)20rUZxp diff --git a/osinaweb/osichat/__pycache__/apps.cpython-310.pyc b/osinaweb/osichat/__pycache__/apps.cpython-310.pyc index 592247d1aa98c993ba9829656ea87461096859d7..9c52dbc14416440ca4b9d3aa596c558ba38c4cae 100644 GIT binary patch delta 20 acmcc4e4Uv)pO=@50SJmt&)>*>h7kZb>jk&~ delta 20 acmcc4e4Uv)pO=@50SM05&)dj-h7kZcsRhUY diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index 93158a614e7503dab1532de71a3b9d4efbca9dbc..1800cf4bfd7429ac62f341eee5e8098071c9142b 100644 GIT binary patch literal 4282 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 diff --git a/osinaweb/osichat/__pycache__/models.cpython-310.pyc b/osinaweb/osichat/__pycache__/models.cpython-310.pyc index 983aa0e69970e4242ecfc0285da94871454889d6..1b7ac53f068957d2c7d0e192d3544ee868af94eb 100644 GIT binary patch delta 1023 zcmZ8fO;giQ6wS-$OGr!2v_gfB3>vjSfe{1-2B(7K-~txP=*Xs1NUBsy>rEI3rpP$5 z)Yba|wky|e-MVn$%57ZXA7J6Qapk=!){kV~$-Vczb8_xYerArd$$BDTNqC)pdt33X z_sJhJD+*Paa(vsgr`ZKICNTu{B;z0-% zs^-;54g8(ThP_h`!cwjC!i{rrw%4H3UWpEZi<5!AF7#s*bx3E&9ION>gnn6Noar)` zQ_NzPe2}4D?qTEO9a*!ZyOvLiNi!o}Dzj<0M0&gd^@b1OKIAbK&v5grV)ojYaLHzA zl$BXhoGPDe7{ns<5{!tC>R5IH!y#M&{Rv!hn2mRe!Gt(5a>CX8+$e6q7{L@mq}Tk~ zrVo&%%Ak0sjr2`pcn#Ngj=-f9@@)pwv4Wb8|;Nivl~@e&%k z#RsynA|32BW}JORSP*;sa%K@X7Dz!ypr(+$7`OD9ucN|{>0bC(0dA63>}f`n%&UDx z%xMLG=7N(g#v&ig+Z`L7`F3smErL{PCbNXW9n$%2CCy+-l&$$;`g%Zp0?ja<7m#r% X5)cms(&CFXm~b5K=y)5Bc3%Gls9@o4 delta 629 zcmaKpzfapx5Xb!*{QR8QCW>rQgVTf`AwL9^DxgX%{9HPer6432P#^}DV06jCP!%DD z?zaOo6Z{<=s%};OgNm{0!UA_MYEe7X);qs<_wIAwJ70tkftR>$+Mws_r^|zn>dyQ1 zLd@Ynsv%qE2cstOU1}<|UUTr99bndc>uo!&W;fp5hnPMsTvh>|n6{?~p$td(!VwVS zwe<1Iymfm6kR)vwq$otVBd5X=ZGBoDuBwb2-FHM*K#6kB3k7n*D>f5kda@n2_hNvM zJ!M?9>iJ39MzntRD`qK|Do)~=6Cs#4Dqs+FgN79LpyF8C@nnG1te_Hf~ z$0DbxQ~^KRE24s5?2%Bj`EtKmtKBaRGx%sv1hW))%@j#S8M@6`P1sCt5aA|W9{!sE zZFg&2ChqY5}C&xCvs&@+M$_M~EuLXes delta 20 acmeys^nr;xpO=@50SKn9nzxZVl@S0t*#&|C diff --git a/osinaweb/osichat/__pycache__/views.cpython-310.pyc b/osinaweb/osichat/__pycache__/views.cpython-310.pyc index 132d06ced16e82cf6532e324d6074072fc4c7c49..7e169183635f192af2a6a470f9aa3f6f33b47b20 100644 GIT binary patch delta 20 acmeyw`iYf0pO=@50SJmt&)>-XoCyFuYz7Vh delta 20 acmeyw`iYf0pO=@50SF2Y&fCcSoCyFuBnAQi diff --git a/osinaweb/osichat/consumers.py b/osinaweb/osichat/consumers.py index f59178b1..fa76de4e 100644 --- a/osinaweb/osichat/consumers.py +++ b/osinaweb/osichat/consumers.py @@ -13,7 +13,7 @@ class OsitcomVisitor(WebsocketConsumer): 'ositcom_visitors', self.channel_name ) self.accept() - print('i am here') + self.visitor = None def disconnect(self, close_code): if self.visitor: @@ -25,31 +25,14 @@ class OsitcomVisitor(WebsocketConsumer): def receive(self, text_data): text_data_json = json.loads(text_data) event_type = text_data_json.get('event_type') - print('333') if event_type == 'new_visitor': - event = { - 'type': 'new_visitor_handler', - 'session_id': text_data_json.get('session_id'), - 'client_ip': text_data_json.get('client_ip'), - 'client_country': text_data_json.get('client_country'), - 'referrer': text_data_json.get('referrer'), - 'url': text_data_json.get('url'), - - } - async_to_sync(self.channel_layer.group_send)( - 'ositcom_visitors', event - ) - - def new_visitor_handler(self, event): - print('hiiiiii') - self.visior = Visitor.objects.create( - session_id = event['session_id'], - ip_address = event['client_ip'], - referrer = event['referrer'], - country = event['client_country'], - url = event['url'], - visit_date = datetime.now(), - ) + self.visitor = Visitor.objects.create( + session_id = text_data_json.get('session_id'), + ip_address = text_data_json.get('client_ip'), + referrer = text_data_json.get('referrer'), + country = text_data_json.get('client_country'), + url = text_data_json.get('url'), + ) @@ -62,8 +45,12 @@ class OsitcomChatRoom(WebsocketConsumer): self.session_id, self.channel_name ) self.accept() - - self.load_chat() + chat_room_guest = ChatRoomGuest.objects.filter(session_id=self.session_id).last() + if chat_room_guest: + chat_room = chat_room_guest.room + self.chat_room = chat_room + else: + self.chat_room = None def disconnect(self, close_code): @@ -72,32 +59,52 @@ class OsitcomChatRoom(WebsocketConsumer): ) - def load_chat(self): - event = { - 'type': 'load_chat_handler', - } - async_to_sync(self.channel_layer.group_send)( - self.session_id, event - ) def receive(self, text_data): text_data_json = json.loads(text_data) event_type = text_data_json.get('event_type') + + if event_type == 'load_chat': + event = { + 'type': 'load_chat_handler', + } + async_to_sync(self.channel_layer.group_send)( + self.session_id, event + ) if event_type == 'start_conversation': + chat_room = ChatRoom.objects.create( + name=f"Support: {self.session_id}", + date_created = datetime.now() + ) + chat_room_guest = ChatRoomGuest.objects.create( + room=chat_room, + name= text_data_json.get('guest_name'), + mobile_number= text_data_json.get('guest_mobile_number'), + session_id=self.session_id + ) event = { 'type': 'start_conversation_handler', - 'guest_name': text_data_json.get('guest_name'), - 'guest_mobile_number': text_data_json.get('guest_mobile_number'), + 'chat_room_id': chat_room.id } async_to_sync(self.channel_layer.group_send)( self.session_id, event ) if event_type == 'send_message': + if text_data_json.get('user_id'): + member = get_object_or_404(User, id=text_data_json.get('user_id')) + else: + member = None + chat_message = ChatMessage.objects.create( + member = member, + room = self.chat_room, + content=text_data_json.get('message'), + date_sent = datetime.now() + ) event = { 'type': 'send_message_handler', - 'body': text_data_json['message'] + 'chat_message_id': chat_message.id } async_to_sync(self.channel_layer.group_send)( self.session_id, event @@ -106,13 +113,12 @@ class OsitcomChatRoom(WebsocketConsumer): def load_chat_handler(self, event): - chat_room = None - chat_room_messages = None - chat_room_guest = ChatRoomGuest.objects.filter(session_id=self.session_id).last() - if chat_room_guest: - chat_room = chat_room_guest.room - self.chat_room = chat_room + if self.chat_room: + chat_room = self.chat_room chat_room_messages = ChatMessage.objects.filter(room=chat_room).order_by('date_sent') + else: + chat_room = None + chat_room_messages = None context = { 'chat_room': chat_room, 'chat_room_messages': chat_room_messages, @@ -123,18 +129,8 @@ class OsitcomChatRoom(WebsocketConsumer): 'html': html, })) - def start_conversation_handler(self, event): - chat_room = ChatRoom.objects.create( - name=f"Support: {self.session_id}", - date_created = datetime.now() - ) - chat_room_guest = ChatRoomGuest.objects.create( - room=chat_room, - name=event['guest_name'], - mobile_number= event['guest_mobile_number'], - session_id=self.session_id - ) + chat_room = get_object_or_404(ChatRoom, id=event['chat_room_id']) context = { 'chat_room': chat_room, 'session_id':self.session_id @@ -147,11 +143,7 @@ class OsitcomChatRoom(WebsocketConsumer): def send_message_handler(self, event): - chat_message = ChatMessage.objects.create( - room = self.chat_room, - content=event['body'], - date_sent = datetime.now() - ) + chat_message = get_object_or_404(ChatMessage, id=event['chat_message_id']) context = { 'chat_message': chat_message, } @@ -163,3 +155,4 @@ class OsitcomChatRoom(WebsocketConsumer): + diff --git a/osinaweb/osichat/migrations/__pycache__/0001_initial.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0001_initial.cpython-310.pyc index 2fc2922ca3afa188cc3da88825fe85f4b83f4b9d..a5178d14d3f17fea613a66bae4ecf46bde96f947 100644 GIT binary patch delta 20 acmX@lf1aN^pO=@50SJmt&)>*>gdG4mVFkVb delta 20 acmX@lf1aN^pO=@50SM05&)dj-gdG4n9|g_; diff --git a/osinaweb/osichat/migrations/__pycache__/0002_chatroom_guest_session_alter_chatroom_created_by_and_more.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0002_chatroom_guest_session_alter_chatroom_created_by_and_more.cpython-310.pyc index b839ff8683da656b5a8eb9a3c5e69e3a96c7359d..ab67584c9f34f5165f03c1debca80bd9a943c983 100644 GIT binary patch delta 143 zcmZqRXyD+^=jG*M0D_{^^EYxkGIB?8BxfX+6y@jVMokW9j8x^#BPf5*5 zElIt_RFYrB0~FI_EaIGek?|Cp0!Wp@=7mh^j26-$HY->Fl~4q7Z*kb<=BJeAq}nk8 QdBq^pd6)zkIT*#50j8cFApigX delta 143 zcmZqRXyD+^=jG*M0D|-N^EPrjGIHPINX|$sDay~!y)`+UF;WpES;PY*ZgJ-4#iyj^ zq?V-KVk*fm;sc6lG8S=9zQ}lrO$nq*Y4buRbw&$W5StY&fJ!I>xwklMa`RJ4b5iXX SfxKc4Ai={Vz{tTU#tZ-{nIA_0 diff --git a/osinaweb/osichat/migrations/__pycache__/0003_chatroomguest_remove_chatroom_guest_session.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0003_chatroomguest_remove_chatroom_guest_session.cpython-310.pyc index 6a97017b88a5f8d059caeac5c6c34891f9c6e800..8817051ea61bfce1db1b3b54a8f274c1f00f7919 100644 GIT binary patch delta 138 zcmdnUzLA|fpO=@50SJmt&)>++!N_=PvIyfTQ$C=`Ew;4G)SQ&!TO7$5i6uq(`MI}v z(@Rr}OX7=Di;FY!^E8=mapmTxq~^ruCFZ6U@l6(HYGG3VnWZp!F4HS52ouZ)5sEto~2=jG*M0D_{^^EYxcGXnrD@dRZ6 delta 20 acmeBU>to~2=jG*M0D|-N^EPrbGXnrEuLN}f diff --git a/osinaweb/osichat/migrations/__pycache__/0005_alter_chatmessage_member.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0005_alter_chatmessage_member.cpython-310.pyc index fe0aff92edbbadfa71a2b252f0eb3db383cf2e0d..4cf059721b1d80df96e2b7eca1b3dde6ed763141 100644 GIT binary patch delta 20 acmcb?c7u&OpO=@50SJmt&)>-H%M1WGfdxYV delta 20 acmcb?c7u&OpO=@50SM05&)dlD%M1WHKLt|& diff --git a/osinaweb/osichat/migrations/__pycache__/0006_alter_chatmessage_content.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0006_alter_chatmessage_content.cpython-310.pyc index d9cb57ea0a3f02ac4991c8a0a974de856c991cba..5c9981c883944c8fd07d51b73ab30636d8c3138b 100644 GIT binary patch delta 61 zcmbQjI)#-xpO=@50SJmt&!5PBiZN>9H8~*hbt#)LNKkn40>)DU5GI%pB19%vF-ZXc D_VW($ delta 61 zcmbQjI)#-xpO=@50SM05&zs17it*OOYjQy1>rysRpkR^cA4G^vu40k` E03oIj4FCWD diff --git a/osinaweb/osichat/migrations/__pycache__/0007_chatmessage_room.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0007_chatmessage_room.cpython-310.pyc index 4c4fdf40afeff136b10ab56d767797502aae23c9..22d1993f0bc12f15dedd9825040fa511b16b4038 100644 GIT binary patch delta 72 zcmeyt`h%4_pO=@50SJmt&!5PBm+{ubm-39aCUY|0Ws?GlN=<&lcuh(a#AE^UQ3>hE HcbH@V^VAX? delta 72 zcmeyt`h%4_pO=@50SM05&zs17moaMMOL@kq$()RL*(89XMG}+WFkX`q1~FN{d{jbm I@*O4_0L2&)9smFU diff --git a/osinaweb/osichat/migrations/__pycache__/0008_alter_chatmessage_room.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0008_alter_chatmessage_room.cpython-310.pyc index 7f9b84acbf0e88e5f98462c6285c6366ab9f8adb..bce346060efa4745b105ed3ddf78af64f95b9b7a 100644 GIT binary patch delta 20 acmeyu`h}G{pO=@50SJmt&)>-Xk_iAkyap5i delta 20 acmeyu`h}G{pO=@50SM05&)dlTk_iAldIlr_ diff --git a/osinaweb/osichat/migrations/__pycache__/0009_visitor.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0009_visitor.cpython-310.pyc index 3dc39eecf379d3a22de201e2129a48b199255bca..dd725e1ea6830656ade4d7e8bd6b6541b3442e5a 100644 GIT binary patch delta 81 zcmZ3(wuX&6pO=@50SJmt&)>++#K;)6nU7JAkxdpPBs3|l53Fd+sj0pfUL-1&jbK3tOW)D delta 20 acmbQmI*XM%pO=@50SM05&)dk|&jbK4Y6TVm diff --git a/osinaweb/osichat/migrations/__pycache__/0012_alter_visitor_reference.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0012_alter_visitor_reference.cpython-310.pyc index 6b550e209eb363dc0831ee561637dc5b37a473dd..1e694d22847838f875b210510b964d0877654a09 100644 GIT binary patch delta 56 zcmZo;ZDZxm=jG*M0D_{^^CxnjV!So++732R5MOli6vh(*5GI%pBE%-=Fi8Obocj$~ delta 56 zcmZo;ZDZxm=jG*M0D|-N^CohiVvL%2Z3mkOkY6M+c?#nR0SFV!2N9x^bC{$6jgAcC diff --git a/osinaweb/osichat/migrations/__pycache__/0013_rename_reference_visitor_referrer.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0013_rename_reference_visitor_referrer.cpython-310.pyc index 95233a78e529e1d361e6154847e717799c9a8173..cc4c59da467f88cc316d3bd4f8defee5e0476133 100644 GIT binary patch delta 20 acmeys@_~grpO=@50SJmt&)>+M$^-yA_yvXl delta 20 acmeys@_~grpO=@50SM05&)dkI$^-yBwgr{| diff --git a/osinaweb/osichat/migrations/__pycache__/__init__.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/__init__.cpython-310.pyc index 671a12a13c7d3050aa64882f25463cad446eaf99..950249918891781e23ce0574f81a2668347722b1 100644 GIT binary patch delta 19 ZcmX@fc#@GjpO=@50SJmt&!5P>4*)QU1!({P delta 19 ZcmX@fc#@GjpO=@50SM05&zs1-4*)SY1$h7f diff --git a/osinaweb/osichat/models.py b/osinaweb/osichat/models.py index f9dfd90a..db6c7ab9 100644 --- a/osinaweb/osichat/models.py +++ b/osinaweb/osichat/models.py @@ -15,7 +15,19 @@ class ChatRoom(models.Model): name = models.CharField(max_length=300) created_by = models.ForeignKey(User, null=True, on_delete=models.SET_NULL, blank=True) date_created = models.DateTimeField() - + @property + def last_updated(self): + last_message = ChatMessage.objects.filter(room=self).order_by('-date_sent').first() + if last_message: + last_updated_time = last_message.date_sent + else: + last_updated_time = self.date_created + + now = datetime.now() + if last_updated_time.date() == now.date(): + return last_updated_time.strftime('%I:%M %p') + else: + return last_updated_time.strftime('%d-%m-%Y') class ChatRoomGuest(models.Model): room = models.OneToOneField(ChatRoom, on_delete=models.CASCADE, null=True) diff --git a/osinaweb/osichat/templates/partials/message.html b/osinaweb/osichat/templates/partials/message.html index e4005b39..146877a4 100644 --- a/osinaweb/osichat/templates/partials/message.html +++ b/osinaweb/osichat/templates/partials/message.html @@ -1,6 +1,27 @@ -
+{% if chat_message.member %} +
+
+
+ {% if chat_message.member.staffprofile.image %} + + {% else %} +

nn

+ {% endif %} +
+
+
+

{{chat_message.content}}

+
+
+{% else %} +

{{chat_message.content}}

+{% endif %}