diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/SynergyPro_Team5_CS-GY-6063.iml b/.idea/SynergyPro_Team5_CS-GY-6063.iml deleted file mode 100644 index 8b8c395..0000000 --- a/.idea/SynergyPro_Team5_CS-GY-6063.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index db8786c..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index d41cc08..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/synergy_pro/.gitignore b/synergy_pro/.gitignore new file mode 100644 index 0000000..5ccad55 --- /dev/null +++ b/synergy_pro/.gitignore @@ -0,0 +1,22 @@ +# Python +__pycache__/ +*.py[cod] +*.pyo +.Python +venv/ +.idea + +# Django +*.sqlite3 +db.sqlite3 + +# Environment variables +.env + +# Static files +/staticfiles/ +/media/ + +# macOS +.DS_Store + diff --git a/task_management/__init__.py b/synergy_pro/__init__.py similarity index 100% rename from task_management/__init__.py rename to synergy_pro/__init__.py diff --git a/synergy_pro/manage.py b/synergy_pro/manage.py new file mode 100755 index 0000000..99d3d3e --- /dev/null +++ b/synergy_pro/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'synergy_pro.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git a/task_manager/__init__.py b/synergy_pro/synergy_pro/__init__.py similarity index 100% rename from task_manager/__init__.py rename to synergy_pro/synergy_pro/__init__.py diff --git a/task_management/asgi.py b/synergy_pro/synergy_pro/asgi.py similarity index 71% rename from task_management/asgi.py rename to synergy_pro/synergy_pro/asgi.py index 5823877..d99446a 100644 --- a/task_management/asgi.py +++ b/synergy_pro/synergy_pro/asgi.py @@ -1,5 +1,5 @@ """ -ASGI config for task_management project. +ASGI config for synergy_pro project. It exposes the ASGI callable as a module-level variable named ``application``. @@ -11,6 +11,6 @@ from django.core.asgi import get_asgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "task_management.settings") +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'synergy_pro.settings') application = get_asgi_application() diff --git a/synergy_pro/synergy_pro/settings.py b/synergy_pro/synergy_pro/settings.py new file mode 100644 index 0000000..b778ce4 --- /dev/null +++ b/synergy_pro/synergy_pro/settings.py @@ -0,0 +1,143 @@ +""" +Django settings for synergy_pro project. + +Generated by 'django-admin startproject' using Django 5.1.2. + +For more information on this file, see +https://docs.djangoproject.com/en/5.1/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.1/ref/settings/ +""" + +from pathlib import Path +from django.contrib.messages import constants as messages + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-)n3+q*ucge#o3rx_0^!8+@51cfj%8$yjw)sq^d+wx+!3(xe)!a' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'crispy_forms', + 'users', + 'tasks', +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +ROOT_URLCONF = 'synergy_pro.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [BASE_DIR / "templates"], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] +# CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" +# CRISPY_TEMPLATE_PACK = "bootstrap5" + + +WSGI_APPLICATION = 'synergy_pro.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/5.1/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/5.1/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.1/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [BASE_DIR / "static"] + +MEDIA_URL = '/media/' +MEDIA_ROOT = BASE_DIR / "media" + +# Default primary key field type +# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +LOGIN_REDIRECT_URL = '/' # Redirects to the home page after login +LOGOUT_REDIRECT_URL = '/users/login/' # Redirects to the login page after logout + +MESSAGE_TAGS = { + messages.SUCCESS: 'alert-success', + messages.ERROR: 'alert-danger', +} + diff --git a/task_management/urls.py b/synergy_pro/synergy_pro/urls.py similarity index 68% rename from task_management/urls.py rename to synergy_pro/synergy_pro/urls.py index 43d4a8a..e0d636d 100644 --- a/task_management/urls.py +++ b/synergy_pro/synergy_pro/urls.py @@ -1,5 +1,5 @@ """ -URL configuration for task_management project. +URL configuration for synergy_pro project. The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/5.1/topics/http/urls/ @@ -14,11 +14,16 @@ 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ - from django.contrib import admin from django.urls import path, include +from django.shortcuts import render + +def home(request): + return render(request, 'synergy_pro/base.html') urlpatterns = [ - path("admin/", admin.site.urls), - path('', include('task_manager.urls')), + path('admin/', admin.site.urls), + path('users/', include('users.urls')), + path('tasks/', include('tasks.urls')), + path('', home, name='home'), # Root URL pattern ] diff --git a/task_management/wsgi.py b/synergy_pro/synergy_pro/wsgi.py similarity index 71% rename from task_management/wsgi.py rename to synergy_pro/synergy_pro/wsgi.py index 1b401c1..a472c2e 100644 --- a/task_management/wsgi.py +++ b/synergy_pro/synergy_pro/wsgi.py @@ -1,5 +1,5 @@ """ -WSGI config for task_management project. +WSGI config for synergy_pro project. It exposes the WSGI callable as a module-level variable named ``application``. @@ -11,6 +11,6 @@ from django.core.wsgi import get_wsgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "task_management.settings") +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'synergy_pro.settings') application = get_wsgi_application() diff --git a/task_manager/migrations/__init__.py b/synergy_pro/tasks/__init__.py similarity index 100% rename from task_manager/migrations/__init__.py rename to synergy_pro/tasks/__init__.py diff --git a/task_manager/admin.py b/synergy_pro/tasks/admin.py similarity index 100% rename from task_manager/admin.py rename to synergy_pro/tasks/admin.py diff --git a/synergy_pro/tasks/apps.py b/synergy_pro/tasks/apps.py new file mode 100644 index 0000000..3ff3ab3 --- /dev/null +++ b/synergy_pro/tasks/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class TasksConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'tasks' diff --git a/task_manager/forms.py b/synergy_pro/tasks/forms.py similarity index 100% rename from task_manager/forms.py rename to synergy_pro/tasks/forms.py diff --git a/task_manager/migrations/0001_initial.py b/synergy_pro/tasks/migrations/0001_initial.py similarity index 100% rename from task_manager/migrations/0001_initial.py rename to synergy_pro/tasks/migrations/0001_initial.py diff --git a/synergy_pro/tasks/migrations/__init__.py b/synergy_pro/tasks/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/task_manager/models.py b/synergy_pro/tasks/models.py similarity index 100% rename from task_manager/models.py rename to synergy_pro/tasks/models.py diff --git a/task_manager/tests.py b/synergy_pro/tasks/tests.py similarity index 100% rename from task_manager/tests.py rename to synergy_pro/tasks/tests.py diff --git a/synergy_pro/tasks/urls.py b/synergy_pro/tasks/urls.py new file mode 100644 index 0000000..ad3b16a --- /dev/null +++ b/synergy_pro/tasks/urls.py @@ -0,0 +1,10 @@ +from django.urls import path +from . import views + +urlpatterns = [ + path('', views.task_calendar, name='task_calendar'), + path('create//', views.create_task, name='create_task'), + path('tasks/', views.task_list, name='task_list'), + path('/', views.task_detail, name='task_detail'), +] + diff --git a/task_manager/views.py b/synergy_pro/tasks/views.py similarity index 65% rename from task_manager/views.py rename to synergy_pro/tasks/views.py index 61dc4ae..db9e237 100644 --- a/task_manager/views.py +++ b/synergy_pro/tasks/views.py @@ -1,3 +1,6 @@ +from django.shortcuts import render + +# Create your views here. from django.shortcuts import render, redirect, get_object_or_404 from .models import Task from .forms import TaskForm @@ -6,7 +9,7 @@ # Calendar view def task_calendar(request): tasks = Task.objects.all() - return render(request, 'task_manager/calendar.html', {'tasks': tasks}) + return render(request, '../templates/tasks/calendar.html', {'tasks': tasks}) # View to create a task def create_task(request, date): @@ -20,15 +23,15 @@ def create_task(request, date): else: form = TaskForm() - return render(request, "task_manager/create_task.html", {'form': form, 'date': date}) + return render(request, "../templates/tasks/create_task.html", {'form': form, 'date': date}) # view all tasks def task_list(request): tasks = Task.objects.all() - return render(request, 'task_manager/task_list.html', {'tasks': tasks}) + return render(request, '../templates/tasks/task_list.html', {'tasks': tasks}) # view individual task def task_detail(request, task_id): task = get_object_or_404(Task, id=task_id) - return render(request, 'task_manager/task_detail.html', {'task': task}) + return render(request, '../templates/tasks/task_detail.html', {'task': task}) diff --git a/synergy_pro/templates/media/info-circle.svg b/synergy_pro/templates/media/info-circle.svg new file mode 100644 index 0000000..e2b50eb --- /dev/null +++ b/synergy_pro/templates/media/info-circle.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/synergy_pro/templates/synergy_pro/base.html b/synergy_pro/templates/synergy_pro/base.html new file mode 100644 index 0000000..f7c56bc --- /dev/null +++ b/synergy_pro/templates/synergy_pro/base.html @@ -0,0 +1,48 @@ + + + + + + {% block title %}Synergy Pro{% endblock %} + + + + + + +
+ + +
+ + +
+

