From 9eb6dd3bd39a55e0a9a2776e26a301e4532bde5c Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 20 Feb 2026 18:58:50 +0000 Subject: [PATCH] =?UTF-8?q?=D4=B1=D6=80=D5=A5=D5=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/seed_data.cpython-311.pyc | Bin 0 -> 3216 bytes config/__pycache__/__init__.cpython-311.pyc | Bin 159 -> 159 bytes config/__pycache__/settings.cpython-311.pyc | Bin 5552 -> 5552 bytes config/__pycache__/urls.cpython-311.pyc | Bin 1557 -> 1557 bytes config/__pycache__/wsgi.cpython-311.pyc | Bin 679 -> 679 bytes core/__pycache__/__init__.cpython-311.pyc | Bin 157 -> 157 bytes core/__pycache__/admin.cpython-311.pyc | Bin 212 -> 1782 bytes core/__pycache__/apps.cpython-311.pyc | Bin 524 -> 524 bytes .../context_processors.cpython-311.pyc | Bin 763 -> 763 bytes core/__pycache__/models.cpython-311.pyc | Bin 209 -> 4585 bytes core/__pycache__/urls.cpython-311.pyc | Bin 347 -> 647 bytes core/__pycache__/views.cpython-311.pyc | Bin 1364 -> 3807 bytes core/admin.py | 21 +- core/migrations/0001_initial.py | 72 ++++++ .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 3580 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 168 -> 168 bytes core/models.py | 53 ++++- core/templates/base.html | 137 +++++++++-- core/templates/core/index.html | 204 +++++------------ core/templates/core/leaderboard.html | 46 ++++ core/templates/core/quiz.html | 216 ++++++++++++++++++ core/urls.py | 10 +- core/views.py | 89 ++++++-- 23 files changed, 659 insertions(+), 189 deletions(-) create mode 100644 __pycache__/seed_data.cpython-311.pyc create mode 100644 core/migrations/0001_initial.py create mode 100644 core/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 core/templates/core/leaderboard.html create mode 100644 core/templates/core/quiz.html diff --git a/__pycache__/seed_data.cpython-311.pyc b/__pycache__/seed_data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6bd706831756ac79378c37cf0d3ee7b834e327ca GIT binary patch literal 3216 zcmb_eO>7fK6dtd~j-5E+H%SdeS|N}c6k-CXl~RPNidHm*1R4re3bl-PDNgJ-><@ne zb<wI>v-5Q3ZvO2LI76x0*PNwnicD{-nga5I7vr@l9~lh|=vS+Mrb?#z4d zd*6KXc4x0QHr5k3zQ6QKY_^V&zp+y~q~gtsJ#h0gQHbJ-lZ30^m5}OnBQ1p8*r66V)Zzyjt-`iK!&^jN|WbX|U2Ac|M1oAi}4yeJtf7k&R1LsI-o z{bWNqhKtmQ5l|Xm8>8tB@K{k5qc%-fR?*a5lOAqmRaG9ftczP&{RS}By!N`dm9xL_$1HdQZRfiXPJjF{s)MD2!?DfB}2d+ zyoKwOfESEFaSbFWb{BlM86AT=#G#Xw4?zl!?Rt_@Lh&)W+P_ARi{Bw^{5sT zFJ;G*)D%@azjjZ=h{%z+rbd)=vU)bA8+wQNE>arhR{%IG^XoFVFpa>Sh89v4(qQH^ zWKHwi;yTgw47VOk85f%YHPo|);~h@Mh78?o0-OB@0D&6(4$kCbaP^%kZWvl4*q!>A z9*!n8O^q5Rg4vKHcL}o|5&-;1!640l2N=t20T)mYM9qCyG~5&_O`Av2v~(6}{wM!U zD0&NLuqZQhVWPPdQUdL!IWFBbaDXL61*V__gTVSmk$sj=beXF$fhERqu`m$aO?(pV z2ciS(%+n@55|t7b#JDReVoGFuXm%C?uR!wqSSy(DE;7ND#*Pr);?TPaRPVubfW6t=*|h9v^_p z(4EGwRU@3#!Ub=~Un(Nq@fNDs@eFHFbsByLINpMrhMym89t~H>sVgROq*I-6ZijP+ zjt(*&ui8T=lL<9s9yf;!Go+qXqo$G6LT8fNpgtUlsv%ufl`t~y7(VCthLgi)9C&MQ z0|HXj_rjNnMV>UTyL@b}dE0FBw)v({=hw#Pn^xrONK5B)LR-8qu^H*HJ{o;5A0UA> zc_MjM{A6DKX0CPXZ0pvU){xyA5`#~CjjUY1a#SsEPM&f0f9Ze}z%Lwjx7%V=+zbzDKQ{RLA8gn7`WgNzPVn2)ohF3g5a4MvR$b0zpw>Sy&GGc;t=5G(y( zKtU157Y-*Pv7vCdr_Jj$z)Mo?NF)_Cu8U_wRJy2eQG@6`6iKMz@C~AEfN*U+G_QQS zAjFKTyS0tb#SKEo4Jhw+xm@!k#Qy!CryE?`@?@deO=w{B{H#03+`)Mou=b90r@Afi M%ex6(2g4%oKO45ZRR910 literal 0 HcmV?d00001 diff --git a/config/__pycache__/__init__.cpython-311.pyc b/config/__pycache__/__init__.cpython-311.pyc index 423a6362b2322713e75da67a35e209e76169dbae..6e7673cb1e0f645d142c4246488ad3b2a328b24b 100644 GIT binary patch delta 19 ZcmbQwIG>SwIWI340}!ya&zQ(P1pq0J1Z)5R delta 19 ZcmbQwIG>SwIWI340}xbw%b&y+NCMIWI340}!ya&)CSlR1^R=AO$D@ delta 20 acmdm>y+NCMIWI340}xbw%iqYoR1^R_83p11 diff --git a/config/__pycache__/urls.cpython-311.pyc b/config/__pycache__/urls.cpython-311.pyc index 0b85e94ece283a83ff1af1d71f1b265c943eb37a..7a264139c0ef22bb019ed11e1c0194348caae441 100644 GIT binary patch delta 20 acmbQrGnI#XIWI340}!ya&)CS##RdQ^eFO>s delta 20 acmbQrGnI#XIWI340}xbw%iqY&#RdQ}b_B!# diff --git a/config/__pycache__/wsgi.cpython-311.pyc b/config/__pycache__/wsgi.cpython-311.pyc index 9c49e09df194d2dbcad4868349c9177db4b15571..d32e3016a21ea894c19dc08c957feb25371a450a 100644 GIT binary patch delta 20 acmZ3^x}24JIWI340}!ya&)CR4hY0{MO$4q0 delta 20 acmZ3^x}24JIWI340}xbw%iqX7hY0{RMg?d9 diff --git a/core/__pycache__/__init__.cpython-311.pyc b/core/__pycache__/__init__.cpython-311.pyc index 74b111269bd81aac528770a53e2f849291524d56..834ea8943e76eddb0a455283222c345876f3185f 100644 GIT binary patch delta 19 ZcmbQsIG2%oIWI340}!ya&zQ(P2>>ZY1ZDsL delta 19 ZcmbQsIG2%oIWI340}xbw%b&>mG1t0(b diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index a5ed392d6714413db63120e4233d2e96cbadb5de..863d1c70be6014a1228724140c709897ca6e7a10 100644 GIT binary patch literal 1782 zcmbVM&1>976n~>H%UZ3Ic$2n}^pj*kt>cA4p_I^2ib+e|EhRnaBIKQ^t5hG`k+w~4 zdkC~g-{NCW2_^rG6Be?}wI|=!*r%NO-pGnKYmT@h_k}jdBsS{0dY{qdY{lUV-v4)^7Isd!-r8{|ZyI9%2O^ z<6AcdZ!pUe-v5~82!C-F_isbc-lwetrtFw!NxqMDhrm+yrubc?%KdR9$|@;x<@_+z zzxM4xA;qB1x3)Be+TmMh9)N(5aR?1zh8Aa`%?;efRDQj{w|Sc6V&6h&KX8;AMR}Zw zC{kV&Wd$FlH1?zDw^5wd5lM%tYz$&Twzyl#_#Ze#A3VR_`=!W4Z?rYat5Hwf6@yV# z$lf1?{Iwj$1JR>gdz#q#@SY^yX+yi0@1PmK=u>}nyfO9L;|=O^wSk_^^a_UOnQpU& zYv^zj`C6*ol|$Sb60k%3+oJvB(F;4RSB|BlPswMCf~+o`@xd*X?IeOB;n|k z)l#A>S1LbE$|~YXIZWews-?evPSQ$9d4bS6^$v|LHO9q3`97LCzUMCgm5*;tJ2%Fg z)72~E@2J;vY1-MeY3UQ%c(~^A;d)vwHB&>`RZ^uw*@fgn_5*8?&t+U@G1vFVM}}yZ zl>S_UDmEIy=9Y1z6{Y2U8!2r%*PEBsEJZx`!>BClk!B~A1zM=QUS z^xr5QGISv%ovCX76mN~vSk||y7K-;h-4xBUR)8)oZK13(sf2Q+*hUGR(#v!AMtuXn zlxv8lYhB(%J2M$$Q}|%-(44TX@K?*b( zZ?Pt(n;80F)6nZ2$lO diff --git a/core/__pycache__/apps.cpython-311.pyc b/core/__pycache__/apps.cpython-311.pyc index 6f131d4873bc56e3763e4ed09960c6e3f34140e1..82edc20da0b20de42160dfc3453d1401147b039d 100644 GIT binary patch delta 20 acmeBS>0#ks&dbZi00eC9Gd6NFG64W8@dMic delta 20 acmeBS>0#ks&dbZi00dRv@;7obG64WD>I9Vl diff --git a/core/__pycache__/context_processors.cpython-311.pyc b/core/__pycache__/context_processors.cpython-311.pyc index 75bf2234fb21a6b62efc5cec11af9512dd0c9616..3b7e6d4a898fa3030f74b8bdc470b07dd314358e 100644 GIT binary patch delta 20 acmey(`kR$|IWI340}!ya&)CTQfe8RTZ3U_T delta 20 acmey(`kR$|IWI340}xbw%iqZTfe8RYW(H&c diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index e061640edbdcec3e5c1744466c916e7acdd2763b..93b9855bf2d0d9ab7f4c8763813a8c2c51f3469e 100644 GIT binary patch literal 4585 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 Bfmr|m literal 1364 zcmZ`(&1)M+6ra_{dS%J>I&SM!uH%hUh$T{~CE!96oTjQ1oHkCdQ$lozPf-Q6#oM~=1-7}AYwoe=&3h>36z}rW~~)fO5P4{-h1=r&HMPV zzfVm~BA|nRhVUX&zZ=1NEJDd#(kRMro?7~GlVKiARAFbK7y={g8`rq_)Wa;XDEltUWCmB zkq~sth&3ZeP{;A878u54V{Oaty2i>_vx<&kIwj51DaMXgGg(=)ND+pj!HI^Q9g`Br z#tzdA%!;PvWg3a1>()Z2BR!#4DWHiJ1dw>FOuS)~xge&2p-9tZ06jh%7)=`o)~k%rY>m)oo?Fy$ z*3WOp#5FJD)_FvD(?z&0py>SutcBjF^RHFyMAbU#a#vk`t*)G?D;+i6Rnx7Fo|by~ z_(Z$b)~@ZR_tUQyT0itB&pp5LYvy^Tl^e+D)6aYJ%l+g^CzEdC%omzVp>MZ5DOS%5y(&3}_72aL_3qd4fP$U5oDTysy1aWK{+WZ+@Yy)v7w(Cx1la0{5h{da2d4Diw zrXA9H+PpPyc^{@l}EErnduX6@|dSQ_1wE!z*wHzS!vJS zy?f5N-*?WrN2@Q|+ru0j#^2VY)9oDhUwY#nzUJWJ3=ICkArA2}m*?44U{^u*l)ZUx z*_Ze6oWPypkmm-6yx6=JF>JRI;+44AE-7Z9KKl(@WC;IMCZEhHch%mfyLt_#G&$BTUH{##&w2Ttdh z7f^s{hTItxM4|QYEdjLP+|g=dS}aC%4!lLy+aJ^FU|MZWGY&n6qU*8!S|u+Ep#!L+ z#G}rSJ?jS_jSP6$%cScWm~`*M7+-(>77sk&bPiyf*oQEQQja4 z-f{b4hdW*j?2Mk<8M!&+PzLowlwa7Ni;@q;(J#=z$HM=K%8Sn&mEHWlgbuaH?_tIz z=3<3f$+loT__G-wLBB-t7L2{<5E^<4#<^!;Jj_t;G9E!Mw_tpfY35dlybxCNoe@fnbH~J0qme=gi z+ip*}VEbn95|(X2LX);|=494uM+&B)ibV|<42k0T1HvY)=Gu+g&Dxi>oA+01pVJX*WQAo>#!AUp(4diWb{oQa zQIjgPx0yZE=&wzao3+otaP$73Yqx9Pvg=)N;G2^R$`!}fr)mgm8f`>oA2nUA{S!=X zJFC|2K4u(1c)noD1~WIismVTwU<59*9%q5hz4XM2Y-$DB4zg7xrIhv9UdG!$FJT$! zc0gq`bUXO2iFL}z_8NHEFlnO&a1e<5A7pvQx4)uFilJ}OrfJd|0w{L?`S*Z&)q!D$ z4XKPpSt?7$7A0u*gRuS$THnBVm-5UU28)}uZ^7nE2oua^ZJ*4t8M@j;p|6CCs)loH z8gd&_6%l?yumK6wuuL=TBv3F^Cp5Hcxqw+f1U9eHTDJY~Fq+afbWSJFe`h)Vltmvf z*XzU3qR2z_mM1lw8*nI_|q_(#K;rEdD7r>b| zKm{#NM$h^Rg8R8!gZFPRkozYckSqQnw(?43XwOP#vvE5pGQ^^2heZ*7!A%*%I3kKy z&4Ns;2<`%sA{nr=>pie4!c@i5KO@b0_K@W{x>%VIMMxyp5oz8^6`caUCzNUZLBe(X4~ zdaB{&5BgVU8bL0U{xEC>`|7dhe~fjJ_~1uNR(x>NdvAc`MWSdVu2mg>8I`0f)pW&5S4i|KV{wGCII=PSjbx2ZTBGk+qrWHfR~sC6jh_(Ua!x?> zlET6RCbyY{nb^G0X!8TrDA#|ae&~3^=boR|elDH_mPcMB1$^|5F z0ZF;c36G?050_YkW(>qO6^-O>#-66Uc1mb-f}DMiWW;Jlv@#-zzQ3o0Hs2u0scLe{ zN=}jJG^@K~wC;{=Ui|K|_4+yM^@{|XB(qe_ELoW)6211s%w1k!Y^PYtrdi6SDb3V0 zqdBviGN(FU{NzuhXLL`2c6Ly@AhxM!{EiB#eFvzUFksH?-4mOJB_OWe^Py&+`pG r$M+L1<9zE}4{^VB?l5WfZTR2fd4GdzEk6od(SZl-;r0_$7_$EXkL)8S literal 0 HcmV?d00001 diff --git a/core/migrations/__pycache__/__init__.cpython-311.pyc b/core/migrations/__pycache__/__init__.cpython-311.pyc index 9c833c8090679ee4c9ffd863c8f7abb0bb73a5db..cd7d6ba77dcd28ff13da80d3e5aa9746393ea279 100644 GIT binary patch delta 19 ZcmZ3%xPp;;IWI340}!ya&zQ(P7XT{U1cv|s delta 19 ZcmZ3%xPp;;IWI340}xbw%b& - - + - - {% block title %}Knowledge Base{% endblock %} - {% if project_description %} - - - - {% endif %} - {% if project_image_url %} - - - {% endif %} - {% load static %} - - {% block head %}{% endblock %} + + + {{ title|default:"Իմ հայրենիք" }} + + + + + + {% block extra_css %}{% endblock %} - - {% block content %}{% endblock %} - + - + {% block content %}{% endblock %} + +
+
+

© 2024 «Իմ հայրենիք» ինտելեկտուալ խաղ

+
+
+
+
+
+
+
+ + + {% block extra_js %}{% endblock %} + + \ No newline at end of file diff --git a/core/templates/core/index.html b/core/templates/core/index.html index faec813..efcfee9 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,145 +1,67 @@ -{% extends "base.html" %} - -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} - - - - -{% endblock %} +{% extends 'base.html' %} +{% load static %} {% block content %} -
-
-

