From 41cddd37ec16676bffb8f1e3d80516f63a82b44d Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Fri, 31 Oct 2025 12:28:32 +0000 Subject: [PATCH] Version 1 --- core/__pycache__/admin.cpython-311.pyc | Bin 212 -> 362 bytes core/__pycache__/models.cpython-311.pyc | Bin 209 -> 1011 bytes core/__pycache__/urls.cpython-311.pyc | Bin 347 -> 348 bytes core/__pycache__/views.cpython-311.pyc | Bin 1364 -> 642 bytes core/admin.py | 3 +- core/migrations/0001_initial.py | 24 +++ .../__pycache__/0001_initial.cpython-311.pyc | Bin 0 -> 1252 bytes core/models.py | 9 +- core/templates/base.html | 18 +- core/templates/core/index.html | 198 +++++------------- core/urls.py | 4 +- core/views.py | 26 +-- static/css/custom.css | 93 ++++++++ 13 files changed, 194 insertions(+), 181 deletions(-) create mode 100644 core/migrations/0001_initial.py create mode 100644 core/migrations/__pycache__/0001_initial.cpython-311.pyc create mode 100644 static/css/custom.css diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index cd6f855b12f4883b1ba9de01c54245c53aacd714..ee84441126cf8e65ab4faecd4df51e5ca1d57bed 100644 GIT binary patch delta 268 zcmcb@_=>51IWI340}!OHV#$mF(vLwL7+{7nJ_i9A(-~42QW$d>av7r-85vTTQkZj? za+#x;85vR;vshqS7O=ut$aE_6GDZf5)j$jZK>aMi44SMj6+wJW##^k3DY=<>FF^`` zJdS{({DRb?l1e{Kwu%0tvbWfB^HWlDii<#o-(o4wEJ?k^QIwjVSzMA@G%>}Iix(&k s(p&60alMrB4F;JDsOSL$YYW$P2H{H#!V^3$GRR(Gki7syMchD*0CPAu=Kufz delta 117 zcmaFGbcNA>IWI340}y=Q^((_3NIwQ~V1NnA_$&luOlL@8NMX!j$YqRTWMoKT3TDt` wehE^b$#{!3F(o%M&rg$S;sVi$mmIk`fWnMGTr4|TmQjlP0)qk&6|n(D09XYU!T&2!UZP4T<2w?Eiyh831;mhn zfq{Xc5_<YKxQa1Kp)#VWT}0CiH&Ww-qclP%@Fi4DQ{^o()qzw^9A}z7 zWjt`M+@obu;xnj+h@mQ`sG3S4mToBHK#EUOM*!{wzJ#jke_v2%w%! z;8wL!Ol}gBp;?+e)&6QDPjkDdIz{u)%v7ws5`K$`aBJ`j@}RAJ)7~VUd9|=U(7-g1 z` zPNUS?inD|Sp&(?tFz&5%Ws#!^}E-O+AeNC3;G9&3bnc9Rhj=Lvz$A}(c} zkoCysiAPBEaqdao7K<+9R2Wj%xbN7Z>wB^OG#Sgt85=F(I*h<@iRaepVXVD>^CEHO zV0bk~BEiKi*y1Y^Gq8x8lF2JHVzOAU1FSuH`ugnNVo#qvPIvT$uD;OI7uwJI#@yaU z&zL*D-!ZJNVf75F{k&f^4_13c^X&EcdZ$?F7Aw7CrTwyBm^;XPGL9ddh3EG=g>tu0 z?iI@I%22`Toguo;5?~V3vZ=&5+OWNvU!p6?DAXnS3nY;5O5Bq+F11I=3?GYmaL9uU imVgb@7~?*g?fm%;l`Mw(*V*32{>~3+|M?H+sN8R7iu0HN literal 209 zcmZ3^%ge<81S>LrWmp2~#~=<2FhLogg@BCd3@HpLj5!Rsj8Tk?3@J>(44TX@K?*b( zZ?Wa(r=;c-`)M-W;!Md(%uCPLOGzqX21>4E_zY6>OHV%|KQ~psG^sSNq*On(A~m_R zB)>?%JijQrxF9h(RX;huC{-U~j9x+IFAf_ZyEG@&u80Guoe_wOWr4&8W=2NF8w@fR Ku%RM0pb7xTsWln^ diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1f807fae1897c89361c99c5e868a26d00799b73f..85d8d1a0a58e12ab95ac29a4d22671222d83d85d 100644 GIT binary patch delta 86 zcmcc3bccy|IWI340}zz2V#&;%$Xme1nwgi9S~0O{v6;jL1{Cyxje(W3!KFi}BXoxN a1s27NEQ(iH6hAOC@iR4WgJ2O4&>#R%W-0Py}zer8`5jaW@lZW^F1dN7 zdhMx=_Mb^5U|A3ZPq{4wFFpBYYl6kc%$xVUH*dc0G3S-a3ZSX4c9i4!%YcQ^zrp+o z1}DIPkr)!vA_N#^R!kGCWnpZ8f|kvkx8S=o)8doNmAuEeoRJ$?ej`PnOMMuc#KIg5 zEZp+}x)acgJf7XSHw&k_QovFlcmi68p9^VzZLi>+(>m%xcH6G_UwpR+9XE%9WPo z;z}rbnh&%x)mp7~{VeE+ga_$f+S6&k2Rux*kimhF?^M4X@}S`Q5b*=m=pSZI!7A@! zw~brvpc}ytZ)55``tEIh^ENNN`qZnB>DU|7srPjB`e*t6aW}VU)g8V1?ZTb46<}V(iDoPm>4 literal 1364 zcmZ`(&1)M+6ra_{dS%J>I!@|TuH%hUh$T{~CE!96oTjQ1oHkCdQ%ZHHPf-Q6#oP5Eq{V!1Q7#*Ku^61OfEk4%~~s}guETzy!YnKoA>c! z|CpMZL_mL+PRlpL2>m0JfI>sz+l$SscSs^=|k4VB6wxYJ2mwh>6 zP1s6a0Xh0B%Et_88>QrbMYzqB#N#E*3Oks3CUHQODRvA@K~k7$;|6iCE(zZu#bJlk z(8(RJK1WUTVt6pV9fEo^GQIeJgpqaJXHRNMhV;}glZK3tBN^en5Q~o7QAND#(>piA zMx+^HvEUS;@pC3}9#TaPq;a2SxGAxj;0&RP639l>kPjiNqhJ8&1AY_l`WecBvKL`< zK_mp-GGfihA=Gg+ss)BI*;w21yRNY^)~upqm`+Labc(T~)l62_EK-D_XmFxoXUC+( zv9ZH61GA!Od6`C{=(;tt(Wqy1VsquT>;5P-9=l@|nMF#b-iU4DnzqgA7Upvgw;tSE z&pj%9yS|;<+IaYA=m{Nfc9(G8LP76tKq2MQk+Efgahls~zxB^Y15iq2p ze1hU%s@P+67IZo#*hj*3LMINxyUY_2H9@DJWy{3I+3Mq}!>U=li}flaG+QI|spl4T zob~hDF>%eyxOE;8-gFVJ3n+TO18bo->ila}J65%hy4+QlU#ly}>PkmVchz)jqo<`_ z{(P+6Xlpn2)BEXH3$5?^ljojY`z`Y<)5;BG^zo;?`Q?6crISo|lj(kPxtsi=lf2$d zUhiF8=v}zfU%GryZ>QE?g*r>Q?ozJ5xODJS`|4MJebZUI)m^+bn2pWI0|cyf_w9L< zIJbYby>RVisS{uA##h^s)e}e(07x&wM(2TX`E06G0Q9V<>X{|ul?i3g0?%(HPYlgf z1`zb;;Me{qqL;+gPk@~&H*I26ExbmrfGYk1-VGZw#C%DA2wmEeAm|;{XE&<|(H10hn@z$w-ra zq(Z8r=>wqd3Cw&zv@;p1JXwLPY6Oq!Z0u3hX`= z#n_8|dh{P;*1=E?`=RC2z>T+r?uSlR8F2VCegBf|@0wZFnyK~oHU3VOw|?hkEWg29^d0xyOei3*_u8W0*d9*vl6G*P~hQE*$f6O%O;m9IVb zDm<#~gIy;3G!s&Z{sOUg`n;H)*}IvlcvjoHmFmd& z?B`OV&mGo3c~Sp}H|8HbNE-9c)IZzYw0OXHBN{iNq!IC2d|3aOH|O`yCC&M#4sR}w zn~OxcEvdHd?GD@pt6^ZUHF#@p-T_IlD@ z=e2u>^-uT1{moy(r_0Y*`Q24M*Bj6ElDQtQt)*pcb~-H@M(HI2@k)xcP@d8DzLgKV zFuC6y=tYBU+kqQiCL38zvNGfhoR_c++X3yhel4%?b#@U<`S(R@AkqTHIMopDaCG6_ ZH`QjamZEpXqf%09zmyxV-m{y<{U3TcRJ{NI literal 0 HcmV?d00001 diff --git a/core/models.py b/core/models.py index 71a8362..c1985ec 100644 --- a/core/models.py +++ b/core/models.py @@ -1,3 +1,10 @@ from django.db import models -# Create your models here. +class Property(models.Model): + title = models.CharField(max_length=255) + location = models.CharField(max_length=255) + price_per_night = models.DecimalField(max_digits=8, decimal_places=2) + image_url = models.URLField(max_length=1024, blank=True, null=True) + + def __str__(self): + return self.title \ No newline at end of file diff --git a/core/templates/base.html b/core/templates/base.html index 788576e..bffb148 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -1,11 +1,19 @@ - + - {% block title %}Knowledge Base{% endblock %} + + {% block title %}Homey - Vacation Rentals{% endblock %} + + + + + {% load static %} + {% block head %}{% endblock %} - - + + {% block content %}{% endblock %} - + + diff --git a/core/templates/core/index.html b/core/templates/core/index.html index 0a3f404..c86290d 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,154 +1,50 @@ -{% extends "base.html" %} - -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} -{% if project_description %} - - - -{% endif %} -{% if project_image_url %} - - -{% endif %} - - - - -{% endblock %} +{% extends 'base.html' %} +{% load static %} {% block content %} -
-
-