Welcome to Synergy Pro

+ {% block content %} + {% if user.is_authenticated %} + {% include 'tasks/calendar.html' %} + {% endif %} + {% endblock %} +
+
+
+ © Synergy Pro 2024 +
+
+ + + + + diff --git a/task_manager/templates/task_manager/calendar.html b/synergy_pro/templates/tasks/calendar.html similarity index 100% rename from task_manager/templates/task_manager/calendar.html rename to synergy_pro/templates/tasks/calendar.html diff --git a/task_manager/templates/task_manager/create_task.html b/synergy_pro/templates/tasks/create_task.html similarity index 100% rename from task_manager/templates/task_manager/create_task.html rename to synergy_pro/templates/tasks/create_task.html diff --git a/task_manager/templates/task_manager/task_detail.html b/synergy_pro/templates/tasks/task_detail.html similarity index 100% rename from task_manager/templates/task_manager/task_detail.html rename to synergy_pro/templates/tasks/task_detail.html diff --git a/task_manager/templates/task_manager/task_list.html b/synergy_pro/templates/tasks/task_list.html similarity index 100% rename from task_manager/templates/task_manager/task_list.html rename to synergy_pro/templates/tasks/task_list.html diff --git a/synergy_pro/templates/users/registration/logged_out.html b/synergy_pro/templates/users/registration/logged_out.html new file mode 100644 index 0000000..0c83d9c --- /dev/null +++ b/synergy_pro/templates/users/registration/logged_out.html @@ -0,0 +1,10 @@ +{% extends "synergy_pro/base.html" %} + +{% block title %}Logged Out{% endblock %} + +{% block content %} +
+

