From 7563692b8b8ab55cb176c4b152854cd91612faca Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 13 Mar 2026 00:25:29 +0000 Subject: [PATCH] Autosave: 20260313-002528 --- 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 -> 212 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 -> 1112 bytes core/__pycache__/urls.cpython-311.pyc | Bin 347 -> 347 bytes core/__pycache__/views.cpython-311.pyc | Bin 1364 -> 648 bytes core/management/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 168 bytes core/management/commands/__init__.py | 0 .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 177 bytes .../load_demo_data.cpython-311.pyc | Bin 0 -> 1887 bytes core/management/commands/load_demo_data.py | 18 ++ core/migrations/0001_initial.py | 25 +++ .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1358 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 168 -> 168 bytes core/models.py | 10 +- core/templates/core/index.html | 157 +++--------------- core/views.py | 25 +-- static/css/custom.css | 50 +++++- 24 files changed, 123 insertions(+), 162 deletions(-) create mode 100644 core/management/__init__.py create mode 100644 core/management/__pycache__/__init__.cpython-311.pyc create mode 100644 core/management/commands/__init__.py create mode 100644 core/management/commands/__pycache__/__init__.cpython-311.pyc create mode 100644 core/management/commands/__pycache__/load_demo_data.cpython-311.pyc create mode 100644 core/management/commands/load_demo_data.py create mode 100644 core/migrations/0001_initial.py create mode 100644 core/migrations/__pycache__/0001_initial.cpython-311.pyc diff --git a/config/__pycache__/__init__.cpython-311.pyc b/config/__pycache__/__init__.cpython-311.pyc index 896bb4f1b8949c96d2f1bf743293342b70a9d0e4..f9b2544b45e035e897013806253781ba6d762b5f 100644 GIT binary patch delta 19 ZcmbQwIG>SwIWI340}y;S-#n3f3IHw<1tSwIWI340}#~tteD6>1pq5}1i1hJ diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index d79d6a79890a58443ee5f65d8d558823a19e9aed..52888876997b7b1f22a0ee86871d9fc417c5b4b2 100644 GIT binary patch delta 20 acmdm>y+NCMIWI340}y;S-@K7~sVD$EUIpX; delta 20 acmdm>y+NCMIWI340}#~ttk}rCR1^R?Rt0qc diff --git a/config/__pycache__/urls.cpython-311.pyc b/config/__pycache__/urls.cpython-311.pyc index 8cf22af743397374cabf5fa358c4f52631471db9..6183b58ba48d110d811da148d0ce98b43119f361 100644 GIT binary patch delta 20 acmbQrGnI#XIWI340}y;S-@K8ViwyuWy9CAn delta 20 acmbQrGnI#XIWI340}#~ttk}rS#RdQ`vjkTF diff --git a/config/__pycache__/wsgi.cpython-311.pyc b/config/__pycache__/wsgi.cpython-311.pyc index a1b4aa75cef92df0f6f3c8f77e2be44ec1b36534..faf597c69933d5206b1b73302de00bef3a5805d9 100644 GIT binary patch delta 20 acmZ3^x}24JIWI340}y;S-@K7~4if-1iv?-` delta 20 acmZ3^x}24JIWI340}#~ttk}pshY0{Og9Q5k diff --git a/core/__pycache__/__init__.cpython-311.pyc b/core/__pycache__/__init__.cpython-311.pyc index 3f553f6185fe97866ef932cffccb11efab5e8ef0..37ebc89f6e7b5c33deb5efeb855bba07eee20e72 100644 GIT binary patch delta 19 ZcmbQsIG2%oIWI340}y;S-#n3f5&$j71tI_d delta 19 ZcmbQsIG2%oIWI340}#~tteD6>2>>fD1hW7D diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index 5e8987a0cd478c226e501b5189550e758662c560..12bb710f938195ff9bd321e547c1787673fad8a4 100644 GIT binary patch delta 19 Zcmcb@c!iOBIWI340}y;S-#n4~BmgzK1;+pY delta 19 Zcmcb@c!iOBIWI340}#~tteD7s5&$zH1y}$8 diff --git a/core/__pycache__/apps.cpython-311.pyc b/core/__pycache__/apps.cpython-311.pyc index 2fa4a49f9779402d93d4c58688d65ede2fff84d5..351ab4a5af50f67b059ea504714fa10c1d52edaf 100644 GIT binary patch delta 20 acmeBS>0#ks&dbZi00iI7H*e%-WC8#%F9eqW delta 20 acmeBS>0#ks&dbZi00ebDD>ia7G64WBCj=+} diff --git a/core/__pycache__/context_processors.cpython-311.pyc b/core/__pycache__/context_processors.cpython-311.pyc index 75bf2234fb21a6b62efc5cec11af9512dd0c9616..18c96f136d3c50cfb7a93da2ad3c9a38406b5e69 100644 GIT binary patch delta 20 acmey(`kR$|IWI340}y;S-@K9g0}}v3s|IEO 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 a251b5fb7c2b603c587f8162d643eb10596d2858..1e2f5b2c662b46de2feb2b9befd792a42f94a75e 100644 GIT binary patch literal 1112 zcmZuwJ!soN6uz^q_(yV6J8fx6LrO>rCSXG;#X~89rYWt7DKwLoL(yFvIr?!=68WKn zDH$@PkS%K`H^m+bT{33uXoCiGYbS3m>6EE=l5J?xC*8aEckg}go%A)E%>Yj6>JQ@+ z1mKrY#w3k|%Q6>E0R|YFz=A4-AO>Co96JO!PGCJYKG2E-(B>;5HI5VSK|vY_wE)?a zn$#{#|luBp*J-) zU=E}swK&Z71ge@2W5VV|9G=2Sob05owIGL4$|O^=lfH%|i!+Bny@h4os=|`*sDpjo z8~o%)c+VM2+e0R?Yu@%i)EWo?g;-?AM$PbCb_)~Turw1jOid^5LAnv;a7!D7I7|Bt z)6p>U9G0+s(`3@7so6U`x1#x;gKTFPX&CF1+3*5F7T0ijo3m5!5!Cq}5l0ED{BXk7 zEFyN7m|Lzm@aU>o+IB2b@;80k^Gjrp=)3?e?K*VFZE$EM-Jzru-D0t^&yona9!2P2 zden7sWDuRYf;B;Zdgge)o4S7~%2x~1EQOFLjS$Nq#B=$kkQIbJ_?j7csKCzBFSj+i zW)Kt8T&Qo5JulRmjESpLqv08j&6L$>e346PP(vpy^TyI@WMtyQtr3=8)jYCcSR-pj zr-U0Y(mZ;H=l=%iUB1y7!Ng}7GJ(YX%vp2t^yS&3XMsHX#qG+=J$X5hmz%5o{KCoO zAivPdF9!L=W~HypAFTz-{MnOpt*fl`l$AhPX};IB8w{XHgFeqLE2o vSE=XG#9z=Q?hv=`u5&hwLkRoeVfWv6m`Fih|0X-yIyQd``=9?f!*YKC{45i^ literal 209 zcmZ3^%ge<81a&?uGA)7hV-N=hn4pZ$LO{lJh7^Vr#vF!R#wbQch7_h?22JLdAO)I? zx7c#?Q&Mw^{WO_wai(M?=B4NBr6d(G10`27do?nz*T#%TYs-K)+l&TLgMz5gq7l#dyU7C|>SHuC-&IrWCvOwYkGb1D84F;JD K*iaE0Pz3-{*EE9w diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index f705988a223abc7b5af333902925bc196186bbf5..e1c4a32fd04b489421678e4e5b10bdb66ba107fe 100644 GIT binary patch delta 20 acmcc3beoBLIWI340}y;S-@K7KfDr&ZJ_UaO delta 20 acmcc3beoBLIWI340}#~ttk}pMzz6_2HU$s> diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 2f0989c7137f7930a63ea76fcd63516c4974e834..9bbc74529699d83a5398f6a3f84d958238c5740f 100644 GIT binary patch literal 648 zcmZWmF>ljA6nzQfrU;8!Gf}-zEkXA`@-Fsgenyo7#X^C zLrewKkw226N>n!?A%<>|B9>0PGdQB+>F)FU-n-}TJKe`t>l$FZfBq%iA^<-Osl)o4 ztU8z+0R>7j$Vs0Npcb_=E4TYL=FVH_JGAi(LifUqghac76_kk!{H3AZ6TxX2tJv^5 z8kpF)R|&!qsJf2d(fZtn+QdIyfMaAQ>&gM4WJXeQU@321gc+KgS;wewVpOU?i}wEQ zrnXyLGfTlNs<@YCOV_vV|w^VQ!u^*d*NXTJNr**@G|+LrImAN_J+ zvwe7Lv3=*$@N}bhw$WQSy%kQvI!@|TuH%hUh$T{~CE!96oTjQ1+$K)2Q%ZHHP<`ZWm8k%0`!Liw{@%1fY!tdJefM7AQl zBhn19Sa6Ea_&F0f52+#t(zs7E+?3c%aE4Gt31lN`$cK>CaWDY%0l$fN{S4(m*^98b zAQFOZ8L?*M5b8J{)dItqY^-hhUDsF{YgW-QOsAxII>p%0Y9=dd7Ae9|G&s?)vtv@? z*w|s3fmzYCyi6leblsZSXw)-0vAJ^Fb$=8ZkKM6~%pxUIZ^SlnP1|O53-h^$TMxcl z&pj%9yS|;<+IaYARqQc33p$+=>?7eip%aJUUFM01nxMCzWy{3I+3Mq}!>U=li}flaG+QI|spl4T zob~hDF>%eyxOE;8-gFVJ3n+Sj0BfPw>ijEJJ5jZcy4+QlU#Tl6>PkmVchz)jqo<{g zem>D|w6z=i>HYM}h1U1|$#c)H{hoQ2Y2^ko`uNk{{Bl3J(n+Sf$#g%t+)aMbNnYMq_I%*JNq0Rq;#`{q1K zoZG+JUbuEt>cm&O@zr)@^%Rl>0Md)F(RpB8KAS2P06puedS=OZWkMOW!1G(l6GL;A z0R;Uy__hCq=p}LW6JT$Zn>I137G9%QKox%h?+LI$Sdye3inaW&hh|#-_ZofP9$!6l Xr9HlS=yH2}4P;gNa)91vejfh;`i@)& diff --git a/core/management/__init__.py b/core/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/core/management/__pycache__/__init__.cpython-311.pyc b/core/management/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80fddc8c4fb6c302e9ef6b2b8462fd683fe85662 GIT binary patch literal 168 zcmZ3^%ge<81lp0CGePuY5CH>>P{wCAAY(d13PUi1CZpd>P{wCAAY(d13PUi1CZpdlIY~;;_lhPbtkwwJTx;8Va(um>)=dU}j`w{J;PsikN|704X~x3jhEB literal 0 HcmV?d00001 diff --git a/core/management/commands/__pycache__/load_demo_data.cpython-311.pyc b/core/management/commands/__pycache__/load_demo_data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..de564f6b1f1fed70fb1911e0636159ca3a562a89 GIT binary patch literal 1887 zcmZ`3O=}xRbXL2P)|PCyNkwCuw39R#l-d$bNuZ?!Cvp-eDRHQrmKcf{?~J6icX!m; z*|=7n;zJHOm|oLE4nCBW5-5RQ@-t*(uviGR^wgVzd&;SAc2`PF)7jZK@4a~+^X9#I zzl@9wBN#Jxf43J6g#J=Qf20%S@H0RjA&RKxAXi(~G=-;}l&df68cLySi0TgzHJJ89 zN9Za1@mMx!x{8XKzZF^3!rW!zvkG@z;!z;8w*{wxC9Om}TC{{XJORif#L%)v(Q=Av z%Q{UxKwwe_lSY_L?6ixwc`I;;WImQnhAEL`1>E3uTQ)IeF2}9djc@gBD;FmGWAGnd z0PZ6s6)zd91G$}4pZDha1c;{t#?Bzz0Sl0$GH_uUO;Md1k9C@+8JdkSlMd102+Pqt z9f`0}I!517SR;L3-_+;PHz)2Ja&RJqUY~9i5*817%to8W&)ScWn(gsTwAxP{+R5}~ z-dsT<+oyNbP5fujcb|aIrvtx7DOCWFh2yu{6IW!@<}I6exY}ZtO&qy_E4*H3tnvMO zzg_$DRdKF8dntg_c+$4;U0XDW)np)mtw;>7Fyi^s*k#lXTr4>8WvQr#hDTf$rdz_c zSeT>Cw}jo2Huu`^F9||zg%SsU&F?YrZ4ps#L{V&gI@c~QK!we$M_U$`l6%-!5^+&j zfg=L}x-B9l6P{mcA5#i0p$u0XvVp&X0*bAnb93$Uml+A9T@M^*16zXBC8L-KY5Neh zrR49af~#|Zo7{yGWEK}-a}h%IAm$~A7GHIEAQGFW=Gx~L>_&6u+kiN>+?d7mW zsSCz1Pt>GRt1Go>JiFE?wa30-1nyDb8^D9u6Kkcp_Qfb(U)mC`mf{BU0^4KQN#s2) z*$U@t)40V%omnzEtG~uT-1floN7cZxnD56S5=z0y`J<2L)UT*GBvi$PS-!FgM*L7G zjuU1mbC_gd#uDHTR$o#c$S}PwY#`IV+;CW!t=_3ru2ieVbZGd@sfPv;4L{7Rtw-yS zdZ;z^c0&WSTwfJ1R^!!;vbxlAuo8GOD6{XF6-X}1>s+k)En=}UTsA91OCb&BLXiO- zH5k9_a6)SX!==_nm}x?q9o8OAnnx+7v*65s31ADoFvqsX4$R3tb8^=_xo@64Fwg9n zXLil0eRHZ~PW@4seSW2fP*uB{f@S1d0=tFM^8zq#YnLL<e=m1KN?qlbEBejdkhQJe-P r)yaJIVtTr!X1#N z96OVT4jr@AV<#7dH3aD5v7^Tmz(KevMJI0xoGDY^k&=rvJ@Ovk-`#ufdyl^riyDG; zr}KxikV5EhA%`iLm?=!YLx{!P#V;0(W*T87Z88 zg7nO#FzPbbdQO*Gq2qf2S9(4sZeULj#-HL;xcX2MAqg@hj0_n|MyiX9w2Vk*PnjLS zGERXeyO+DxNLa#YoEa*oX-EThvYyH~8+)oV4bBbKQ;2Z}``Sl~ePTd_?iBV}Vgw3z zi|_x`SA zl<)#TdW)-%W>{|V>|^TVfgN($!EG)-+|bj!U=2dwv?;Mdf_c7Aot{OH%zbji)qqgP za-HXd7Y+#B@dILdR*&$spqCeryDmYqtV7c!UN_w3c}xPEI(^YPo`Jh;aw&?w6lg(X zOPJVjziakg%O*i`7CT)h40r|%UGiM*CpiX9J;gISuI24Ryn*X-bMGUS!*tO`C-6Dr!!WK4?S`$fo zD5^{N;s#*7<@Bba=J&~T+J8q^a6NkaMRV8hk>+4$;Dv)GIV3g&qs?bN-4FVJT+{X` zY5x0{G+V9Kr{=VTd;KFSravZv3H}0deEqyC%^hz}($c(g{LLhX)W*+Rl)F8y)L&H= zSoQ9UgQ$A)%25FQB8mOgw@tZwe_gB&dQ&SE4SHV z>sKXOY>gIIqs3KLUK>|FVD*)gJ5hb*{JV=)R_~1Jov7YnbTsq&n_<_~8 zNA>NfzRk+UxbhKeteqT0jkQ1LS))B_w4+9wl{Y8F?0jjG(Nyg<0`f+XNvbfX9Dgky z`pK;34ve*m_bjjL-@`j`5978as4NS&*mniEx4HYtM0`%0Ad3Gy_#Vh4B}vjmL6XkU c$M3%r<))-e(EH?t7L}J?3&WfLvBq)#0T&f=YybcN literal 0 HcmV?d00001 diff --git a/core/migrations/__pycache__/__init__.cpython-311.pyc b/core/migrations/__pycache__/__init__.cpython-311.pyc index 799581567d2858c54584d0675ede42b2d728f5cb..4f39c9fe002f3031350c031918a50befee5a54f9 100644 GIT binary patch delta 19 ZcmZ3%xPp;;IWI340}y;S-#n3fE&wlH1w#M; delta 19 ZcmZ3%xPp;;IWI340}#~tteD6>7XU291k?Zk diff --git a/core/models.py b/core/models.py index 71a8362..c05de36 100644 --- a/core/models.py +++ b/core/models.py @@ -1,3 +1,11 @@ from django.db import models -# Create your models here. +class Product(models.Model): + name = models.CharField(max_length=200) + description = models.TextField() + price = models.DecimalField(max_digits=10, decimal_places=2) + image = models.ImageField(upload_to='products/', null=True, blank=True) + created_at = models.DateTimeField(auto_now_add=True) + + def __str__(self): + return self.name \ No newline at end of file diff --git a/core/templates/core/index.html b/core/templates/core/index.html index faec813..a4cc4c1 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,145 +1,26 @@ {% extends "base.html" %} -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} - - - - -{% endblock %} +{% block title %}Ethio-Gebeya | Modern Marketplace{% endblock %} {% 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" }} -

