diff --git a/config/__pycache__/__init__.cpython-311.pyc b/config/__pycache__/__init__.cpython-311.pyc index abb44a2..423a636 100644 Binary files a/config/__pycache__/__init__.cpython-311.pyc and b/config/__pycache__/__init__.cpython-311.pyc differ diff --git a/config/__pycache__/settings.cpython-311.pyc b/config/__pycache__/settings.cpython-311.pyc index 73abb21..96bce55 100644 Binary files a/config/__pycache__/settings.cpython-311.pyc and b/config/__pycache__/settings.cpython-311.pyc differ diff --git a/config/__pycache__/urls.cpython-311.pyc b/config/__pycache__/urls.cpython-311.pyc index fd771aa..0b85e94 100644 Binary files a/config/__pycache__/urls.cpython-311.pyc and b/config/__pycache__/urls.cpython-311.pyc differ diff --git a/config/__pycache__/wsgi.cpython-311.pyc b/config/__pycache__/wsgi.cpython-311.pyc index 3b6fa1f..9c49e09 100644 Binary files a/config/__pycache__/wsgi.cpython-311.pyc and b/config/__pycache__/wsgi.cpython-311.pyc differ diff --git a/config/settings.py b/config/settings.py index b84b0e5..291d043 100644 --- a/config/settings.py +++ b/config/settings.py @@ -180,5 +180,3 @@ if EMAIL_USE_SSL: # https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' -MEDIA_URL = "/media/" -MEDIA_ROOT = os.path.join(BASE_DIR, "media") diff --git a/config/urls.py b/config/urls.py index cccd18f..bcfc074 100644 --- a/config/urls.py +++ b/config/urls.py @@ -27,4 +27,3 @@ urlpatterns = [ if settings.DEBUG: urlpatterns += static("/assets/", document_root=settings.BASE_DIR / "assets") urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) - urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ No newline at end of file diff --git a/core/__pycache__/__init__.cpython-311.pyc b/core/__pycache__/__init__.cpython-311.pyc index 9aed278..74b1112 100644 Binary files a/core/__pycache__/__init__.cpython-311.pyc and b/core/__pycache__/__init__.cpython-311.pyc differ diff --git a/core/__pycache__/admin.cpython-311.pyc b/core/__pycache__/admin.cpython-311.pyc index cd3e694..a5ed392 100644 Binary files a/core/__pycache__/admin.cpython-311.pyc and b/core/__pycache__/admin.cpython-311.pyc differ diff --git a/core/__pycache__/apps.cpython-311.pyc b/core/__pycache__/apps.cpython-311.pyc index cb1b371..6f131d4 100644 Binary files a/core/__pycache__/apps.cpython-311.pyc and b/core/__pycache__/apps.cpython-311.pyc differ diff --git a/core/__pycache__/context_processors.cpython-311.pyc b/core/__pycache__/context_processors.cpython-311.pyc index 8da9bfe..75bf223 100644 Binary files a/core/__pycache__/context_processors.cpython-311.pyc and b/core/__pycache__/context_processors.cpython-311.pyc differ diff --git a/core/__pycache__/forms.cpython-311.pyc b/core/__pycache__/forms.cpython-311.pyc deleted file mode 100644 index bd29a85..0000000 Binary files a/core/__pycache__/forms.cpython-311.pyc and /dev/null differ diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index 3c08c18..e061640 100644 Binary files a/core/__pycache__/models.cpython-311.pyc and b/core/__pycache__/models.cpython-311.pyc differ diff --git a/core/__pycache__/urls.cpython-311.pyc b/core/__pycache__/urls.cpython-311.pyc index 1be8270..5a69659 100644 Binary files a/core/__pycache__/urls.cpython-311.pyc and b/core/__pycache__/urls.cpython-311.pyc differ diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index c18fba3..2a36fd6 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/admin.py b/core/admin.py index f9fde42..8c38f3f 100644 --- a/core/admin.py +++ b/core/admin.py @@ -1,19 +1,3 @@ from django.contrib import admin -from .models import Category, Item, Outfit, DailySchedule -@admin.register(Category) -class CategoryAdmin(admin.ModelAdmin): - list_display = ('name',) - -@admin.register(Item) -class ItemAdmin(admin.ModelAdmin): - list_display = ('name', 'item_type', 'category') - list_filter = ('item_type', 'category') - -@admin.register(Outfit) -class OutfitAdmin(admin.ModelAdmin): - list_display = ('name', 'created_at') - -@admin.register(DailySchedule) -class DailyScheduleAdmin(admin.ModelAdmin): - list_display = ('date', 'outfit') \ No newline at end of file +# Register your models here. diff --git a/core/forms.py b/core/forms.py deleted file mode 100644 index 0fafa54..0000000 --- a/core/forms.py +++ /dev/null @@ -1,14 +0,0 @@ -from django import forms -from .models import Item, Category - -class ItemForm(forms.ModelForm): - class Meta: - model = Item - fields = ['name', 'category', 'image', 'item_type', 'tags'] - widgets = { - 'name': forms.TextInput(attrs={'class': 'form-control bg-dark text-white border-secondary', 'placeholder': 'Item Name'}), - 'category': forms.Select(attrs={'class': 'form-select bg-dark text-white border-secondary'}), - 'item_type': forms.Select(attrs={'class': 'form-select bg-dark text-white border-secondary'}), - 'tags': forms.TextInput(attrs={'class': 'form-control bg-dark text-white border-secondary', 'placeholder': 'Tags (comma-separated)'}), - 'image': forms.FileInput(attrs={'class': 'form-control bg-dark text-white border-secondary'}), - } diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py deleted file mode 100644 index d388fda..0000000 --- a/core/migrations/0001_initial.py +++ /dev/null @@ -1,53 +0,0 @@ -# Generated by Django 5.2.7 on 2026-02-04 02:59 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Category', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ], - options={ - 'verbose_name_plural': 'Categories', - }, - ), - migrations.CreateModel( - name='Item', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=255)), - ('image', models.ImageField(blank=True, null=True, upload_to='items/')), - ('item_type', models.CharField(choices=[('wardrobe', 'Wardrobe'), ('accessory', 'Accessory')], default='wardrobe', max_length=20)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('category', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.category')), - ], - ), - migrations.CreateModel( - name='Outfit', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(blank=True, max_length=255)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ('items', models.ManyToManyField(related_name='outfits', to='core.item')), - ], - ), - migrations.CreateModel( - name='DailySchedule', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateField(unique=True)), - ('outfit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.outfit')), - ], - ), - ] diff --git a/core/migrations/0002_folder_outfit_folder.py b/core/migrations/0002_folder_outfit_folder.py deleted file mode 100644 index 129aca0..0000000 --- a/core/migrations/0002_folder_outfit_folder.py +++ /dev/null @@ -1,27 +0,0 @@ -# Generated by Django 5.2.7 on 2026-02-04 03:08 - -import django.db.models.deletion -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Folder', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ('created_at', models.DateTimeField(auto_now_add=True)), - ], - ), - migrations.AddField( - model_name='outfit', - name='folder', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='outfits', to='core.folder'), - ), - ] diff --git a/core/migrations/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.py b/core/migrations/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.py deleted file mode 100644 index 7a36fb6..0000000 --- a/core/migrations/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.py +++ /dev/null @@ -1,50 +0,0 @@ -# Generated by Django 5.2.7 on 2026-02-04 03:34 - -import django.db.models.deletion -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0002_folder_outfit_folder'), - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.AddField( - model_name='dailyschedule', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='schedules', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='folder', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='folders', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='item', - name='tags', - field=models.CharField(blank=True, help_text='Comma-separated tags', max_length=255), - ), - migrations.AddField( - model_name='item', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='items', to=settings.AUTH_USER_MODEL), - ), - migrations.AddField( - model_name='outfit', - name='user', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='outfits', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='dailyschedule', - name='date', - field=models.DateField(), - ), - migrations.AlterUniqueTogether( - name='dailyschedule', - unique_together={('user', 'date')}, - ), - ] diff --git a/core/migrations/__pycache__/0001_initial.cpython-311.pyc b/core/migrations/__pycache__/0001_initial.cpython-311.pyc deleted file mode 100644 index 3efe1ef..0000000 Binary files a/core/migrations/__pycache__/0001_initial.cpython-311.pyc and /dev/null differ diff --git a/core/migrations/__pycache__/0002_folder_outfit_folder.cpython-311.pyc b/core/migrations/__pycache__/0002_folder_outfit_folder.cpython-311.pyc deleted file mode 100644 index 88ac720..0000000 Binary files a/core/migrations/__pycache__/0002_folder_outfit_folder.cpython-311.pyc and /dev/null differ diff --git a/core/migrations/__pycache__/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.cpython-311.pyc b/core/migrations/__pycache__/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.cpython-311.pyc deleted file mode 100644 index 9e31bf4..0000000 Binary files a/core/migrations/__pycache__/0003_dailyschedule_user_folder_user_item_tags_item_user_and_more.cpython-311.pyc and /dev/null differ diff --git a/core/migrations/__pycache__/__init__.cpython-311.pyc b/core/migrations/__pycache__/__init__.cpython-311.pyc index 21a48b2..9c833c8 100644 Binary files a/core/migrations/__pycache__/__init__.cpython-311.pyc and b/core/migrations/__pycache__/__init__.cpython-311.pyc differ diff --git a/core/models.py b/core/models.py index 53a8eec..71a8362 100644 --- a/core/models.py +++ b/core/models.py @@ -1,58 +1,3 @@ from django.db import models -from django.utils import timezone -from django.contrib.auth.models import User -class Category(models.Model): - name = models.CharField(max_length=100) - # e.g., 'Pants', 'T-shirts', 'Beanies', 'Rings' - - class Meta: - verbose_name_plural = "Categories" - - def __str__(self): - return self.name - -class Item(models.Model): - ITEM_TYPES = ( - ('wardrobe', 'Wardrobe'), - ('accessory', 'Accessory'), - ) - user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='items', null=True, blank=True) - name = models.CharField(max_length=255) - image = models.ImageField(upload_to='items/', blank=True, null=True) - category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True, blank=True) - item_type = models.CharField(max_length=20, choices=ITEM_TYPES, default='wardrobe') - tags = models.CharField(max_length=255, blank=True, help_text="Comma-separated tags") - created_at = models.DateTimeField(auto_now_add=True) - - def __str__(self): - return self.name - -class Folder(models.Model): - user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='folders', null=True, blank=True) - name = models.CharField(max_length=100) - created_at = models.DateTimeField(auto_now_add=True) - - def __str__(self): - return self.name - -class Outfit(models.Model): - user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='outfits', null=True, blank=True) - name = models.CharField(max_length=255, blank=True) - items = models.ManyToManyField(Item, related_name='outfits') - folder = models.ForeignKey(Folder, on_delete=models.SET_NULL, null=True, blank=True, related_name='outfits') - created_at = models.DateTimeField(auto_now_add=True) - - def __str__(self): - return self.name or f"Outfit {self.id}" - -class DailySchedule(models.Model): - user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='schedules', null=True, blank=True) - date = models.DateField() - outfit = models.ForeignKey(Outfit, on_delete=models.SET_NULL, null=True, blank=True) - - class Meta: - unique_together = ('user', 'date') - - def __str__(self): - return f"{self.date} - {self.outfit}" \ No newline at end of file +# Create your models here. diff --git a/core/templates/base.html b/core/templates/base.html index dc9a68b..1e7e5fb 100644 --- a/core/templates/base.html +++ b/core/templates/base.html @@ -1,257 +1,25 @@ -{% load static %} + - - - {% block title %}New Style{% endblock %} - - - - - - - - - - - - {% block extra_css %}{% endblock %} + + {% block title %}Knowledge Base{% endblock %} + {% if project_description %} + + + + {% endif %} + {% if project_image_url %} + + + {% endif %} + {% load static %} + + {% block head %}{% endblock %} + -
-
-
- {% if user.is_authenticated %} - - - {{ user.username }} - - {% endif %} -
-
- NEW STYLE -
-
- {% if user.is_authenticated %} -
- {% csrf_token %} - -
- {% else %} - - - - {% endif %} -
-
- - {% if user.is_authenticated %} - - {% endif %} - - {% block content %}{% endblock %} -
- - - - {% block extra_js %}{% endblock %} + {% block content %}{% endblock %} + diff --git a/core/templates/core/index.html b/core/templates/core/index.html index 16a974c..faec813 100644 --- a/core/templates/core/index.html +++ b/core/templates/core/index.html @@ -1,146 +1,145 @@ {% extends "base.html" %} -{% load static %} -{% block title %}Weekly Planner - New Style{% endblock %} +{% block title %}{{ project_name }}{% endblock %} + +{% block head %} + + + + +{% endblock %} {% block content %} -
- -
- {% for day in weekly_days|slice:":3" %} -
-
- {% if day.schedule.outfit %} - -
{{ day.schedule.outfit.name }}
- {% else %} - NO FIT - {% endif %} -
- -
- {% endfor %} +
+
+