Analyzing your requirements and generating your app…

-
- Loading… +
+
+

Իմ Հայրենիք

+

Ինտելեկտուալ խաղ Հայաստանի, մշակույթի և պատմության մասին

+
+
+
+ +
+
+
-

AppWizzy AI is collecting your requirements and applying the first changes.

-

This page will refresh automatically as the plan is implemented.

-

- Runtime: Django {{ django_version }} · Python {{ python_version }} - — UTC {{ current_time|date:"Y-m-d H:i:s" }} -

-
+ + +
+

Ընտրեք մակարդակը

+
+ {% for level in levels %} +
+
+
+

{{ level.title }}

+

{{ level.description }}

+ +
+
+
+ {% empty %} +
+

Մակարդակներ դեռ չկան: Խնդրում ենք ավելացնել Ադմինի միջոցով:

+ Ավելացնել մակարդակ +
+ {% endfor %} +
+ +
+
+
+

Ինչո՞ւ խաղալ

+
    +
  • ✅ Սովորիր նոր փաստեր հայրենիքիդ մասին
  • +
  • ✅ Մրցիր ընկերներիդ հետ
  • +
  • ✅ Բարելավիր գիտելիքներդ
  • +
  • ✅ Զվարճացիր և հաղթիր
  • +
+
+
+ Armenia +
+
+
-
- Page updated: {{ current_time|date:"Y-m-d H:i:s" }} (UTC) -
-{% endblock %} \ No newline at end of file +{% endblock %} + +{% block extra_js %} + +{% endblock %} diff --git a/core/templates/core/leaderboard.html b/core/templates/core/leaderboard.html new file mode 100644 index 0000000..f28b2be --- /dev/null +++ b/core/templates/core/leaderboard.html @@ -0,0 +1,46 @@ +{% extends 'base.html' %} + +{% block content %} +
+
+
+

