From 15fa06346da22cc585ebe90a6b90f2a7b7f3b8ca Mon Sep 17 00:00:00 2001 From: nataly Date: Fri, 5 Apr 2024 20:36:59 +0300 Subject: [PATCH] New --- osinaweb/db.sqlite3 | Bin 991232 -> 991232 bytes .../__pycache__/urls.cpython-311.pyc | Bin 5820 -> 5948 bytes .../__pycache__/views.cpython-311.pyc | Bin 26823 -> 28228 bytes .../customer_dashboard/customer_main.html | 32 +- .../listing_pages/customer-products.html | 0 .../templates/customer_dashboard/payment.html | 147 ------ .../templates/customer_dashboard/pricing.html | 429 ++++++++++++++++++ osinaweb/osinacore/templates/main.html | 4 +- osinaweb/osinacore/urls.py | 4 +- osinaweb/osinacore/views.py | 104 +++-- osinaweb/static/dist/output.css | 50 ++ osinaweb/static/images/.DS_Store | Bin 6148 -> 6148 bytes osinaweb/static/images/icons/.DS_Store | Bin 0 -> 6148 bytes osinaweb/static/images/icons/about.svg | 17 + osinaweb/static/images/icons/checkmark.png | Bin 0 -> 2459 bytes .../static/images/icons/greencheckmark.png | Bin 0 -> 10710 bytes osinaweb/static/images/icons/invoice.svg | 30 ++ osinaweb/static/images/icons/products.svg | 12 + .../static/images/icons/projectswhite.png | Bin 0 -> 21757 bytes .../static/images/icons/projectswhite.svg | 17 + osinaweb/static/images/icons/support.svg | 38 ++ osinaweb/static/images/icons/ticket.svg | 36 ++ .../images/ositcom_logos/osicardblue.png | Bin 0 -> 2442 bytes .../images/ositcom_logos/osicardwhite.png | Bin 0 -> 2172 bytes .../images/ositcom_logos/osimenublue.png | Bin 0 -> 2904 bytes .../images/ositcom_logos/osimenuwhite.png | Bin 0 -> 2597 bytes .../static/images/ositcom_logos/osinablue.png | Bin 0 -> 2030 bytes .../images/ositcom_logos/osinawhite.png | Bin 0 -> 1890 bytes .../images/ositcom_logos/ositcomwhite.png | Bin 0 -> 2438 bytes osinaweb/static/js/.DS_Store | Bin 6148 -> 6148 bytes .../static/js/customer_dashboard/payment.js | 91 ++++ .../js/customer_dashboard/pricing-dropdown.js | 12 + 32 files changed, 823 insertions(+), 200 deletions(-) create mode 100644 osinaweb/osinacore/templates/customer_dashboard/listing_pages/customer-products.html delete mode 100644 osinaweb/osinacore/templates/customer_dashboard/payment.html create mode 100644 osinaweb/osinacore/templates/customer_dashboard/pricing.html create mode 100644 osinaweb/static/images/icons/.DS_Store create mode 100644 osinaweb/static/images/icons/about.svg create mode 100644 osinaweb/static/images/icons/checkmark.png create mode 100644 osinaweb/static/images/icons/greencheckmark.png create mode 100644 osinaweb/static/images/icons/invoice.svg create mode 100644 osinaweb/static/images/icons/products.svg create mode 100644 osinaweb/static/images/icons/projectswhite.png create mode 100644 osinaweb/static/images/icons/projectswhite.svg create mode 100644 osinaweb/static/images/icons/support.svg create mode 100644 osinaweb/static/images/icons/ticket.svg create mode 100644 osinaweb/static/images/ositcom_logos/osicardblue.png create mode 100644 osinaweb/static/images/ositcom_logos/osicardwhite.png create mode 100644 osinaweb/static/images/ositcom_logos/osimenublue.png create mode 100644 osinaweb/static/images/ositcom_logos/osimenuwhite.png create mode 100644 osinaweb/static/images/ositcom_logos/osinablue.png create mode 100644 osinaweb/static/images/ositcom_logos/osinawhite.png create mode 100644 osinaweb/static/images/ositcom_logos/ositcomwhite.png create mode 100644 osinaweb/static/js/customer_dashboard/payment.js create mode 100644 osinaweb/static/js/customer_dashboard/pricing-dropdown.js diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index c5d4dd0621cc8e2a6d67cfbb9e75ba7da34e6fcb..c3ae54d1df755b494d1606a11207910bd99a2c55 100644 GIT binary patch delta 2226 zcmah~Z)h837|$i`u5FSl6Pa#|QHizFt>Nz8yWF1*HBDOjFHM`YOjBRO`*@NGg zdw#s{?|q)%^E}7b4VJM4|EJ?cw8f9o;v<>6H&CsX^^^~`SQHBK! zixO^}1So^)4~8cI-8dcdpaf28TjOR7umo_E7|u{=sZAJXamtNhG@!}iN%KJ_tR`&r zOE){7e*wAwItq~Z$=lPNCU%&B>$j)7;H!_o@GT2+!+F{9hCSUg)V&wJwYGD810JZl zmOBF{=Db;1ZH24sZ`|c!)y0HNTtFUv(MHYxDVdSuPl|$R#L)(Fsw-^B{*x zYEhyjnMB>maeZDK9u8`PccvB)kasIeDjZ-Ja+67QvNSR~oi?y&YPNv;{Gx%*bE5=d z7=s}SqoziN5-AL960y0+RadzwA}+@BS}aQ#s*y>nl+ui>NFrGfWx^oh*^DL_Mgn70iOBGYT>DJm!>rdM zg%?LiZXp@biPcNRPU<0%@P#9hspRk$5iMO&b(NYT)ah^8nBKHBWeg_h9-=q+9@4hR^y0HM$t_ z%^i)(REk^7wTjr>dsSDlDMC|jce;)!xT7)|8WiHyO_F8YJ1#5_ZgdTA`V#Q9CP3fiVjm?By_yfNa;4>IxVNk?C| zi5?Sn6OOv0&-wRN8-<*!!5hw}oSz^cAs-+Yk#~@{&0hyMoT2)u4W|RC9sd|Y>!1DN zJiOCJ!H3?25f14(&}Dn4G~R#b-7alVj-EbQwsaF~33-qAHz8-IZXjqWcn1%3K#!mwKly z>W^{A&+ZQEs)ea_t|9|g=)2m%Rb;=_dgJW$g?$~6&;DxNSVfLN{ZHBg&~^hwul;ix zsX^nlJ^Oq5YM0L-&pff+AS~DaJ%e;QZHHi^246s)#$m&`*YTI*8^`;O*Bo)jvyR>H zdHWysuk07Qfc+KtC;Kt`A^WbL-{DVtzUZm;9O**p(F@4qaHSz|o0WquH%Qwp2%|yT bZft1{QtMb@+s&0ygSB0Ci*@iG@}>445=@-u delta 1127 zcmY+CU2M}<6vywi)7XifYiLDF+R=uOl$MUv_KoeN>4(~i(LRx_LP($@LKD_V{a|aM z8V`f58r|Ch(R4LUjEV<@kPw=>&Du+eKx_})gv0~%rB%fX50fTnkpPJzj_pFgSO4?i z-}#^a^-0c^+Rv5R3$>(i4I#7&DuVb6O(xg4_Uo~qTR8M`ZoNgwilVXz1U;UU3kwSV zVtVniy?7aaoaV>4n@o6um*zH?7BGA86e~0Hs~E(Aczb@;ryXS@B9VA4q0X$QD?omb zV6Ue|;nr5P2_a>ZQd9<&qhyI(B7X0{yi=hXGK=~l_NQ=N0}W%0!+n{N%v7HJmExM& zFI`-q9Xb&DtSY*t+2z@6wk2t5@NW98g&Kxws%rjt-l`6unvMnpb2R5+^<7-e4t?O% z#L3)PHkajh>Ty-o;`){Vs`K((Gn?+>cAZr^(50xC;zU>~wWy}5!;_OI+ge*8I5sps z+C4OxKiyduKs&qK9G%9g9*3$^r*Q&0$0zcWL*u!rFLP6)j-~ZozRz^>RZFW4plw>% zxu>ORNzj4`n+Z=>l6ZXWdTJX zz*(sEVY7F+cs&d=Jf47Iu&ZHqMp3H5-kc-8HaFEUx51`TP9wXjC=F>3AND0(9EYF5 zfH@z2$opIH7T~#f%QaCjIS&WAI3q^_pdd&B$+jE`y|~4zj# z_H-hIKTmW(%~-E=%xV?;$Ru58$eIMe^QK> zL8}L}q-p|?${@A@45}g|JSu~|8$hG5SK-gMAo|T$Y*`>R_NYkyI8>}G{b$2Rt;Kx! zA+lISf$V0n0%)?1u}?zTmeN{=k{O(XW6R@gyC^k+Z2qj-!76p z#pNrX*t?2kMdnSBGGUf9H-$cupUd~<8}j$^klZPUrDxJT>AFaz@1$c=N~#V%4gM4S WHaKV>pCwy`Vx)A(rq{^7Q*Qw7B_;0w diff --git a/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc b/osinaweb/osinacore/__pycache__/urls.cpython-311.pyc index 947f1857d5d9b9517fa979a55ed47f884ae878a7..b0d65953523cedf7b58458670276d8e8d30fde6d 100644 GIT binary patch delta 267 zcmdm^yGM_2IWI340}!Ns=1+6xpU5Y{IA^1}J=^31jI6QYsjOLgAW0BNiCDw6jG2L9 zH4sCP1lb8?r!5-wk$t&BiiJa4mwpd9OD6ERWtd`2sNrVj;^1H>d43nyoa`LlQfRR923 CRYnE? delta 162 zcmdm^w?~(6IWI340}%XO$Dj6@Zz7)rW7$S^dp4UWy;MCWhE(=c&MbY9JO}{U1`rkl z!%88jm|pI}?SF2qrgSecueSE7H59m<+KpU;xfaPv*R qUyMve8k1iLEaCD7>ShGu;+oCV1m##KUlS8z%%A*H%%8;*C<*`p=_oG% diff --git a/osinaweb/osinacore/__pycache__/views.cpython-311.pyc b/osinaweb/osinacore/__pycache__/views.cpython-311.pyc index 17985bb43de4cbf0f66525e4886e93346e1682be..cde3f9882b5a62638533f9d99cb514b58262f741 100644 GIT binary patch delta 1954 zcmZuyTWk|Y6rHhSXOneo?6vc79D9R9fnBDsZ+l$$KZ?HWKV9FxeSwp}80k-!?oB=1(u>=Br%zh7WbgpeE{`Rgl zPFE_R7CD2B7@6Rh$_N3dN8bj2K#lEs^u6x@YW9t*DlzLsDc^6ZYHS@rem@8Ip=Um` zp*=Lm3$a<2YmIX;W-cV~=%~-yuP@TmMVd3?nG*^CcpF~LBFL!~I`!g_e+i&5eB30~ zj)~)^(xgu!ePW3Z)wfsXga7I`skv|{96c|))t1H!1I~h-oyG~7QA;;0Y-k3_J zDh!$GFKb?@QnJhg>_DiLtwL)6TZuzM3Sf-f&&}x@%b#Quy)TaDjZE^t`-Z zf|tO&(hn{{hh;2bLRU@?I}+q^J}iV{v$Q7|$?8YPM!lnh-r;H2$gs zMg~1=8>eYFn9!eK`FJeKv$QJ~71*fI{nrCI*k*n4pafqX_aR+eHka=ag2Eh+tH7|`=*(1GDp5W>A7bM| zI2P?rm_~7NxM(m!dsyxw%hAIe7vmh7EWxqw&9S_|XG`KSUdXEO`HBkJ(omtASvA9k zu*)pT=lxIT2PFbKFJw!Ya7f_VaHY9>I44d%1lh7;P-WDiK|fCQbv9#x9Hy{M+&{94 zj0ZWMWu}>+5ac>!51q0Kvb+XArfF1n#-2KisX4huA7EnKwqZIFz&KRY&1ERr`rktdEHo z6C!mvOt<_VXTEbj>KS|3GxmT__jsfp4`$O=uY}R;mCW8{cc!M{mhFaZ)sn91 zl4`n^-_Fo`?&v<(iF*&FX_rL1L`~f~Wm`>%<3W)=i+h?%g(NB@YC=ymdePumJt*zz zPiqDw&48#Gz}l56vH6HdkBAdqk(x|XlM*#4Y9?PiA&ohpz$@K~>qNzJQ7dF@L)L1Na6Tc>n+a delta 923 zcmZuvO-vI}5Pn_tR7!xwv__48bT6ol#QU{lQxYAcg!Va*!OW^ii-PV+nye7O(ug{$4QL5~?WRaa zpaV9~fj}p0!FUEX4FTK9thMB`AKj@mp!Shw^yJc@Oho`-M&V!;%5-VbidBO&qpfIi z1j;DP*wN+)i>iVK^d)Ga1VtizJ<7zAY&quIaMlS^{}?v+r3_mo`2Ff2P&m|x7D9Go zNLJz47K5TXWz*+Ja5rmq5h|;83>9?fF zR4FW9lKdSr1P;bPE!0gAQ2*SJ!40hLH-v{$f!>DQwSp`RqZ2Wq+|%#zd%FESA(y+y z)jKfk7fQQ_{q6yuCy;HsTtmn{t>d~V2+yLIu(8D^7f6=5I?ZrNPLL+zTv90GlHueu z7aEI0MvzW&@fiCWr?32vEt zJmt+%-aO^yNpH67A}t|W(D8s3<3ONab_!oEf*uE6No>ySiz{~tr?`u(xORK{#ny?I zI09A-eTHpuOm+<4$%tUPz}?8+n%F8K^e7Q^pd_)l(Kp%04@L<>faj*7I7ozs` diff --git a/osinaweb/osinacore/templates/customer_dashboard/customer_main.html b/osinaweb/osinacore/templates/customer_dashboard/customer_main.html index c0cf477f..0e47e9f3 100644 --- a/osinaweb/osinacore/templates/customer_dashboard/customer_main.html +++ b/osinaweb/osinacore/templates/customer_dashboard/customer_main.html @@ -42,33 +42,32 @@ class="w-full flex flex-col items-center px-5 h-[400px] xxlg1:h-[500px] overflow-hidden overflow-y-auto mt-5">
- +

My Projects

- +

Tickets

-
- +

Invoices

- +

Products

- +

Knowledgebase

- +

Contact Us

@@ -245,18 +244,18 @@ - + {% block modules_section %}
-

Tasks

+

Invoices

-

{{total_tasks}}

+

2

@@ -287,15 +286,18 @@
+ {% endblock modules_section %} + + + {% block content %} replace me {% endblock content %} - -
-
-
+ +
+
+
Ositcom Logo

Powered By OSITCOM

diff --git a/osinaweb/osinacore/templates/customer_dashboard/listing_pages/customer-products.html b/osinaweb/osinacore/templates/customer_dashboard/listing_pages/customer-products.html new file mode 100644 index 00000000..e69de29b diff --git a/osinaweb/osinacore/templates/customer_dashboard/payment.html b/osinaweb/osinacore/templates/customer_dashboard/payment.html deleted file mode 100644 index 7869eb87..00000000 --- a/osinaweb/osinacore/templates/customer_dashboard/payment.html +++ /dev/null @@ -1,147 +0,0 @@ -{% load static %} - - - - - - - - - - - - - - Hello, world! - - - -

Hello, world!

- - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/osinaweb/osinacore/templates/customer_dashboard/pricing.html b/osinaweb/osinacore/templates/customer_dashboard/pricing.html new file mode 100644 index 00000000..31cc9358 --- /dev/null +++ b/osinaweb/osinacore/templates/customer_dashboard/pricing.html @@ -0,0 +1,429 @@ +{% extends "customer_dashboard/customer_main.html" %} +{%load static%} + +{% block modules_section %} + +{% endblock modules_section %} + +{% block content %} + + + + + + + +
+
+ + + + + + + +
+
+
+

Basic

+ +
+

$0

+

monthly/restaurant

+
+ +
+ +
+
+ +
+

View Features

+ +
+ + +
+ + +
+
+

Best Value

+
+ +
+

Standard

+ +
+

$89

+

monthly/restaurant

+
+ +
+ +
+
+ +
+

View Features

+ +
+ + +
+ + +
+
+

Premium

+ +
+

$169

+

monthly/restaurant

+
+ +
+ +
+
+ +
+

View Features

+ +
+ + +
+
+
+
+ + + + + + + + + + + + + + + +{% endblock %} \ No newline at end of file diff --git a/osinaweb/osinacore/templates/main.html b/osinaweb/osinacore/templates/main.html index 0efe46a9..6a78928f 100644 --- a/osinaweb/osinacore/templates/main.html +++ b/osinaweb/osinacore/templates/main.html @@ -590,7 +590,7 @@
- +
@@ -650,7 +650,7 @@
- +
diff --git a/osinaweb/osinacore/urls.py b/osinaweb/osinacore/urls.py index 2b9e0d5e..d80e5184 100644 --- a/osinaweb/osinacore/urls.py +++ b/osinaweb/osinacore/urls.py @@ -74,8 +74,8 @@ urlpatterns = [ #CUSTOMER DASHBOARD path('customerdashboard/', views.customer_index, name='customerdashboard'), path('customerinvoices/', views.customer_invoices, name='customerinvoices'), - path('payment/', views.payment, name='payment'), - + path('customerproducts/', views.customer_products, name='customerproducts'), + path('pricing/', views.pricing, name='pricing'), path('initiate_checkout/', views.initiate_checkout, name='initiatecheckout'), ] diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index 8a8068e2..d73cd607 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -542,7 +542,34 @@ def recent_activities_page(request): return render(request, 'recent-activities-page.html', context) +def add_reaction(request, status_id, emoji): + status = get_object_or_404(Status, pk=status_id) + user = request.user + existing_reaction = Reaction.objects.filter(status=status, user=user).first() + if existing_reaction: + # If the user has already reacted, update the reaction + existing_reaction.emoji = emoji + existing_reaction.save() + return JsonResponse({'message': 'Reaction updated successfully.'}) + else: + # If the user hasn't reacted yet, create a new reaction + new_reaction = Reaction.objects.create(status=status, emoji=emoji, user=user) + return JsonResponse({'message': 'Reaction added successfully.'}) + + + + + + + + + + + + + # CUSTOMER DASHBOARD +# LISTING PAGES @login_required def customer_index(request, *args, **kwargs): @@ -564,13 +591,36 @@ def customer_invoices(request, *args, **kwargs): @login_required -def payment(request, *args, **kwargs): +def customer_products(request, *args, **kwargs): + + context = { + + } + + return render(request, 'customer_dashboard/listing/customer-products.html', context) + + +@login_required +def pricing(request, *args, **kwargs): + + context = { + + } + + return render(request, 'customer_dashboard/pricing.html', context) + + + +@login_required +def customer_products(request, *args, **kwargs): context = { } - return render(request, 'customer_dashboard/payment.html', context) + return render(request, 'customer_dashboard/listing/payment.html', context) + + from django.http import JsonResponse @@ -581,7 +631,7 @@ def initiate_checkout(request): api_username = "merchant.TEST06127800" api_password = "37846250a67c70e7fe9f82cf6ca81f93" merchant_id = "TEST06127800" - merchant_name = "admin" + merchant_name = "Ositcom Sal" # Data for Initiate Checkout operation data = { @@ -589,44 +639,30 @@ def initiate_checkout(request): "apiUsername": api_username, "apiPassword": api_password, "merchant": merchant_id, - "interaction.operation": "AUTHORIZE", + "interaction.operation": "PURCHASE", "interaction.merchant.name": merchant_name, "order.id": "123", "order.amount": "100.00", "order.currency": "USD", "order.description": "description_of_order" } + - # Make request to Mastercard API - response = requests.post("https://creditlibanais-netcommerce.gateway.mastercard.com/api/nvp/version/72", data=data) - - # Check if request was successful - if response.status_code == 200: - # Parse response JSON - response_data = response.json() - session_id = response_data.get("session.id") - success_indicator = response_data.get("successIndicator") + try: + response = requests.post("https://creditlibanais-netcommerce.gateway.mastercard.com/api/nvp/version/72", data=data) - # Save success indicator in your shop system for further processing - # For example, you can save it in your database associated with the order + print("Response Content:", response.content.decode()) # Print response content - return JsonResponse({"session_id": session_id, "success_indicator": success_indicator}) - else: - # Handle error - return JsonResponse({"error": "Failed to initiate checkout"}, status=500) - - + if response.status_code == 200: + response_data = response.text + parsed_data = dict(item.split("=") for item in response_data.split("&")) + session_id = parsed_data.get("session.id") + success_indicator = parsed_data.get("successIndicator") + return JsonResponse({"session_id": session_id, "success_indicator": success_indicator}) + else: + print("Response Status Code:", response.status_code) # Print status code + return JsonResponse({"error": "Failed to initiate checkout"}, status=500) -def add_reaction(request, status_id, emoji): - status = get_object_or_404(Status, pk=status_id) - user = request.user - existing_reaction = Reaction.objects.filter(status=status, user=user).first() - if existing_reaction: - # If the user has already reacted, update the reaction - existing_reaction.emoji = emoji - existing_reaction.save() - return JsonResponse({'message': 'Reaction updated successfully.'}) - else: - # If the user hasn't reacted yet, create a new reaction - new_reaction = Reaction.objects.create(status=status, emoji=emoji, user=user) - return JsonResponse({'message': 'Reaction added successfully.'}) + except Exception as e: + print("Exception:", e) # Print exception traceback + return JsonResponse({"error": "Internal Server Error"}, status=500) \ No newline at end of file diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 0239ea8b..c799203a 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -686,6 +686,18 @@ video { right: -10rem; } +.-top-10 { + top: -2.5rem; +} + +.-top-12 { + top: -3rem; +} + +.-top-\[54px\] { + top: -54px; +} + .bottom-0 { bottom: 0px; } @@ -887,6 +899,10 @@ video { margin-top: 5rem; } +.mt-24 { + margin-top: 6rem; +} + .mt-28 { margin-top: 7rem; } @@ -911,6 +927,10 @@ video { margin-top: 1.5rem; } +.mt-8 { + margin-top: 2rem; +} + .mt-\[-50px\] { margin-top: -50px; } @@ -1075,6 +1095,10 @@ video { height: 8px; } +.h-\[90\%\] { + height: 90%; +} + .h-auto { height: auto; } @@ -1124,6 +1148,10 @@ video { width: 180px; } +.w-\[20px\] { + width: 20px; +} + .w-\[22px\] { width: 22px; } @@ -1188,6 +1216,10 @@ video { width: 50px; } +.w-\[550px\] { + width: 550px; +} + .w-\[55px\] { width: 55px; } @@ -1484,6 +1516,10 @@ video { overflow-x: scroll; } +.overflow-y-scroll { + overflow-y: scroll; +} + .truncate { overflow: hidden; text-overflow: ellipsis; @@ -1729,6 +1765,10 @@ video { border-color: rgb(202 138 4 / var(--tw-border-opacity)); } +.border-r-transparent { + border-right-color: transparent; +} + .border-opacity-10 { --tw-border-opacity: 0.1; } @@ -2828,6 +2868,12 @@ video { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } +.hover\:scale-110:hover { + --tw-scale-x: 1.1; + --tw-scale-y: 1.1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + .hover\:bg-gray-50:hover { --tw-bg-opacity: 1; background-color: rgb(249 250 251 / var(--tw-bg-opacity)); @@ -3111,6 +3157,10 @@ video { display: flex; } + .l\:grid { + display: grid; + } + .l\:hidden { display: none; } diff --git a/osinaweb/static/images/.DS_Store b/osinaweb/static/images/.DS_Store index 1ea60b3524c0c1e161b686f13bb023500a8f011d..8f913dc81e6f9b06d67b198c17af4c9a0a981bf4 100644 GIT binary patch delta 226 zcmZoMXfc=|#>B!ku~2NHo+6{b#(>?7i$5?kF$!$vVOq^7$;*(>P|T3YP{NQ5WaTo% zGvom2bcX!N4$PwUIAs}%bMswXl5+Bs7#J8h7)lRs5O{FZ5y-}?BZWjAo0l*zX57rq g!OsEo!RCj|-B)qu~2NHo+2a9#(>?7j69opSXMJ`E@zv-xUt~?(`I%Keh#3T&4L`? WnJ4p$IC3xm0V4wg%jO7?HOv5W-4Kib diff --git a/osinaweb/static/images/icons/.DS_Store b/osinaweb/static/images/icons/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + + + + + + + + + + + + + diff --git a/osinaweb/static/images/icons/checkmark.png b/osinaweb/static/images/icons/checkmark.png new file mode 100644 index 0000000000000000000000000000000000000000..64004a4433b9026a3619e1a6b699d6baaf89c8b9 GIT binary patch literal 2459 zcmV;M31s$(P)Xn4_v4;>?lmyP5JL>{e+*qKLlx7O z7bR@An~8WbK&2oa1x5igG=R>5_$+}=u;4>In)7hi;h$Z)7JlV10L_Zad;06ld^Z7e z08BA4SODk%)7ogb<(GMK5I`ORP&&2#2GyZ7Fz_7!u59%Y=$=TZWoP!D$+6{1(d1jc zT^R3m{)icV2CmDMUO>zR@ZTK(x7W9*w}&yvhgt!mcId|)%E3yP<8?MVur5g z0lY*^uY!4h#X-w)L0KQSL4};!U zh#&8>JDxv&V12iB7xRnh0F-=znBobTRX)Sh)4q05~h}t^uY3;F`YN1y%hE zfN^qd^rGn1zI*Jwwtwfsxod&p0F=};Ic@Ry+W@9Y#0=oUXejVF{s->*U<}U!YP@eF zbS|D5jj?bbkUO`GqKBMCe1)#jDVSxbOFPD-p7H-*M z)Lo_7ZJ=>V1()uCkSP*T(66oid38G{~;hCZ8%M{TV-%-+47 z7~ZRW!s5!x#?Kj5lQ97HczhLra*1e9EHt{=sG(fr>KxNTzygWrTt~;|UZZ-_24Kn* zUjYLTNJM9$@X~xIDSEiP{vQCeTq-2mY(`hw09 z_`Q(l`RlQ_Ibp^~E~u#TRWgYeaP?y83Y}^~TVSP%q#FRC@FGcb4>bE$vqrLIlBaHT zf@n8@F%t2=6czK29^Uea72W!;0Ar4%b$9gL4QH(wvPwx!lQT~C-x5$M5%;jd3p?Kl z{KKk#X#gs}+;|-bRmttdyxXcFYcwmic>Gsj)JTMaiI&9LTi?vaf;0eqLc1A&n%bN9 zWn;`NF3+j;0Pd0s8LMK!mKUs!RkkLieCiiV0BGU+Ir(NLo( zv_yb4Ft^3Rt$&mClYayi8kyR}U73ttVc_C}09F9Bl359tdHwT^j4k#0Z(*iq<-YM- z35Vm}OgEye+V@pbu%E#`0vbW|PDQnEf~>DJ0L)aF+J=ipE?}T{J%AB|8io_|%Wkhv zHno1r1W#jy!u%ri=K4Nyr;+lSB9wbE=o>~rfnb^??JL#5>_}}hQ$1o?QN+Pa+g+Z9 z`(z^~dFn>15WfddBoUjM>zTPk;*s=Pm-fdE@x}#|!;x+)6B_b8TQ|>C?RVj8! zO_MVY+wTBOl8otQfjdmi^_03X!;JH?uJT!c=|XawU@A6hKN4&^LIU#v$Wl{KizHI<~MbcL=(YIm;0|$)S9w6l@G8F(Q;-lmy0#~B8HZ?cUA#yOVj|g`G zkiD}6rgddi4G+0IpR5D(-BKl1=K6jgD^l8RA|mT94}gGd${6PAES_k_mq;+MhXm$9 z{v?11YXDj)A8l=}FYOpR89;JHsP~xbv~)v88UR(r2Rcs8HtSI2U|=5!+zy=}NUZ?7 zqUERjW^Dn0s%nxo4F6ScnJf*!(e~Dl0CY+`n`gx-Q$et}uK#p6Q%b%;pf~jT>#hbF zcs-?&FmIBlZnPE03zf4$FQq$zL>g1r=VQ`*s+4NkW#5hmgZ~)&+ z5fFAn_deaDH%|Wv*xQ^SV4FlzY>UTrR%ynF1Ot17f|&p|0oWvjQf*+Hw(xvcFl9}XjDaTrh!u|61n_>Dj0l^`sv0s@XmZWK#jlsin7RJ=p)Dtj z=rO#;uc-D-&;-2;V3bam$D)N}ew_DBlUdC+_k~ky8CWF~Gw8`!sHM)RI#Wkv$~?Z= z1lo<%#l{tF`$)sm3@5=XQ#RA@hQ?cU-gy9c-F8m7-OTQ==|fU(kH40|+oAvZTn6xy zgu}5RSEs|qdFqDS$tXGfTz?Rrh2E3UPZx;Rsqw_q zR@2*xY0HZ=ySfbh8J?_EHURI3=2&QD*UIui$+9Z{93p-m`p4z2&_|#@3g+F+${WWj zPae@->DAV%r5$4@tEx5!tjrVOxsu#InH?y+bYHr3Hyv4>7Vkecr#z=q&eEe7z)=7v zai!8sC;%`P{ri8Z1z8Um-l$;>}O#AAp;LW|NYD<4E$LI`8q=_ z?`5kiXa5&)&uA!P!deh&VIaY>0s|ci;gLu%unjpnkC^j6Oq5SwF;P>+_X)fhK*|P- zB^YlKs4Y^_^_;P0+i8o(TnDj0Dh4go}ddj6(b&5&ykMBtH0O=n2`z$`C^gF~ktL Z-Y9q54WwW{wmZHD?ZK!v8RZV8R#t8*tB-VQFPC?4>_ohbZZ_S6)9 zdh=?dH)3#dAo}HkRV~03A(|1!(!J9kHTa^bIFM_%_)a>jk8KC5rZ>^0*macVoG&Ws zC8=M`6v07agBaW?y#w3QCx*z(C2+~koLhDQl;Q{z6N+A=N64t6v}l2;}@q1`Dds1Bq}*h!9f zf^&M&aH8pCr=pU}rcT123Zrj@&>y5qCi_Q0z6#ds-s^3Z*{&zhtb3+$>3d1!tzTa3 z>rN`ICKVGkj&sNM6-UHBt@O6oQxez8gct7%XwS>;JmB$|2l2~2q+Jl$Jhg~0H6%@Y zEtBiL!2AE6OzX^ek$T4D?wwj#SKwNtkWtR!T0|j9qyTS9?Gv|`5N)ED{REv1RuVV= z-y%L17n<$2t@O5?5;>jLY8L#s_ z$~vm-^u}_fe3x3fu?~4^o4{(jdsuQ`JbW4#LUrk3Z8CkfnMxY{giGbbwu@i&5BC^| zT-&>ea}FGgYoWmqXtiqNmD^HLD2r#2fJ{!K1=iStKYB~?Kie^tX6=qYg*2Gjw1BG( z(Q?sb>^D zX@Es!I3zK;l@W$7UC2-*CLDLsqLuhOXz^LzylWgapelq&MdnBKsxUm z8d#O~zx!OOOyj&NE8W4B6V^6}=}4KYZ>YmPGXCUzyC~gJ6ERs#)TFNejW|5-Dc5Z6 zT2KUPY)W=cr5{`+TpJcQ;`YM~&BXYmY~|^cy{2QH!|D_Hx$lWc7B;$UE53wp488(c zEgg}Jz&ExP11G^A#Yv`Gqjp6_VMyU{Q6yxzDM)V`%#`<8JJSjaDLjNzWiY0 z1IAfvA~-8Rx&?Mc|9!`zqw#z;RgDm-J>wy6Cq>X^L_P-6X&>)*@-X#ZUt`sm#b{8^ zr4d%)A|kbJbxA^$ZTzEklwOs=n|vk6wy)$~$rFcrMmF@n>px*Stv-q9r#kd_*miMT z%cS+juBLii0d2%5I|~}$*F>e42?g}E1q8|hFrSJ?aZe)`1iSPz12a$?vp$!`0Gih& z-80fO!U~H@;tsypuBkSIx(~XF=w`soOL?_mk#!a%n8H4YYxpDJZ8rM|<^`cz`vtn$ z8`<*?aCshfaFid|HJ~gmU(4mc9)_x?z6?dG_S)pH!0}SCWf`ndU{^lUi#QJlRsWT7 zgt9!V7X;h=>pg3Rih_cx4KMe*Ntai@2}e38+ux+vkb1`I;Vm_tiJczdGo@|1e!bXQ zVLG{Otj=-5G)TQBo=vu%9!5kc)O8(XX#pNBM6G;Cj#66{@se-2)*>AD6VtWFG{jLTEL%L;YSxV$5(!sLvo-8^a=(W* ziEcK16WCuKl9idRn#OJ5e8SS|iz2sJ{pSSgnRuVBt22h5g*}MdFnbgDI~!B2R27Pw z!7Z)XIPs(^q7X~7yP!t|?A~H{(sdDo(fl;(lhG4dyn|TdnUcB2tn*+dqx&jd3P{&L?7|-T*&|| z1if*x+~{s(Y)*UoWZjq}vPd*4GmO@*W3(htLeTrkvw*B}d533%rfV!V zGa0598hgrG^!@ptI>bfL)fbOBfTd0FSB!&qSf*F8B_EMjhFd5%qjI|WGZ~S-{vY;XHzD-nW(KZ40H1T)f%=u0CUA)O^c{*BG}Dq!;7ms81ZKv?GJa63c- zXWpKmxbn((l1!)VExD!9NGDzBtXZmr=2vEqK!M_`B^9qb~M1gf$ z{K>~!&;tk;;G-%B>iKfher=LqQtN~VveYxJD0O6ljQq4J?}TQOdKY~j1!C-EPBIlt z>!IDe7>L3|gcx1T!|MpPv@4icr67#~U4P(opwwj2K!yTqEj8|!z0p1N0 zMFh6fn;i+enkZWS?{-TNLbBFb?~-@bQ*g0fvHKS#QEs99H%z*Yd5b3%=!kn;u;ap3 z+o=}YfC!=N3488|-8MN3;*GNq#pL`mIq|Wvey=ai=~%YB21~+bE`fm zzUPCQsHjgMU7>uNlENNjISVwsYJ((s-E21e^4HCY)Q<_WSX{a5^BZ6up;S}*fq$`X z*#()enpU)7g_70lNNU*K!UKbupmsWj5Yd<8v)Gm{+^9n}E(BbSZEWgg@3DTT3fG*M zIZAUjm?C5vEN5Pa7yG2b-sQ=6SS4c8AquaN*F_FS5V~fI;yY_X+oU98>EsR0&De-C zNWZLrE64AfI7!yole}k1ect}^WXq}Ti3azazz||9PM!huS#c>`Ecv1AchiwthOaF( zclvB;n_>Mw{LMtSHBf_0h2WeVHWv7t)}!>9IyiA~-wK@QqY`ZgMf-GlLa&G{@oPYw z!Oi9~EZKBF;79y?)(oG;ME#veSg^!MnZuR;Zx^|8ApHRyS%Qc;QNPAw;_4%^byK7J z%cUDajb8|f$>aFtTZVrt?M{|YOst0o|8J}E^Yiy^uR1UwVDqVLe%Lz+{mAx>nPdI% ze{f-yd?ORTt$feKM!L@aOr;f#13BTa@SGq6i(~1oJs{h=^c>|d-<3BBBoAi5^R~=)b zeK2(ICL(=nDkH7*Kr*b}CV-0B_&ubK-CppEJ+dY`pYiJ3xN}_mH3}sWgmF$P8f6v& z_dm7hPa;KmjNYz01c?Xly*qa|>kvAcBmdPv?eZDdq>BVwTeE!>WJF{)#Q{1bv314R zS1cXAx^01U0bXtnkZ_;-XuZxIq=PhkcUb7UCA`Gm4T5?-#dqs|H%o;6S{`!yeH(cH z^fDGE|Du^tr}gJ)#ugHwBE}5m$UfgH^RbM*>o*dp3Fib^4{`XOxD;6B$;6lO3zxEo z)n6C3rqq(_!R0aOLDzS3?*~KD|L|0s<@($$QtrKjo1|cDgxg_bPmQk)OtPwwZ=;xb zUCb7?M(VeW83M@ee9$qzmuXWC?s#&WMlZlC!nvv$pT`2SS`v%%WQ}qr$evq(Ic*xz@)326uxJ_;YOEUN1`9@ME49 ziS}_iUZv`+_P%}-y5j(}tIvBTU1y0*JBxoYT#t0R^Uu_euS9>kb^#u0J=OiRU?+{J za%TApGu`^N#n{c81i(=9IO6lxH!a6q=PgzUXx>u=Hcyz&bRQA@#IwAm;Ebx zws?d3(}-SN+4}j~BXr&si1u)J&uJw>6Fh_gd~pK-Mg+fV(0%(Fum^8K=Wp<>#pAFP z6O^-Hy%$zL?Eb!Vasl4t;kVQxAvbSA+snO`{xF_C=cV4#ZGo5ddD_5PGS%IkjC6d_A8j8Y09wZiY{Ce|!FUMxcPUr2uELG(i00{f4*s4ulD zMP=>q`rC2g;owB&%$xhaWE>0n(L?=?*Qj7DtFi?9g}5&~QNtp-t?nd!!y{XaGHF5@ zEof#bAU4rKme>+72pBWqsmEudkP+&)TDFo5w1bDdpoLW1%?MLe(GAjL-S28BAluxk z#j7*&8Joaz(R@!x_D=EA|7gZP%?T&HDv0BAJ6OFtnZP}UW>k2QWVF2d>OrZEV*hly z4}S?YQa8R1PJ0Z*w%vJK$BYGhspOx~ttfr0u76Gmrwy;u35`y_9WD3txR!!i>=oTu z&;iDm(19EezJ$hK*3zZ4w4S;wU)BjU8DwH5D!%!1s>3j&{Wa^^=23LxIp@bJ@jLW1 ztZEnp2U z3=hsH$W}M!qlc7@p^2_UnmI)6QY@VqEI^W zIF^v-{nN@*aUJ;zXO{n}J*hoQ_y{u5t!SSO&I2c&ypv@Z&EfER;Ad}atyT08oZdi9 zD{ruuVSCKQ&Bst zOd(He|I>8ZT-5kNJ=s?@u=gf3V&k2<#6^SQ&rENW$~s+wCr<-4oD~0F?^3^Gx~Vwp zqVu{yaA@hB7kgL{aG+h4^hFi=65mH!i!DT8^Sk7cQE&5s^s&3*7Excm?Dd#c(*&ay z|EtVuir)6!_|x66w_NUQlZx(-WzD4%W!>(&NO5&QP%MmOQ%U1x7`m=l)tE^oZE(Ox zW?z3UhF-d151eQ0&1Fu-Mo}>=m!R8_OwiTOf$Y##C~qIARFmp69Pi6(bfw6!VZUoV zs^XOXG3@tH=d!idL#i$Ut$xZPy-D7gEyg*y$BKbDcWxg|nfb-iR)a09Jo&rGcT|R7 zqj?Mw?3}3QI&9GC-Yhfesf}g~=lnH$Viw|h*T^0+FB?KUN2p1&TE9Y`=tG&q0Gxan zFu8m1pEqR-Az4s?dgfyc6R_O=6YmxprUgaZ^~XfvQ|PUI!ECLhx;7P%6f6e7&YjG? zE$K&p+%0hoH;WhKR62R2Y2tXrrf=E=j=`wvKF@x894s>8wbk0EePaa-Me{yVWo+fv ztW+43-Ylc+U?izZeUodaaEFQGsV*{wjrq0@m=&56rqIiAWyym5Ar7I4;ot{c$&+eRPDsw6@_9 z=Y>{+&*zcAgi7a<*S~4={#2rI(pu3%bOIMgN%+A57ue<$P7-l_C7Qt0u{*I(v~p_n z!qBUp>6x3?JN*CgVT}zMz4XYJ9gLy)^7<1S&42aM5J_L|vy! zZCZ=M3C_ivK)H$K79mN%{8=vum^MYAN}$BP0l6yHnx=tljQ$LSC1|rZhc;ni31on6 z+tFuLJU~t(;ZaQU0IDzLUS2|@v@JJS!KdL(UWL>3`|BI`Q0(R|!$+Xf=TBpk0b<6& z&4O9U&?w?PP=Y!ALDmn!JIF>g^@W)+iq+scRVOpr?angiK)}8fGuh(|g_~stylqvU zEpvfN=%5AMBNFc)sZ4o&ElEL(H_!Ed%mLV@`>ULS&*w?buTuSKap-OQqtV7q*YYfq<8t`7RBLAD~j zVK>zF`27AgKBM@@4&wkrbw@y0c(oUAg}r&Gy_|9~ne8%SE|3Y8)PbQuRraxNcXYW2 z0!Xk5F)5I~PxL4fDIlo;;lP@@N;%rYP<+0J|4v$Bq|A-WokT18T5aMi$1WMrtXtRD z0|VAJ3FpjDauY79iR1eZzqN}=?Op!9sandZLYgn$+&Z{ZSeYEsSPZG09)ljqN(aa= ziaQTSZReLn8(h8>7Fdm8>dbTtT_L?T>}YIB%56pC*@@{#V9WT@jjRH?e$`1rOD5e| zO-{HT<@8B0N5)nn6$)z+YCe~pAFT65!hR}s_f~k@x+KKAqAsk?JIHOX1GsAZzB{b= zJ)B!>#@(RGVE=)R-w*_uYZF^neO|skFfR_{r84%Ye zx!BVDV4OZlV)J;>HPrdTpXmNEx$=?9^RLL%KNxMLf&cxM&Wym1a&u*kuTCD$!4hHq zd5%pC0s+fhA(JLGShIQ~SX5tZJloH$SDMJ~D z+)A20xm=`TRjEDa#rc1`s&A!z*2u&1?_U>rXJQ-rfaSy(0ep`4KGaT(co|Cx&25JlUfTVJhrjsA;miI<*tK+O z#O*6_u8kO4{Ps3#Wr7bz(u$tg_e7_C3x^Sok^*x`s?tWxVQ2VJ8FRE`vPw_|eBC!M zx#6VSUf&ZR`~g#t&F?GA(zqElj7&JscmfaEkplKtkR-&*ZIA40Douty2XZ}m3+6yK z?!L!w{tnaV|7N+3rQ437CH_hY=RdCw+qU^q=m7-njzKeDGo1~;(M#u^lrR^GhvD}q z@l3$#L>vzwoNJr?^G?<~v%!NV;p`2jEB)o%6ZkK5z~{8G$x}25#s;QSYgPsJ33zu5 zzPwSHZg=;jok_2=EVx2-qL{_buF5sEDi`(vWWhOSv6#lx8l&@jfDzXMA-Aw~p;AtJ z`xj4;8n8jJ0&6&fY6rm1V49?*4;>6^KeDcDCF4~q`j(kySyVf)cR$RX7C6Gqvh|M8 zwTEH`==#mqQnO2Q;9zfjSh$oQtn;!ST}fK)ITFXv zOQqw-=8R)(Fr}CjH&Z}5h%Q->csyK!|Z4mtDo?eB0?<&=hgaL((&i2*s< z4TV?DrQHFeOc!7;7z9lEK01cC;G&MCO>Y93%jSir>~3F_(Oz1~qJC|WE$@ue3#aEF zh6=l?ST0?~FA|5_llYcMJMarw>wt0hzR|cK6qE$o-{{vz<1XF|=ns}p5^8i>0>8}L z7PaGT&zJPqF7p7VOP&|i3QxzX^fb{op;g$?(cDO zEWQW*>^u}7ua_JwnhJPKbu zoNO&)qOy(Ic!2XubC{|fCK`69E3n8-m~0;$^yD`w08oUwG~ur%RyB5uS7r%UD;kv6yjSyo6wCR4=D0!s;s~k4;I)HIknC<#17g{I!V!cL=`1or7^w6MZ!I6Zgnp}BGx`Uj&o9pD^i1=`0moHn9NN_ZNw zSoN#vR8M#Sdz>$?*;2AyDw}cK8Q{sCjH|kN<0;~%u}1rIN0BVcP?r*wY#r~Zg6Qbz z5lTZHiu2lvMunW#Jc(0&sPs>kh$PqIe|(v@)=>A^$4Xyt8`Ka$8>VL>+>jUa1;*3$ zI>qn}<}I!EF8I?ASB&37`_#!U*W-DAMaJG4|11Zq5S{&#zq(uUJwdR$FB>2K)~j5< zyQ5b-q4Nv~3#%t%jLEods(xT*^pa@GmU?%S#QO8vG~buKD}Qx?6cz7!#{T2K_6B*~ zzsU!i64JEmU?Hed_|&z9#(gtWDqA03@6Y3vLyPha@12q>x6>d4oLfusB6%lU==v(g$sBB7m)0MG+8~tO^*{~wYlBp0 zPWew@a-nTxRt&9DD=4Nqdz?CNVrrt0nW$+#-a?s%TWQ=o)4Kf$i7tHO*o~Vw>PB8} z&Kb4ym+edO^H{QUqvij^yU%;C641Y+L9y}tBQnfRR3ysZ)me3&rCU$zH0YB_|IXpH z@W&BmTYHPG>Cit^^Nhgr;zjtUV&BIsScG;}u!5}~krMOB&}f~w#Qea0QvRf<9X3DI z^1`3HmB&g;)l(PW5)0*GQ|0OC!s|%#bhtQsD@{1tCUk*6oS7Nv-u1r1uwr<^(Fy-( zIBIJOa&a~|F#Py0U?LpVhC^29j7v%SX0h&`Ow7bchGuzyq@UUHt5LhdfUpsXXj1Bs zL|nb?qm!%;CcoSHY0HO8=d+L>JfY9*j9kxQ@blB9mCOCaRM50^`kCZtJVg&V6>aqf z-RjE_gdmr69G^I>p1*5gq&zzQACh?ZDS>zDw<+SC`mqK%8I069fHOo$Du8mODIrHX z`*7&fD;p`D2lx{Ucz+W3J7xN+p(+l~-k_py?K%Ayw!t;sWvY@B(yK%a_9pwjdB3Il zcZ9|~Ag_P-rkh0ZkJ&9v&^4?e+QTeIkEK6)yaGRZtO$m66te3=oGQhx{a0?vowwWu zRQ_xY-~onfHM6Eir<}d^XJ%|;&p7)As!^er7FAiLxL2bdI^!PSGM{fPY(NX7kBb zqWmcKT?l?*4hACCdz;K|VK}on!#dJ98Ixu}pz<#lz>Cl5?03R`f3788#{MnXzM+kVm2*?}Z3LN?RIQ7vZZn{lp7G&%|_jVEY6o#B!b3t&Xj(;0x5+%oB z0v02IH4mtI5?@lm9u&hj40QhM6S@?;^)Z*7{Rv;XwrMn!a*8d_|pMEDcfJ-uYDiAutMS+PZ zmq0oG^rEGHej2Xd!ehkr!i9H=b^I^$jLfgGjc;stS1Aat*J~0X%p^MC>!3o-j^ekS z9Q&^4qjMl2r3z`3ftLAvRl_wk&w*PTLC7ItN>}*jQbrcQ8Z$^}p9^f=x(0v%ve*5r zGM{OYTpE~=)4n34`n}Qy^qD$0gX`K%B1dfUW(eb{D{BgF zDs_sBCw;r=9ma!W(nHkI+Nu)LqbdvFd!?Erl%erufg^W?>wcmzwBhq)b}3o4oF;~G zYv zdB1jfPV^2wSKa*>z{K7;K6vvnxE3wN%VL$6?Oj?i`j~u-c$Pt_e zmSDi^f0fg$6ZjT;8WZ)zipf9ekfC7kv3Ol8u>4o39+^y#7$URzV5IAeE4ZY}e4chA zTW0%E-;xvvcS`#qg8Eu)HHY0+9 z%j%HXo={uHSgAtwDUQD0GXo9g^lwmW>a`-C-`EWI(v&XMfn6!=NvFz?KQqSH$wvMoGJG)eoHj$;Gm zfs=)UBkMT!AFehT(2L<%jLK2{1^yRJA)3IljjXd5s#b3Q;pL3k{_Z0oUs9CQ=_=s9 zRFjnU<;D98xStl{=ef4 z`J&3O0^F8|F90{F8=1mrxwJZ=M-cW_)|uw zq3mDIk2oDSzhTC+l z#icXyCRZXMqZ+AZk87zCsB@wP3vX^dul!O}6cxN3K%tp-6g0WvARwG&4f~A6oQ#;P z6B-&oAE2=I$}6CA8V~k$aluT1ZVg|h!kZH9gCk4r#xm|&$xh+RZ24>%ltQJ}z^L#5 zX(m4>D0i~XX>>qJ2hL1u?BjmJ{&V>`TbvSld!t~SKF*o4 zH4Q(&H&;4afWE+-8RmOxT}p|d{^)5nicC`odOJtNE(>%)UQd^8f~9~~L4nECq`?`Skj3e}Wz?Q`qQzHxOq+k1y5Qq{;Z?;hjkxwPoW?Cb zy{w)s&F=F_0YRmspV{=y+bPARcf4zsDo>#OEtR`G4T&p4n2f9pi;Ta){gs;wS#M^a zLQ)>ISI%4h`ty+FBnYxEVl}9T}}>w6V<<>FFKG0@p@p*e$uErb?_8;qQLnG zL#~U73g`iuQHUum4$Llz_yvx+Uhfq-k|M$g&-Br-3B9lU&?G5PgbC7^UU-nI5X1{o zToRUDlSam$2*O`S%&xHpe)^Zi7th7+2VlFNnz!ndqw}~_Sm@*(@~dC>^vr|0BTo|A zr7gYnl!R*AT>^_YQi9 zG#pF!htkeQGCHIpUD13kz9fXyhH-)i(IPc)dtX6#j9;VlilDoawEp9%I#PA{zc>_n z3S&f#QPxezmbLM&SNTmd3%=So`u-5Kl=_rV;$m-SgU7_CTW6OAJTxiK9YhJ|{r+v_ z#M+!YhKFArF|+58MLmeLXoF^cA2zF{KK*bX_6Cu0Pd4#LZ;8bRosY@E1k{wZmFg6% GBmWOz4zX7N literal 0 HcmV?d00001 diff --git a/osinaweb/static/images/icons/invoice.svg b/osinaweb/static/images/icons/invoice.svg new file mode 100644 index 00000000..3502de12 --- /dev/null +++ b/osinaweb/static/images/icons/invoice.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/osinaweb/static/images/icons/products.svg b/osinaweb/static/images/icons/products.svg new file mode 100644 index 00000000..a55159f2 --- /dev/null +++ b/osinaweb/static/images/icons/products.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/osinaweb/static/images/icons/projectswhite.png b/osinaweb/static/images/icons/projectswhite.png new file mode 100644 index 0000000000000000000000000000000000000000..6d14ebb3d49a09238f4e1d84bd3cbf047e436a96 GIT binary patch literal 21757 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 AHUIzs literal 0 HcmV?d00001 diff --git a/osinaweb/static/images/icons/projectswhite.svg b/osinaweb/static/images/icons/projectswhite.svg new file mode 100644 index 00000000..08a6c93f --- /dev/null +++ b/osinaweb/static/images/icons/projectswhite.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/osinaweb/static/images/icons/support.svg b/osinaweb/static/images/icons/support.svg new file mode 100644 index 00000000..0ccdbcb3 --- /dev/null +++ b/osinaweb/static/images/icons/support.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/osinaweb/static/images/icons/ticket.svg b/osinaweb/static/images/icons/ticket.svg new file mode 100644 index 00000000..dec9577a --- /dev/null +++ b/osinaweb/static/images/icons/ticket.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/osinaweb/static/images/ositcom_logos/osicardblue.png b/osinaweb/static/images/ositcom_logos/osicardblue.png new file mode 100644 index 0000000000000000000000000000000000000000..c698f37fa150f3cb1077a7a1b99681ac8a169fb3 GIT binary patch literal 2442 zcmV;533c{~P)002!01^@s6P-K>a00009a7bBm000XT z000XT0n*)m`~Uz6JV``BRCt{2-Az*4JRHYy^_gc+Zvei)lXT%V=?S1GAYDBR&(PeU z=?R)XGg+`AoS@+Zgmo58xj@1VniKGh%0EmR5?g+eElc0e4AU+OjfJhBBw)Gx!uITjiRE$XOfntr3yTX%LpUZWm2jqN;T6UE7JQ_p$oapzew?uh*R&wryjI$Bo`m%XZfmhoQh zQXx!QT1i$#-yG+8d#CET{LZEPj-0)^;&g+jpB6kNDvmG9`FNQ259Hp||K`HpB{oKf zn66kxMS?wwldgQfkI$`f*#r>iyL4SO%<6;$5a_#%%0)c~`mB!U=IY_{O;tb3=pDLL zn2W%}Tszh+J*gy($#C;`Ps3bE&wVB%5VeZpM2{9NJq>du_l&M^SJEgn7R8AUyB{7u zx0|wAiiu!?bJy(<#yk3Bai|lD#UI%s`i+s?dApyN+cZ zfr(*2jiFPyU#yd!xv#zQG}l>WEIsoO%VtDy?RC`D2%6(`xlDX27n2^kX>f%mvo|0& zN@x|U_4`FeJwoZ3?{o0|pM-rVJ@Z{hfsBR~LD}rrkxrKvOai@@9#;z;8}tT3EW0{Z zKX~&17Id64yc~K1{FGk$K^M{(#-IAW^wLuUU0VCRJ3lNdu!C$2)iCT%BlB<>_`ICd zRIbT`fuU?(J8G~_Sy%bPvU=#W=F(-APpCZw+t+<;`RBL6t9y^0=?fZshw&bLzowp@ z+)JR-WNj=%pr^~a3G$ZTPuY>pHQk&eHB=hSpxl9WG2S@KL{^{|tsveT?jGihC{E0F z*vThvPjcX5x#=~VtaJc?%GDa^4B?>&7l%AEcbsdA0}Uo;8{m}9VU{`}rYM*4)>jXg zm6jo=t(8Ns6#!5~<%dp{I&BTXnB*K9T5)RtK&s031t8FoiQ`KFpi(zi50{m9d>C>E z0H8i=TbpCiLkF5SD6pc$#pR6vvJGwY&J}?UG_T0{`T$x<54Bs{Q=cJs008X!Y5S}N z0v!MVyL6cMt{yI}zA7Wo0RXV4mM~WYIsgFH+}0K5ib-+Kxr^e&wa>KPIT2_jU$eID z*ADz#W|^PKK@?Qwjh%?AyWd*VV(Nvl~GX=yrwpUU?A3$%vu%RvATc;_C0K=@B0n zC#s?bE(iA^1iD2!)S@`i6C^IYy~x+}B)YzhqXA(}hoS}Ak9Fww4Q0YaNP2-?F90-- zK(}l;AFpih-|L{Wz^)f)i^gVP!#)DN2Fv+)qLlg|>(YY|#mPx1*9x?V6SJ{l2Z3Ib z<$OGq2|gcXZ(rXL=zv?kFb> zbjYDeVIj}~;4nR0T}AKqZ3P?nJZ3CATgl$yQ&}#Hz!2yF-n-h9i{fO~@Py1kRb>;! z$)x12k-A}V&hR-7;T<{v)MHR`$!dpn<`A3~TF%FdC{A>!-c|F>l?u-LQipcK~RBjLhAX z_@9sTZj7>xG(e!26v81Z04!O~$9>t&ttdhrFR}ui%?Z-&TMx<_(Ps<;0%rOZENA1j z9Wvjc7Y+2gC{98x-Mm3|THxT5HgK(B(~IK7)zhXpYBpec=DSR$T}h9-h%>#MO?v!w z=*wq@Lzom-4kH+cxfbZB903bgZH4-*M5ycKY_pnH&6L^k4whsMxwElteDVF=Hd zc?;wt&rI1K_O&dDLx8dZok}^~q3{lUvRvrb4-_Kn%0HGYJ-wW*%WohTFXld_2Ds@ zWxVyPT==_yhdOm|e8{tLgS7ngrXgQE4)(QN-$~sqT^;Jn`MB$O`6{_KUHSB-A%lR( zb5(Za>za*VUg!*a=i@1txi*%O8%yuFbs{~5u6%XueZMdLCdgWU%q^~A2%oQO$qX_>F|*WZeL3j#5Ca3+14_V zbmH?~A%%8|lVPA&?`34|W1DAH{<3+qOZfc}fbx*GVa@2GWT;FEE@v|u!k5pc@5xb% z%JiUum5#o5-xvHoR}Bi(Df{lz)|bt4KGyek+0V0EHbtMyHd%!-iS*6WlaJeo0{{>f zj!y*uzykz20015!&;bDO0D%qwfCmV4002BdpaTHVc1o%L0WbRk5&djj>Hq)$07*qo IM6N<$g04lUj{pDw literal 0 HcmV?d00001 diff --git a/osinaweb/static/images/ositcom_logos/osicardwhite.png b/osinaweb/static/images/ositcom_logos/osicardwhite.png new file mode 100644 index 0000000000000000000000000000000000000000..5b387631794c4de90411a8a0d095d012fcd64daf GIT binary patch literal 2172 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 literal 0 HcmV?d00001 diff --git a/osinaweb/static/images/ositcom_logos/osinablue.png b/osinaweb/static/images/ositcom_logos/osinablue.png new file mode 100644 index 0000000000000000000000000000000000000000..487ccf1a1d3ff03149f5d8c21c18d7b084ba942a GIT binary patch literal 2030 zcmViPLu0Ra5) z2j2q#_=8Xe0FMyL0N@cq82~&&CRzi@s8- zrd+&8; z@jm)9KUn;~+GTlhW!W~f)qFB5@pmueoDJdkcF5D#@6Y);*#;+}EMMwSDRmuO3zYXp z{_>;xbX%%!1_AV5?z6m5o(8jX(t*;)`Z}^hQ*uoDLN?6u zLI-o1yQiLS`DI;GmOx%48pzx94`G(&h0)bkdMf`!6v+ForCmZOU){_15w$EY^xf>& zNCSDBKBqord9euO_qU_UgT9!0cvb0kcqsb=kPF(#>mzcbE9Hz3L>Hr70Pl8lzI<&-)pI>mvNWS1?`ReUP3T3z2gaiw0~-WywR2OEf}^v<+9de46&U#0i~Z+lBOmKdNAsI4;w17$&Dzadv1NBRr-{somk8OI&!Q2M4iA~$@yUd*PP0#R-Da3Ht1aseJ96BJ3W?0&UvhB(B)^z%3 z+p@f+zF``2s+bzqBSt7N{RD=1G2cO}XL11I8YY*jAZ@*DZ$hFPng1O{uxK_yX ziBLj$-5D>9LYYu$PuUpwgSYJS%v%Gi+Z2jaH5~hz8-$w7|o$BP8 zROq{^p6ftXgmNolm~MQ|wFGqO&15|@kQ!kX1ao}W62@6)yd2n$Lq3O4ZeB{uKVF+I zTj&FsKHVpnp_KZjlo~6g-gU;y%R0k&gPL;lbVz+j=y7$B5e zB8$Yoi)7q#DWPwr{&XL-ScKO96Tw`et=Jjh10?;V`zAqakdyRBfZT7J4Gm~jZB zFIpxix$ZSjWuiq-UYA?{`YOpyV)sU6TvT|gdl{8Mof$6(WsgWe&q5hCXEAK57t4^q z)qJubm{AAH7idyc%UbGSrj!BK2xXuGf*Gz+z5ptUw3PA9gU@hGuVOoUjZg+0a2?ET zuO_&fPrRM%ljX%M=7-FbF91gzmNG`t8$^N#Wxydv!K{1QpZQ+WL?{D}Nig%!4pyis zH$ZBQCN;Vz#;t};&(_THLeJE^PrWT*hEQ%sU-qyo>zmB-L%{TfRUX zFnSZ|9%)HmoTxFQ49XYoaVK$H@^=jMm~oCxD5tm^vx(nAc{QKVX8(`hO&-CFQ*1(+ z6YI2N0i5~+z|@a_hXiwKyPBf}<4~4`*g3(DIMFLky|si*q9Ms1xQSMv!EK#w4pvCS%!rGzo0C3lQV zJkT2?crjb^TRD$l#)kEfIG!Ny__CT$&IXV47G12j8w!1#eR|2|5X?|j$0OQ;l=>8LIIrdSt{4VqhG0hJRpK^_dS`i|gXTtdOwg}xgsuBSh6L&| z#mqKvr2KQIUs+zDOfs~W#->)>TQuCXG?d=E$VMi*t5Lo z1-`ZX&pLa15@0(amgU7|Alm^geWdQI9p$q^XA(R2Y7fPxB0LU$=$tg$K)Bpeg M07*qoM6N<$f?a0TumAu6 literal 0 HcmV?d00001 diff --git a/osinaweb/static/images/ositcom_logos/osinawhite.png b/osinaweb/static/images/ositcom_logos/osinawhite.png new file mode 100644 index 0000000000000000000000000000000000000000..925581b74e502f9f33a78f27a4ee70b82bf9f8aa GIT binary patch literal 1890 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 literal 0 HcmV?d00001 diff --git a/osinaweb/static/js/.DS_Store b/osinaweb/static/js/.DS_Store index f7367d161ebb691113037974a144a14a77b40db7..2189b430e3cd0ba9ddcfde5357895391dceaad04 100644 GIT binary patch delta 47 zcmZoMXfc@JFUrioz`)4BAi%(o%aG5I!jQ<2!%#f=Bja*L=FK*Yr`aYp7;I+e_{$Ff D^Q#N- delta 92 zcmZoMXfc@JFUrEez`)4BAi%&-%%I1R#Zc^-lb<~KAmegFkPHVyDnkK7CPOl^Y*J2s b5>O7Pg)sw28~=xb%{+{!**3Ft{N)D##+n)U diff --git a/osinaweb/static/js/customer_dashboard/payment.js b/osinaweb/static/js/customer_dashboard/payment.js new file mode 100644 index 00000000..bf70bb96 --- /dev/null +++ b/osinaweb/static/js/customer_dashboard/payment.js @@ -0,0 +1,91 @@ +document.addEventListener("DOMContentLoaded", function () { + + // Function to initiate checkout + function initiateCheckout() { + // Fetch the CSRF token from the cookie + const csrftoken = getCookie('csrftoken'); + + console.log('CSRF Token:', csrftoken); + + fetch('/initiate_checkout/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': csrftoken // Include the CSRF token in the request headers + }, + body: JSON.stringify({}) + }) + .then(response => { + if (!response.ok) { + throw new Error('Network response was not ok'); + } + return response.json(); + }) + .then(data => { + // Handle success response + console.log("Session ID: " + data.session_id); + // Configure Checkout with the fetched session ID + configureCheckout(data.session_id); + }) + .catch(error => { + // Handle error response + console.error('There was a problem with the fetch operation:', error); + // You can display an error message to the user or perform other actions + }); + } + + // Function to configure Checkout with session ID + function configureCheckout(sessionId) { + // Configure Checkout session with the fetched session ID + Checkout.configure({ + session: { + id: sessionId, + } + }); + } + + // Function to get CSRF token from cookie + function getCookie(name) { + let cookieValue = null; + if (document.cookie && document.cookie !== '') { + const cookies = document.cookie.split(';'); + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i].trim(); + if (cookie.substring(0, name.length + 1) === (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } + + // Configure Checkout and modal + Checkout.configure({ + session: { + id: 1, // Default session ID, will be replaced with actual session ID after initiation + } + }); + + + const displayPaymentModalButton = document.querySelectorAll('.displayPaymentModal'); + const closeButton = document.querySelector('#closePaymentModalButton'); + const paymentModal = document.getElementById('paymentModal'); + + // Add click event listener to each button + displayPaymentModalButton.forEach(function (button) { + button.addEventListener('click', function () { + paymentModal.classList.remove('hidden'); + + initiateCheckout(); + + Checkout.showEmbeddedPage('#paymentContent', () => { $('#paymentModal').modal(); }); + }); + }); + + closeButton.addEventListener('click', function () { + paymentModal.classList.add('hidden'); + sessionStorage.clear(); + }); + +}); \ No newline at end of file diff --git a/osinaweb/static/js/customer_dashboard/pricing-dropdown.js b/osinaweb/static/js/customer_dashboard/pricing-dropdown.js new file mode 100644 index 00000000..8f125df8 --- /dev/null +++ b/osinaweb/static/js/customer_dashboard/pricing-dropdown.js @@ -0,0 +1,12 @@ +// TO OPEN FEATURES DROPDOWN ON MOBILE + +document.addEventListener('DOMContentLoaded', function () { + const dropdowns = document.querySelectorAll('.openFeaturesDropdown'); + + dropdowns.forEach(dropdown => { + dropdown.addEventListener('click', function () { + const container = this.nextElementSibling; + container.classList.toggle('hidden'); + }); + }); +}); \ No newline at end of file