Analyzing your requirements and generating your app…

+
+ Loading…
- - -
- {% for day in weekly_days|slice:"3:5" %} -
-
- {% if day.schedule.outfit %} - -
{{ day.schedule.outfit.name }}
- {% else %} - NO FIT - {% endif %} -
- -
- {% endfor %} -
- - -
- {% for day in weekly_days|slice:"5:7" %} -
-
- {% if day.schedule.outfit %} - -
{{ day.schedule.outfit.name }}
- {% else %} - NO FIT - {% endif %} -
- -
- {% endfor %} -
-
- -
- -
-
- - {{ total_items }} ITEMS LOADED -
-
- - - - -
-
- - - -{% endblock %} - -{% block extra_js %} - -{% endblock %} +

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

+
+ + +{% endblock %} \ No newline at end of file diff --git a/core/templates/core/new_fit.html b/core/templates/core/new_fit.html deleted file mode 100644 index d1eb15e..0000000 --- a/core/templates/core/new_fit.html +++ /dev/null @@ -1,263 +0,0 @@ -{% extends "base.html" %} -{% load static %} - -{% block title %}New Fit - New Style{% endblock %} - -{% block extra_css %} - -{% endblock %} - -{% block content %} -
-
-
Outfit Preview
- -
- -
-
ALL
- {% for cat in categories %} -
{{ cat.name|upper }}
- {% endfor %} -
- -
- {% for item in items %} -
- {{ item.name }} -
-
- {% empty %} -
-

