From 27ef0de5ae9935aa70109b7928c21ae806b982e8 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Sat, 8 Nov 2025 16:09:11 +0000 Subject: [PATCH] v1 --- config/__pycache__/settings.cpython-311.pyc | Bin 4210 -> 4276 bytes config/settings.py | 3 + core/__pycache__/urls.cpython-311.pyc | Bin 347 -> 818 bytes core/__pycache__/views.cpython-311.pyc | Bin 1364 -> 1959 bytes core/templates/base.html | 60 +++++- core/templates/core/index.html | 212 ++++++-------------- core/templates/registration/login.html | 19 ++ core/templates/registration/signup.html | 19 ++ core/urls.py | 8 +- core/views.py | 9 + static/css/custom.css | 160 +++++++++++++++ 11 files changed, 331 insertions(+), 159 deletions(-) create mode 100644 core/templates/registration/login.html create mode 100644 core/templates/registration/signup.html create mode 100644 static/css/custom.css diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index dadfaa7db630a06a9bc0da9edbc375273aefa0ed..6fe3b9f7e155824ddd13a5d57a67d7faab11f171 100644 GIT binary patch delta 143 zcmeyQutkw~IWI340}wpONAy z*Hqd3nR_*(<}D!~e|Jy6_#jso&mdRlkoeFbpIgE}G5^pI6v4^!c%`_)fW|Wdaq+gz bhj^DWi9ZmPxWFKELrn4lgD?aY2?M1880#s! delta 98 zcmdm@_(_3xIWI340}wn|@;#$(BCjOlvyJM{m{^&E88nSIOEKT)VA53D{EvGzqe>AU rP+5^Mh!6x4zc_4i^HWN5QtgU@fm}u)E?%+u8}D)^&IbMley~CScxW0- diff --git a/config/settings.py b/config/settings.py index 001b8c8..2225110 100644 --- a/config/settings.py +++ b/config/settings.py @@ -152,3 +152,6 @@ STATICFILES_DIRS = [ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' X_FRAME_OPTIONS = 'ALLOWALL' + +LOGIN_REDIRECT_URL = '/' +LOGOUT_REDIRECT_URL = '/' diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1f807fae1897c89361c99c5e868a26d00799b73f..4f83a45ebac2c49d91c523e14933b6d4ddd0bcad 100644 GIT binary patch literal 818 zcmZutzi-n}5Po)^?Ko*jAy!lbA_Jmrq!O=bRW%C}Lk0>AUXbheib7g-k?<;1;rYR{^V>mRGq6IMY>tNOf)P4dCE^98$ZwclRGs|DR`LLnWKX zsD1yMS8t0s9-7f0R~+ARV?x_PzVV6@hfynf>(H}n-ZOtS2t1lsjvd>7Gvq*yn8G0; z$G+*&k!o625c^T6kG9CE>Dxia3jByUCml162A!C>;YbOA9}o3hE}W6<2DantqfPxU zy~se_5>Rq!5%$}ayt=H)3o*W9hQZ|8GW`L13OhFSDRV3)aY$O^7Hu-V*jzEgcRZI@ zp$Lo}QRau=&<$Ydc2DOc>hTE-5$p7vT5%LG{VZVb!=Y(W-3l1M@Ox+Y@wR;E1tfOq z5o-dOFDd*1W?m8mVTPV1>vV>mCwKKHdYY`$xr`+B;>G2I%h#Xf1h-P$%5ZCj%aD6C zw#Rnzq?EjEAP*C5d;Bufwo`34({{g}C%Bv9Zic%BzLhj~#)nyBC)qnn e8ojj9%No7!c7ppU?q|3^SEagmQRRneFw7tR3EPhV literal 347 zcmZ3^%ge<81P9W8Wn=;A#~=<2utFK1ZGepF3@HpLj5!Rsj8Tk?3@J=0%sEWC%u&pY z3``8Ej43Rs%qgsE*p@LfFsue*2uNp)Vo6~SX3*q#2@=p`yv0(GSd#IQ5z5KP&rQ9> zPz16EB$t<%o9d^@dW$$>F9%u(l1Ra%_}L@PpwEzE-lF~(l5_1$}TQQOitBL&MyK=1I^PbsQkrYlbfGX znv-f*#0S(2a!j!okodsN$jEquLFNJ~dcYul0Tq2ezf&*|692_E?4`{Cad-Sb9~r^#h0H?hKb^u@WKpsK`3l}uq{_^Rq)6aR2!I1 zw>;OUZ+(t)uAs10j3+yuL)oS<%Y(1-StTl6D>FpHZr}-p?3!-dW5_;R8w`>+d*S6c zR>z{udQ~?Azf;HNJmw@j&kF|Tq-gWVp5ULe3>H?Se}LjdVk!^?E2E0;hxqVjF#6_k)_5I&a0z~ +{% load static %} - + - {% block title %}Knowledge Base{% endblock %} - {% block head %}{% endblock %} - - - {% block content %}{% endblock %} - + + {% block title %}GenZ Pharma{% endblock %} + + + + + + + +
+ {% block content %} + {% endblock %} +
+ +
+
+