+
+

Welcome to Ethio-Gebeya

+

Your premium destination for quality goods.

+
+
+
+ +
+ {% for product in products %} +
+

{{ product.name }}

+

{{ product.description|truncatewords:15 }}

+

ETB {{ product.price }}

+ View Details → +
+ {% empty %} +

No products available yet.

+ {% endfor %}
- {% endblock %} \ No newline at end of file diff --git a/core/views.py b/core/views.py index c9aed12..1bfab33 100644 --- a/core/views.py +++ b/core/views.py @@ -1,25 +1,10 @@ -import os -import platform - -from django import get_version as django_version from django.shortcuts import render -from django.utils import timezone - +from .models import Product 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() - + """Render the landing screen with products.""" + products = Product.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", ""), + "products": products, } - return render(request, "core/index.html", context) + return render(request, "core/index.html", context) \ No newline at end of file diff --git a/static/css/custom.css b/static/css/custom.css index 925f6ed..020d029 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -1,4 +1,48 @@ -/* Custom styles for the application */ -body { - font-family: system-ui, -apple-system, sans-serif; +/* Professional Design - Ethio-Gebeya */ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Manrope:wght@600;700;800&display=swap'); + +:root { + --primary: #1F6FEB; + --secondary: #0F172A; + --accent: #F97316; + --bg: #F8FAFC; + --text: #1E293B; } + +body { + font-family: 'Inter', sans-serif; + background-color: var(--bg); + color: var(--text); + margin: 0; +} + +h1, h2, h3, .brand { + font-family: 'Manrope', sans-serif; +} + +.hero { + background: linear-gradient(135deg, var(--secondary), var(--primary)); + color: white; + padding: 80px 20px; + text-align: center; +} + +.product-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 2rem; + padding: 40px 20px; +} + +.product-card { + background: white; + border-radius: 12px; + padding: 1.5rem; + box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1); + transition: transform 0.2s, box-shadow 0.2s; +} + +.product-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1); +} \ No newline at end of file