No items in your wardrobe yet.

- Add Items -
- {% endfor %} -
-
- -
- - -
- - - -{% endblock %} - -{% block extra_js %} - -{% endblock %} \ No newline at end of file diff --git a/core/templates/core/outfits.html b/core/templates/core/outfits.html deleted file mode 100644 index 36b7cfa..0000000 --- a/core/templates/core/outfits.html +++ /dev/null @@ -1,158 +0,0 @@ -{% extends "base.html" %} - -{% block title %}My Outfits - New Style{% endblock %} - -{% block extra_css %} - -{% endblock %} - -{% block content %} -
-

COLLECTIONS

- -
- -
- {% for folder in folders %} -
- - {{ folder.name }} - {{ folder.outfits.count }} OUTFITS -
- {% empty %} -
No folders created yet.
- {% endfor %} -
- -
- -

UNCATEGORIZED FITS

- -
- {% for outfit in outfits %} -
-
- {% if outfit.items.exists %} - {{ outfit.name }} - {% else %} - - {% endif %} -
-
-

{{ outfit.name|default:"UNTITLED" }}

-
- {{ outfit.items.count }} ITEMS -
-
-
- {% empty %} -
-

No outfits found.

- CREATE NEW FIT -
- {% endfor %} -
- - - -{% endblock %} \ No newline at end of file diff --git a/core/templates/core/wardrobe.html b/core/templates/core/wardrobe.html deleted file mode 100644 index e1d42e7..0000000 --- a/core/templates/core/wardrobe.html +++ /dev/null @@ -1,164 +0,0 @@ -{% extends "base.html" %} - -{% block title %}{{ title }} - New Style{% endblock %} - -{% block extra_css %} - -{% endblock %} - -{% block content %} -
-