© 2025 GenZ Pharma. All Rights Reserved.

+
+
+ + + diff --git a/core/templates/core/index.html b/core/templates/core/index.html index 0a3f404..0ac0846 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,154 +1,66 @@ -{% extends "base.html" %} +{% extends 'base.html' %} +{% load static %} -{% block title %}{{ project_name }}{% endblock %} - -{% block head %} -{% if project_description %} - - - -{% endif %} -{% if project_image_url %} - - -{% endif %} - - - - -{% endblock %} +{% block title %}GenZ Pharma - Welcome{% endblock %} {% block content %} -
-
-

Analyzing your requirements and generating your app…

-
- Loading… + +
+
+

Innovating for a Healthier Tomorrow

+

GenZ Pharma is dedicated to pioneering new solutions in pharmaceuticals, from research to delivery.

+ Get Started + Learn More
-

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 + + + +
+
+
+

Our Platform

+

A unified solution for pharmaceutical management.

+
+
+
+
+ +
+

Real-time Monitoring

+

Track inventory, shipments, and user activity with live data dashboards.

+
+
+
+ +
+

Regulatory Compliance

+

Manage documents, track batch expirations, and report adverse events seamlessly.

+
+
+
+ +
+

User Management

+

Admins can easily view user profiles, manage access, and monitor activity.

+
+
+
+
+ + +
+
+
+
+

About GenZ Pharma

+

We are a forward-thinking pharmaceutical company committed to leveraging technology to improve healthcare outcomes. Our mission is to ensure safety, efficiency, and transparency in the entire pharmaceutical lifecycle.

+

From pioneering research and development to ensuring regulatory standards are met, GenZ Pharma is your trusted partner in health.

+
+
+ Doctor using a tablet +
+
+
+
+ +{% endblock %} diff --git a/core/templates/registration/login.html b/core/templates/registration/login.html new file mode 100644 index 0000000..b5496ba --- /dev/null +++ b/core/templates/registration/login.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

Login

+
+ {% csrf_token %} + {{ form.as_p }} +
+ +
+
+ Don't have an account? Sign Up +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/core/templates/registration/signup.html b/core/templates/registration/signup.html new file mode 100644 index 0000000..02d0f11 --- /dev/null +++ b/core/templates/registration/signup.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} +
+
+

Create Account