Լավագույն 10 Խաղացողները

+ +
+
+ + + + + + + + + + + + {% for score in top_scores %} + + + + + + + + {% empty %} + + + + {% endfor %} + +
#ԽաղացողՄիավորՄակարդակԱմսաթիվ
{{ forloop.counter }}{{ score.player_name }}{{ score.score }}{{ score.level.title }}{{ score.date_played|date:"d.m.Y" }}
Արդյունքներ դեռ չկան: Եղիր առաջինը!
+
+
+ + +
+
+
+{% endblock %} diff --git a/core/templates/core/quiz.html b/core/templates/core/quiz.html new file mode 100644 index 0000000..d620417 --- /dev/null +++ b/core/templates/core/quiz.html @@ -0,0 +1,216 @@ +{% extends 'base.html' %} +{% load static %} + +{% block extra_css %} + +{% endblock %} + +{% block content %} +
+
+
+ + +
+
+ Հարց 1 / 10 + Միավորներ: 0 +
+ +
30
+ +

Բեռնում...

+ +
+ +
+
+ + +
+

Խաղն ավարտվեց:

+
+

Շնորհավորում ենք, :

+

0

+

ընդհանուր միավոր

+
+ +
+
+
+{% endblock %} + +{% block extra_js %} + +{% endblock %} diff --git a/core/urls.py b/core/urls.py index 6299e3d..7743aee 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,9 @@ from django.urls import path - -from .views import home +from . import views urlpatterns = [ - path("", home, name="home"), -] + path('', views.index, name='index'), + path('quiz//', views.quiz_view, name='quiz'), + path('submit_score/', views.submit_score, name='submit_score'), + path('leaderboard/', views.leaderboard, name='leaderboard'), +] \ No newline at end of file diff --git a/core/views.py b/core/views.py index c9aed12..84c4ba4 100644 --- a/core/views.py +++ b/core/views.py @@ -1,25 +1,70 @@ -import os -import platform - -from django import get_version as django_version -from django.shortcuts import render -from django.utils import timezone - - -def home(request): - """Render the landing screen with loader and environment details.""" - host_name = request.get_host().lower() - agent_brand = "AppWizzy" if host_name == "appwizzy.com" else "Flatlogic" - now = timezone.now() +import json +from django.shortcuts import render, get_object_or_404, redirect +from django.http import JsonResponse +from django.views.decorators.csrf import csrf_exempt +from .models import Level, Question, Option, Score +def index(request): + levels = Level.objects.all() context = { - "project_name": "New Style", - "agent_brand": agent_brand, - "django_version": django_version(), - "python_version": platform.python_version(), - "current_time": now, - "host_name": host_name, - "project_description": os.getenv("PROJECT_DESCRIPTION", ""), - "project_image_url": os.getenv("PROJECT_IMAGE_URL", ""), + 'levels': levels, + 'title': 'Իմ հայրենիք - Գլխավոր', } - return render(request, "core/index.html", context) + return render(request, 'core/index.html', context) + +def quiz_view(request, level_id): + level = get_object_or_404(Level, id=level_id) + questions = level.questions.all() + + # Shuffle or select specific questions if needed + question_data = [] + for q in questions: + options = [] + for opt in q.options.all(): + options.append({ + 'id': opt.id, + 'text': opt.text, + 'is_correct': opt.is_correct + }) + question_data.append({ + 'id': q.id, + 'text': q.text, + 'points': q.points, + 'time_limit': q.time_limit, + 'options': options + }) + + context = { + 'level': level, + 'questions_json': json.dumps(question_data), + 'title': f'Իմ հայրենիք - {level.title}', + } + return render(request, 'core/quiz.html', context) + +@csrf_exempt +def submit_score(request): + if request.method == 'POST': + try: + data = json.loads(request.body) + player_name = data.get('player_name', 'Անանուն') + score_value = data.get('score', 0) + level_id = data.get('level_id') + + level = Level.objects.get(id=level_id) + score_obj = Score.objects.create( + player_name=player_name, + score=score_value, + level=level + ) + return JsonResponse({'status': 'success', 'score_id': score_obj.id}) + except Exception as e: + return JsonResponse({'status': 'error', 'message': str(e)}, status=400) + return JsonResponse({'status': 'error', 'message': 'Invalid request method'}, status=405) + +def leaderboard(request): + top_scores = Score.objects.all()[:10] + context = { + 'top_scores': top_scores, + 'title': 'Իմ հայրենիք - Լավագույնները', + } + return render(request, 'core/leaderboard.html', context) \ No newline at end of file