{{ title|upper }}

- -
- -
- {% for item in items %} -
-
- {% if item.image %} - {{ item.name }} - {% else %} -
- -
- {% endif %} -
-
-
- {% csrf_token %} - -
-
-
-

{{ item.name }}

-
- {{ item.category.name|default:"General" }} - {% if item.tags %} -
- {% for tag in item.tags.split|slice:":2" %} - {{ tag }} - {% endfor %} -
- {% endif %} -
-
-
- {% empty %} -
- -

Your {{ title|lower }} is empty.

- -
- {% endfor %} -
- - - -{% endblock %} \ No newline at end of file diff --git a/core/templates/registration/login.html b/core/templates/registration/login.html deleted file mode 100644 index 3cff058..0000000 --- a/core/templates/registration/login.html +++ /dev/null @@ -1,29 +0,0 @@ -{% extends "base.html" %} - -{% block title %}Login - New Style{% endblock %} - -{% block content %} -
-

LOGIN

-
-
-
- {% csrf_token %} -
- - -
-
- - -
- -
-
-

Don't have an account?

- SIGN UP -
-
-
-
-{% endblock %} diff --git a/core/templates/registration/signup.html b/core/templates/registration/signup.html deleted file mode 100644 index 5d68847..0000000 --- a/core/templates/registration/signup.html +++ /dev/null @@ -1,41 +0,0 @@ -{% extends "base.html" %} - -{% block title %}Sign Up - New Style{% endblock %} - -{% block content %} -
-