+
+ {% csrf_token %} + {{ form.as_p }} +
+ +
+
+ Already have an account? Login +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index 6299e3d..697ce77 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,7 +1,11 @@ -from django.urls import path +from django.urls import path, include +from django.views.generic import RedirectView -from .views import home +from .views import home, SignUpView urlpatterns = [ path("", home, name="home"), + path("accounts/", include("django.contrib.auth.urls")), + path("signup/", SignUpView.as_view(), name="signup"), + path('login/', RedirectView.as_view(url='/accounts/login/'), name='login'), ] diff --git a/core/views.py b/core/views.py index c9aed12..5dfb17b 100644 --- a/core/views.py +++ b/core/views.py @@ -4,6 +4,15 @@ import platform from django import get_version as django_version from django.shortcuts import render from django.utils import timezone +from django.contrib.auth.forms import UserCreationForm +from django.urls import reverse_lazy +from django.views import generic + + +class SignUpView(generic.CreateView): + form_class = UserCreationForm + success_url = reverse_lazy("login") + template_name = "registration/signup.html" def home(request): diff --git a/static/css/custom.css b/static/css/custom.css new file mode 100644 index 0000000..0929bc2 --- /dev/null +++ b/static/css/custom.css @@ -0,0 +1,160 @@ +/* GenZ Pharma Custom Styles */ + +/* Typography */ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@600;700&family=Inter:wght@400;500&display=swap'); + +:root { + --primary-color: #1D4ED8; + --secondary-color: #F3F4F6; + --accent-color: #34D399; + --text-color: #111827; + --bs-body-font-family: 'Inter', sans-serif; + --bs-body-color: var(--text-color); +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + font-family: 'Poppins', sans-serif; + font-weight: 600; +} + +/* Buttons */ +.btn-primary { + background-color: var(--primary-color); + border-color: var(--primary-color); + padding: 0.75rem 1.5rem; + font-weight: 500; + transition: background-color 0.3s ease; +} + +.btn-primary:hover { + background-color: #1e40af; /* A slightly darker shade of primary */ + border-color: #1e40af; +} + +.btn-accent { + background-color: var(--accent-color); + border-color: var(--accent-color); + color: white; + padding: 0.75rem 1.5rem; + font-weight: 500; + transition: background-color 0.3s ease; +} + +.btn-accent:hover { + background-color: #2aa779; /* A slightly darker shade of accent */ + border-color: #2aa779; +} + +/* Navbar */ +.navbar { + transition: background-color 0.3s ease; +} + +/* Hero Section */ +.hero { + background: linear-gradient(135deg, var(--primary-color) 0%, #3b82f6 100%); + color: white; + padding: 6rem 0; +} + +.hero h1 { + font-weight: 700; +} + +/* Section Styling */ +.section { + padding: 4rem 0; +} + +.section-bg { + background-color: var(--secondary-color); +} + +.feature-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 4rem; + height: 4rem; + border-radius: 50%; + background-color: var(--primary-color); + color: white; + font-size: 2rem; + margin-bottom: 1rem; +} + +/* Footer */ +.footer { + background-color: var(--text-color); + color: var(--secondary-color); + padding: 3rem 0; +} + +.footer a { + color: var(--secondary-color); + text-decoration: none; +} + +.footer a:hover { + color: var(--accent-color); +} + +/* Authentication Pages */ +.auth-container { + display: flex; + align-items: center; + justify-content: center; + min-height: calc(100vh - 140px); /* Adjust based on header/footer height */ + background-color: #f9fafb; +} + +.auth-card { + width: 100%; + max-width: 450px; + padding: 2.5rem; + border: 1px solid #e5e7eb; + border-radius: 0.75rem; + background-color: #ffffff; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.05), 0 4px 6px -2px rgba(0, 0, 0, 0.05); +} + +.auth-card .card-title { + font-weight: 700; + color: var(--text-color); +} + +.auth-card form p { + margin-bottom: 1rem; +} + +.auth-card form label { + display: block; + margin-bottom: 0.5rem; + font-weight: 500; + color: #374151; +} + +.auth-card form input[type="text"], +.auth-card form input[type="password"], +.auth-card form input[type="email"] { + display: block; + width: 100%; + padding: 0.75rem 1rem; + border: 1px solid #d1d5db; + border-radius: 0.375rem; + transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out; +} + +.auth-card form input[type="text"]:focus, +.auth-card form input[type="password"]:focus, +.auth-card form input[type="email"]:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.3); +} + +.auth-card .btn-primary { + width: 100%; + padding: 0.875rem; + font-size: 1rem; +} \ No newline at end of file