Analyzing your requirements and generating your app…

-
- Loading… +
+
+
+

Find your perfect getaway

+

Discover and book unique homes and experiences.

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
-

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" }} -

-
-
-
- Page updated: {{ current_time|date:"Y-m-d H:i:s" }} (UTC) -
-{% endblock %} \ No newline at end of file + + +
+

Featured Properties

+
+ {% for property in properties %} +
+
+ {{ property.title }} +
+
{{ property.title }}
+

{{ property.location }}

+

${{ property.price_per_night }} / night

+ View Details +
+
+
+ {% endfor %} +
+
+{% endblock %} diff --git a/core/urls.py b/core/urls.py index 6299e3d..8e0d0ae 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,7 @@ from django.urls import path -from .views import home +from .views import index urlpatterns = [ - path("", home, name="home"), + path("", index, name="index"), ] diff --git a/core/views.py b/core/views.py index c9aed12..fff1779 100644 --- a/core/views.py +++ b/core/views.py @@ -1,25 +1,9 @@ -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() +from .models import Property +def index(request): + properties = Property.objects.all()[:6] 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", ""), + 'properties': properties } - return render(request, "core/index.html", context) + return render(request, 'core/index.html', context) diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..7cc6ccc --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,93 @@ +body { + font-family: 'Lato', sans-serif; + color: #484848; + background-color: #F7F7F7; +} + +h1, h2, h3, h4, h5, h6 { + font-family: 'Montserrat', sans-serif; +} + +.hero-section { + position: relative; + height: 60vh; + background: url('https://images.pexels.com/photos/261102/pexels-photo-261102.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1') no-repeat center center; + background-size: cover; + display: flex; + align-items: center; + justify-content: center; +} + +.hero-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); +} + +.hero-content { + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 3.5rem; + font-weight: 700; + color: #FFFFFF; +} + +.hero-subtitle { + font-size: 1.5rem; + color: #FFFFFF; +} + +.search-form .form-control { + padding: 0.75rem 1rem; +} + +.btn-primary { + background-color: #FF5A5F; + border-color: #FF5A5F; + padding: 0.75rem 1rem; +} + +.btn-primary:hover { + background-color: #e04f54; + border-color: #e04f54; +} + +.section-title { + font-weight: 700; + margin-bottom: 2rem; +} + +.property-card { + border: none; + box-shadow: 0 4px 6px rgba(0,0,0,0.1); + transition: transform 0.2s; +} + +.property-card:hover { + transform: translateY(-5px); +} + +.property-card .card-img-top { + height: 200px; + object-fit: cover; +} + +.property-card .card-title { + font-weight: 700; +} + +.btn-secondary { + background-color: #00A699; + border-color: #00A699; +} + +.btn-secondary:hover { + background-color: #008a7e; + border-color: #008a7e; +}