SIGN UP

-
-
-
- {% csrf_token %} - {% for field in form %} -
- - {{ field }} - {% if field.help_text %} -
{{ field.help_text }}
- {% endif %} - {% for error in field.errors %} -
{{ error }}
- {% endfor %} -
- {% endfor %} - -
-
-

Already have an account?

- LOG IN -
-
-
-
- - -{% endblock %} diff --git a/core/urls.py b/core/urls.py index 7c2f6c9..6299e3d 100644 --- a/core/urls.py +++ b/core/urls.py @@ -1,21 +1,7 @@ -from django.urls import path, include -from django.contrib.auth import views as auth_views -from . import views +from django.urls import path + +from .views import home urlpatterns = [ - path('', views.home, name='home'), - path('new-fit/', views.new_fit, name='new_fit'), - path('outfits/', views.outfits, name='outfits'), - path('wardrobe/', views.wardrobe, name='wardrobe'), - path('accessories/', views.accessories, name='accessories'), - path('add-item/', views.add_item, name='add_item'), - path('delete-item//', views.delete_item, name='delete_item'), - path('save-outfit/', views.save_outfit, name='save_outfit'), - path('schedule-outfit/', views.schedule_outfit, name='schedule_outfit'), - path('create-folder/', views.create_folder, name='create_folder'), - - # Auth - path('accounts/login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'), - path('accounts/logout/', auth_views.LogoutView.as_view(next_page='login'), name='logout'), - path('accounts/signup/', views.signup, name='signup'), -] \ No newline at end of file + path("", home, name="home"), +] diff --git a/core/views.py b/core/views.py index 84ccefd..c9aed12 100644 --- a/core/views.py +++ b/core/views.py @@ -1,167 +1,25 @@ import os -from datetime import date, timedelta -from django.shortcuts import render, get_object_or_404, redirect -from django.contrib.auth.decorators import login_required -from django.contrib.auth.forms import UserCreationForm -from django.contrib.auth import login -from django.db.models import Q -from .models import Item, Outfit, DailySchedule, Category, Folder -from .forms import ItemForm +import platform -def signup(request): - if request.method == 'POST': - form = UserCreationForm(request.POST) - if form.is_valid(): - user = form.save() - login(request, user) - return redirect('home') - else: - form = UserCreationForm() - return render(request, 'registration/signup.html', {'form': form}) +from django import get_version as django_version +from django.shortcuts import render +from django.utils import timezone -def get_weekly_schedule(user): - today = date.today() - start_of_week = today - timedelta(days=today.weekday()) - days = [] - for i in range(7): - day_date = start_of_week + timedelta(days=i) - schedule, _ = DailySchedule.objects.get_or_create(user=user, date=day_date) - days.append({ - 'date': day_date, - 'day_name': day_date.strftime('%A'), - 'schedule': schedule - }) - return days -@login_required def home(request): - """Render the landing screen with the weekly planner grid.""" - weekly_days = get_weekly_schedule(request.user) - total_items = Item.objects.filter(user=request.user).count() - - month = date.today().month - if month in [12, 1, 2]: - season = "Winter" - elif month in [3, 4, 5]: - season = "Spring" - elif month in [6, 7, 8]: - season = "Summer" - else: - season = "Autumn" + """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() context = { - "weekly_days": weekly_days, - "total_items": total_items, - "current_season": season, "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", ""), } return render(request, "core/index.html", context) - -@login_required -def new_fit(request): - """View to create a new outfit on a model.""" - items = Item.objects.filter(user=request.user) - categories = Category.objects.all() - context = { - "title": "New Fit", - "items": items, - "categories": categories, - "total_items": items.count(), - } - return render(request, "core/new_fit.html", context) - -@login_required -def outfits(request): - """View all saved outfits and folders.""" - outfits = Outfit.objects.filter(user=request.user, folder__isnull=True) - folders = Folder.objects.filter(user=request.user) - context = { - "outfits": outfits, - "folders": folders, - "title": "Outfits", - "total_items": Item.objects.filter(user=request.user).count(), - } - return render(request, "core/outfits.html", context) - -@login_required -def wardrobe(request): - """Render the wardrobe items.""" - items = Item.objects.filter(user=request.user, item_type='wardrobe') - categories = Category.objects.all() - form = ItemForm(initial={'item_type': 'wardrobe'}) - context = { - "items": items, - "categories": categories, - "title": "Wardrobe", - "total_items": Item.objects.filter(user=request.user).count(), - "form": form, - } - return render(request, "core/wardrobe.html", context) - -@login_required -def accessories(request): - """Render the accessories items.""" - items = Item.objects.filter(user=request.user, item_type='accessory') - categories = Category.objects.all() - form = ItemForm(initial={'item_type': 'accessory'}) - context = { - "items": items, - "categories": categories, - "title": "Accessories", - "total_items": Item.objects.filter(user=request.user).count(), - "form": form, - } - return render(request, "core/wardrobe.html", context) - -@login_required -def add_item(request): - """Handle item creation.""" - if request.method == 'POST': - form = ItemForm(request.POST, request.FILES) - if form.is_valid(): - item = form.save(commit=False) - item.user = request.user - item.save() - if item.item_type == 'accessory': - return redirect('accessories') - return redirect('wardrobe') - return redirect('wardrobe') - -@login_required -def delete_item(request, pk): - item = get_object_or_404(Item, pk=pk, user=request.user) - item.delete() - return redirect(request.META.get('HTTP_REFERER', 'wardrobe')) - -@login_required -def save_outfit(request): - if request.method == 'POST': - name = request.POST.get('name', 'Untitled Outfit') - item_ids = request.POST.getlist('items') - outfit = Outfit.objects.create(user=request.user, name=name) - if item_ids: - outfit.items.add(*item_ids) - return redirect('outfits') - return redirect('new_fit') - -@login_required -def schedule_outfit(request): - if request.method == 'POST': - day_date = request.POST.get('date') - outfit_id = request.POST.get('outfit_id') - schedule = get_object_or_404(DailySchedule, user=request.user, date=day_date) - if outfit_id: - outfit = get_object_or_404(Outfit, pk=outfit_id, user=request.user) - schedule.outfit = outfit - else: - schedule.outfit = None - schedule.save() - return redirect('home') - -@login_required -def create_folder(request): - if request.method == 'POST': - name = request.POST.get('name') - if name: - Folder.objects.create(user=request.user, name=name) - return redirect('outfits') \ No newline at end of file