You have been logged out successfully

+

Click here to log in again

+
+{% endblock %} diff --git a/synergy_pro/templates/users/registration/login.html b/synergy_pro/templates/users/registration/login.html new file mode 100644 index 0000000..e3e3844 --- /dev/null +++ b/synergy_pro/templates/users/registration/login.html @@ -0,0 +1,26 @@ +{% extends "synergy_pro/base.html" %} + +{% block title %}Login{% endblock %} + +{% block content %} +
+

Login

+ + {% csrf_token %} +
+ + +
+
+ + +
+ + + {% if form.errors %} +
+ Invalid username or password. Please try again. +
+ {% endif %} +
+{% endblock %} diff --git a/synergy_pro/templates/users/registration/signup.html b/synergy_pro/templates/users/registration/signup.html new file mode 100644 index 0000000..bed63de --- /dev/null +++ b/synergy_pro/templates/users/registration/signup.html @@ -0,0 +1,98 @@ +{% extends "synergy_pro/base.html" %} +{% load crispy_forms_tags %} + +{% block title %}Sign Up{% endblock %} + +{% block content %} +
+
+

Sign Up

+ + {% if messages %} + {% for message in messages %} + + {% endfor %} + {% endif %} + +
+ {% csrf_token %} +
+
+
+
+ +
+
+
+ {{ form.username }} +
+
+ +
+
+
+ + +
+
+
+ {{ form.email }} +
+
+ +
+
+
+ +
+
+
+
+ {{ form.password1 }} +
+
+ + + + +
+
+
+ +
+
+
+ + +
+
+
+ {{ form.password2 }} +
+
+ + +
+ +
+
+
+ + +{% endblock %} diff --git a/synergy_pro/users/__init__.py b/synergy_pro/users/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/synergy_pro/users/admin.py b/synergy_pro/users/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/synergy_pro/users/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/synergy_pro/users/apps.py b/synergy_pro/users/apps.py new file mode 100644 index 0000000..72b1401 --- /dev/null +++ b/synergy_pro/users/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class UsersConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'users' diff --git a/synergy_pro/users/forms.py b/synergy_pro/users/forms.py new file mode 100644 index 0000000..a0b8387 --- /dev/null +++ b/synergy_pro/users/forms.py @@ -0,0 +1,10 @@ +from django import forms +from django.contrib.auth.models import User +from django.contrib.auth.forms import UserCreationForm + +class UserRegisterForm(UserCreationForm): + email = forms.EmailField(required=True) + + class Meta: + model = User + fields = ['username', 'email', 'password1', 'password2'] diff --git a/synergy_pro/users/migrations/__init__.py b/synergy_pro/users/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/synergy_pro/users/models.py b/synergy_pro/users/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/synergy_pro/users/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/synergy_pro/users/tests.py b/synergy_pro/users/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/synergy_pro/users/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/synergy_pro/users/urls.py b/synergy_pro/users/urls.py new file mode 100644 index 0000000..2e317d6 --- /dev/null +++ b/synergy_pro/users/urls.py @@ -0,0 +1,10 @@ +from django.urls import path +from django.contrib.auth import views as auth_views +from . import views + +urlpatterns = [ + path('login/', auth_views.LoginView.as_view(template_name='users/registration/login.html'), name='login'), + path('logout/', auth_views.LogoutView.as_view(template_name='users/registration/logged_out.html'), name='logout'), + path('signup/' ,views.signup, name='signup'), + # Add other views like registration here later +] diff --git a/synergy_pro/users/views.py b/synergy_pro/users/views.py new file mode 100644 index 0000000..c54a400 --- /dev/null +++ b/synergy_pro/users/views.py @@ -0,0 +1,17 @@ +from django.shortcuts import render, redirect +from django.contrib.auth import login +from django.contrib import messages +from .forms import UserRegisterForm + +def signup(request): + if request.method == 'POST': + form = UserRegisterForm(request.POST) + if form.is_valid(): + user = form.save() + # login(request, user) # Automatically log the user in after signup + print(f"User {user.username} created and logged in.") # Debug line + messages.success(request, "Account created successfully!") + return redirect('users/registration/login.html') # Redirect to the homepage after signup + else: + form = UserRegisterForm() + return render(request, 'users/registration/signup.html', {'form': form}) diff --git a/task_management/__pycache__/__init__.cpython-312.pyc b/task_management/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a63f91f..0000000 Binary files a/task_management/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/task_management/__pycache__/settings.cpython-312.pyc b/task_management/__pycache__/settings.cpython-312.pyc deleted file mode 100644 index edbbef4..0000000 Binary files a/task_management/__pycache__/settings.cpython-312.pyc and /dev/null differ diff --git a/task_management/__pycache__/urls.cpython-312.pyc b/task_management/__pycache__/urls.cpython-312.pyc deleted file mode 100644 index 1e2fc30..0000000 Binary files a/task_management/__pycache__/urls.cpython-312.pyc and /dev/null differ diff --git a/task_management/__pycache__/views.cpython-312.pyc b/task_management/__pycache__/views.cpython-312.pyc deleted file mode 100644 index 117f480..0000000 Binary files a/task_management/__pycache__/views.cpython-312.pyc and /dev/null differ diff --git a/task_management/__pycache__/wsgi.cpython-312.pyc b/task_management/__pycache__/wsgi.cpython-312.pyc deleted file mode 100644 index e8e4d8f..0000000 Binary files a/task_management/__pycache__/wsgi.cpython-312.pyc and /dev/null differ diff --git a/task_management/settings.py b/task_management/settings.py deleted file mode 100644 index a4a728f..0000000 --- a/task_management/settings.py +++ /dev/null @@ -1,124 +0,0 @@ -""" -Django settings for task_management project. - -Generated by 'django-admin startproject' using Django 5.1.1. - -For more information on this file, see -https://docs.djangoproject.com/en/5.1/topics/settings/ - -For the full list of settings and their values, see -https://docs.djangoproject.com/en/5.1/ref/settings/ -""" - -from pathlib import Path - -# Build paths inside the project like this: BASE_DIR / 'subdir'. -BASE_DIR = Path(__file__).resolve().parent.parent - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/5.1/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = "django-insecure-7=6i)#%_gi@k^1wg(a%9fa=^q*fbh3zaeh_uk01b%pu6o7h(-g" - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - "django.contrib.admin", - "django.contrib.auth", - "django.contrib.contenttypes", - "django.contrib.sessions", - "django.contrib.messages", - "django.contrib.staticfiles", - "task_manager" -] - -MIDDLEWARE = [ - "django.middleware.security.SecurityMiddleware", - "django.contrib.sessions.middleware.SessionMiddleware", - "django.middleware.common.CommonMiddleware", - "django.middleware.csrf.CsrfViewMiddleware", - "django.contrib.auth.middleware.AuthenticationMiddleware", - "django.contrib.messages.middleware.MessageMiddleware", - "django.middleware.clickjacking.XFrameOptionsMiddleware", -] - -ROOT_URLCONF = "task_management.urls" - -TEMPLATES = [ - { - "BACKEND": "django.template.backends.django.DjangoTemplates", - "DIRS": [], - "APP_DIRS": True, - "OPTIONS": { - "context_processors": [ - "django.template.context_processors.debug", - "django.template.context_processors.request", - "django.contrib.auth.context_processors.auth", - "django.contrib.messages.context_processors.messages", - ], - }, - }, -] - -WSGI_APPLICATION = "task_management.wsgi.application" - - -# Database -# https://docs.djangoproject.com/en/5.1/ref/settings/#databases - -DATABASES = { - "default": { - "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / "db.sqlite3", - } -} - - -# Password validation -# https://docs.djangoproject.com/en/5.1/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator", - }, - { - "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator", - }, - { - "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator", - }, - { - "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator", - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/5.1/topics/i18n/ - -LANGUAGE_CODE = "en-us" - -TIME_ZONE = "UTC" - -USE_I18N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/5.1/howto/static-files/ - -STATIC_URL = "static/" - -# Default primary key field type -# https://docs.djangoproject.com/en/5.1/ref/settings/#default-auto-field - -DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" diff --git a/task_manager/__pycache__/__init__.cpython-312.pyc b/task_manager/__pycache__/__init__.cpython-312.pyc index a9a716d..97b7f4d 100644 Binary files a/task_manager/__pycache__/__init__.cpython-312.pyc and b/task_manager/__pycache__/__init__.cpython-312.pyc differ diff --git a/task_manager/__pycache__/admin.cpython-312.pyc b/task_manager/__pycache__/admin.cpython-312.pyc index be3c580..2783ec1 100644 Binary files a/task_manager/__pycache__/admin.cpython-312.pyc and b/task_manager/__pycache__/admin.cpython-312.pyc differ diff --git a/task_manager/__pycache__/apps.cpython-312.pyc b/task_manager/__pycache__/apps.cpython-312.pyc index 9039902..f3d19ca 100644 Binary files a/task_manager/__pycache__/apps.cpython-312.pyc and b/task_manager/__pycache__/apps.cpython-312.pyc differ diff --git a/task_manager/__pycache__/forms.cpython-312.pyc b/task_manager/__pycache__/forms.cpython-312.pyc index f1f518b..bcfeb3e 100644 Binary files a/task_manager/__pycache__/forms.cpython-312.pyc and b/task_manager/__pycache__/forms.cpython-312.pyc differ diff --git a/task_manager/__pycache__/models.cpython-312.pyc b/task_manager/__pycache__/models.cpython-312.pyc index afcf91f..6ebdea0 100644 Binary files a/task_manager/__pycache__/models.cpython-312.pyc and b/task_manager/__pycache__/models.cpython-312.pyc differ diff --git a/task_manager/__pycache__/urls.cpython-312.pyc b/task_manager/__pycache__/urls.cpython-312.pyc index 030501d..b718708 100644 Binary files a/task_manager/__pycache__/urls.cpython-312.pyc and b/task_manager/__pycache__/urls.cpython-312.pyc differ diff --git a/task_manager/__pycache__/views.cpython-312.pyc b/task_manager/__pycache__/views.cpython-312.pyc index 718de75..41b321a 100644 Binary files a/task_manager/__pycache__/views.cpython-312.pyc and b/task_manager/__pycache__/views.cpython-312.pyc differ diff --git a/task_manager/apps.py b/task_manager/apps.py deleted file mode 100644 index d4f261d..0000000 --- a/task_manager/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class TaskManagerConfig(AppConfig): - default_auto_field = "django.db.models.BigAutoField" - name = "task_manager" diff --git a/task_manager/migrations/__pycache__/0001_initial.cpython-312.pyc b/task_manager/migrations/__pycache__/0001_initial.cpython-312.pyc index 20566c0..c480284 100644 Binary files a/task_manager/migrations/__pycache__/0001_initial.cpython-312.pyc and b/task_manager/migrations/__pycache__/0001_initial.cpython-312.pyc differ diff --git a/task_manager/migrations/__pycache__/__init__.cpython-312.pyc b/task_manager/migrations/__pycache__/__init__.cpython-312.pyc index 1c75195..350092d 100644 Binary files a/task_manager/migrations/__pycache__/__init__.cpython-312.pyc and b/task_manager/migrations/__pycache__/__init__.cpython-312.pyc differ diff --git a/task_manager/urls.py b/task_manager/urls.py deleted file mode 100644 index a1589d8..0000000 --- a/task_manager/urls.py +++ /dev/null @@ -1,10 +0,0 @@ -from django.urls import path -from . import views - -urlpatterns = [ - path('', views.task_calendar, name='task_calendar'), - path('tasks/create//', views.create_task, name='create_task'), - path('tasks', views.task_list, name='task_list'), - path('tasks/', views.task_detail, name='task_detail'), -] -