From 0a78cfd1531e20108fa7190e87ce5d262c804337 Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Thu, 28 Jan 2021 16:53:40 +0000
Subject: [PATCH 01/37] Created a default django project ready to start
---
django_getting_started/.idea/.gitignore | 8 ++
.../.idea/django_getting_started.iml | 30 +++++
.../inspectionProfiles/profiles_settings.xml | 6 +
django_getting_started/.idea/misc.xml | 4 +
django_getting_started/.idea/modules.xml | 8 ++
django_getting_started/.idea/vcs.xml | 6 +
django_getting_started/README.md | 12 ++
django_getting_started/manage.py | 22 ++++
.../meeting_planner/__init__.py | 0
.../meeting_planner/asgi.py | 16 +++
.../meeting_planner/settings.py | 121 ++++++++++++++++++
.../meeting_planner/urls.py | 21 +++
.../meeting_planner/wsgi.py | 16 +++
django_getting_started/requirments.txt | 0
14 files changed, 270 insertions(+)
create mode 100644 django_getting_started/.idea/.gitignore
create mode 100644 django_getting_started/.idea/django_getting_started.iml
create mode 100644 django_getting_started/.idea/inspectionProfiles/profiles_settings.xml
create mode 100644 django_getting_started/.idea/misc.xml
create mode 100644 django_getting_started/.idea/modules.xml
create mode 100644 django_getting_started/.idea/vcs.xml
create mode 100644 django_getting_started/README.md
create mode 100755 django_getting_started/manage.py
create mode 100644 django_getting_started/meeting_planner/__init__.py
create mode 100644 django_getting_started/meeting_planner/asgi.py
create mode 100644 django_getting_started/meeting_planner/settings.py
create mode 100644 django_getting_started/meeting_planner/urls.py
create mode 100644 django_getting_started/meeting_planner/wsgi.py
create mode 100644 django_getting_started/requirments.txt
diff --git a/django_getting_started/.idea/.gitignore b/django_getting_started/.idea/.gitignore
new file mode 100644
index 0000000..73f69e0
--- /dev/null
+++ b/django_getting_started/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/django_getting_started/.idea/django_getting_started.iml b/django_getting_started/.idea/django_getting_started.iml
new file mode 100644
index 0000000..18a5269
--- /dev/null
+++ b/django_getting_started/.idea/django_getting_started.iml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/.idea/inspectionProfiles/profiles_settings.xml b/django_getting_started/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/django_getting_started/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/.idea/misc.xml b/django_getting_started/.idea/misc.xml
new file mode 100644
index 0000000..6a386c5
--- /dev/null
+++ b/django_getting_started/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/.idea/modules.xml b/django_getting_started/.idea/modules.xml
new file mode 100644
index 0000000..8cada7e
--- /dev/null
+++ b/django_getting_started/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/.idea/vcs.xml b/django_getting_started/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/django_getting_started/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/README.md b/django_getting_started/README.md
new file mode 100644
index 0000000..e1038cd
--- /dev/null
+++ b/django_getting_started/README.md
@@ -0,0 +1,12 @@
+# Introduction
+
+This is a course on developing with django using a [pluralsight course](https://app.pluralsight.com/course-player?clipId=08e4d747-4a0e-4216-b614-9a3160f38690) . The documentation for Django can be found @ https://docs.djangoproject.com/en/3.1/
+
+Get started by:
+
+- If you have the full version of Pycharm, start with the django template
+- Creating a **new Python project** in *Pycharm* community then create an empty python project and then inititalising it with `python -m pip install django`
+ - `django-admin startproject ` for creating a new project
+- `python manage.py runserver` to run the project
+- The full course can be found at [django_getting_started](https://github.com/codesensei-courses/django_getting_started)
+-
\ No newline at end of file
diff --git a/django_getting_started/manage.py b/django_getting_started/manage.py
new file mode 100755
index 0000000..4fba838
--- /dev/null
+++ b/django_getting_started/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', 'meeting_planner.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/django_getting_started/meeting_planner/__init__.py b/django_getting_started/meeting_planner/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django_getting_started/meeting_planner/asgi.py b/django_getting_started/meeting_planner/asgi.py
new file mode 100644
index 0000000..9842638
--- /dev/null
+++ b/django_getting_started/meeting_planner/asgi.py
@@ -0,0 +1,16 @@
+"""
+ASGI config for meeting_planner project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meeting_planner.settings')
+
+application = get_asgi_application()
diff --git a/django_getting_started/meeting_planner/settings.py b/django_getting_started/meeting_planner/settings.py
new file mode 100644
index 0000000..59de8fa
--- /dev/null
+++ b/django_getting_started/meeting_planner/settings.py
@@ -0,0 +1,121 @@
+"""
+Django settings for meeting_planner project.
+
+Generated by 'django-admin startproject' using Django 3.1.5.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.1/topics/settings/
+
+For the full list of settings and their values, see
+https://docs.djangoproject.com/en/3.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/3.1/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = '@cr$%1z5)dknpghk!m7k*thkxs#m_iu3r2=w+cejw3(31uu=8q'
+
+# 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',
+]
+
+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 = 'meeting_planner.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',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'meeting_planner.wsgi.application'
+
+
+# Database
+# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': BASE_DIR / 'db.sqlite3',
+ }
+}
+
+
+# Password validation
+# https://docs.djangoproject.com/en/3.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/3.1/topics/i18n/
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_L10N = True
+
+USE_TZ = True
+
+
+# Static files (CSS, JavaScript, Images)
+# https://docs.djangoproject.com/en/3.1/howto/static-files/
+
+STATIC_URL = '/static/'
diff --git a/django_getting_started/meeting_planner/urls.py b/django_getting_started/meeting_planner/urls.py
new file mode 100644
index 0000000..4676cc0
--- /dev/null
+++ b/django_getting_started/meeting_planner/urls.py
@@ -0,0 +1,21 @@
+"""meeting_planner URL Configuration
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/3.1/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
+Including another URLconf
+ 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
+
+urlpatterns = [
+ path('admin/', admin.site.urls),
+]
diff --git a/django_getting_started/meeting_planner/wsgi.py b/django_getting_started/meeting_planner/wsgi.py
new file mode 100644
index 0000000..07a0a00
--- /dev/null
+++ b/django_getting_started/meeting_planner/wsgi.py
@@ -0,0 +1,16 @@
+"""
+WSGI config for meeting_planner project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meeting_planner.settings')
+
+application = get_wsgi_application()
diff --git a/django_getting_started/requirments.txt b/django_getting_started/requirments.txt
new file mode 100644
index 0000000..e69de29
From 82b8dd67044354de0bc640c90ac90bbf651be15a Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Thu, 28 Jan 2021 18:26:05 +0000
Subject: [PATCH 02/37] Created a website with a welcome view
---
django_getting_started/README.md | 3 ++-
django_getting_started/meeting_planner/settings.py | 1 +
django_getting_started/meeting_planner/urls.py | 2 ++
django_getting_started/website/__init__.py | 0
django_getting_started/website/tests.py | 3 +++
django_getting_started/website/views.py | 5 +++++
6 files changed, 13 insertions(+), 1 deletion(-)
create mode 100644 django_getting_started/website/__init__.py
create mode 100644 django_getting_started/website/tests.py
create mode 100644 django_getting_started/website/views.py
diff --git a/django_getting_started/README.md b/django_getting_started/README.md
index e1038cd..4a45f77 100644
--- a/django_getting_started/README.md
+++ b/django_getting_started/README.md
@@ -9,4 +9,5 @@ Get started by:
- `django-admin startproject ` for creating a new project
- `python manage.py runserver` to run the project
- The full course can be found at [django_getting_started](https://github.com/codesensei-courses/django_getting_started)
--
\ No newline at end of file
+- Create another folder `python manage.py startapp `
+
diff --git a/django_getting_started/meeting_planner/settings.py b/django_getting_started/meeting_planner/settings.py
index 59de8fa..24e37f8 100644
--- a/django_getting_started/meeting_planner/settings.py
+++ b/django_getting_started/meeting_planner/settings.py
@@ -37,6 +37,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
+ 'website',
]
MIDDLEWARE = [
diff --git a/django_getting_started/meeting_planner/urls.py b/django_getting_started/meeting_planner/urls.py
index 4676cc0..776812b 100644
--- a/django_getting_started/meeting_planner/urls.py
+++ b/django_getting_started/meeting_planner/urls.py
@@ -15,7 +15,9 @@
"""
from django.contrib import admin
from django.urls import path
+from website.views import welcome
urlpatterns = [
path('admin/', admin.site.urls),
+ path('welcome.html', welcome)
]
diff --git a/django_getting_started/website/__init__.py b/django_getting_started/website/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django_getting_started/website/tests.py b/django_getting_started/website/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/django_getting_started/website/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/django_getting_started/website/views.py b/django_getting_started/website/views.py
new file mode 100644
index 0000000..9d09688
--- /dev/null
+++ b/django_getting_started/website/views.py
@@ -0,0 +1,5 @@
+from django.http import HttpResponse
+
+
+def welcome(request):
+ return HttpResponse("Welcome to the meeting planner!")
From 7aadd368e9a6b3a283f5b46585c1b972e53a797e Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Thu, 28 Jan 2021 19:15:55 +0000
Subject: [PATCH 03/37] Created some basic stuff in Website folder Created a
Mettings app with default files generated
---
django_getting_started/.idea/dataSources.xml | 12 ++++++++++++
django_getting_started/README.md | 3 +++
django_getting_started/meeting_planner/settings.py | 1 +
django_getting_started/meeting_planner/urls.py | 5 +++--
django_getting_started/meetings/__init__.py | 0
django_getting_started/meetings/admin.py | 3 +++
django_getting_started/meetings/apps.py | 5 +++++
.../meetings/migrations/__init__.py | 0
django_getting_started/meetings/models.py | 3 +++
django_getting_started/meetings/tests.py | 3 +++
django_getting_started/meetings/views.py | 3 +++
django_getting_started/website/views.py | 8 +++++++-
12 files changed, 43 insertions(+), 3 deletions(-)
create mode 100644 django_getting_started/.idea/dataSources.xml
create mode 100644 django_getting_started/meetings/__init__.py
create mode 100644 django_getting_started/meetings/admin.py
create mode 100644 django_getting_started/meetings/apps.py
create mode 100644 django_getting_started/meetings/migrations/__init__.py
create mode 100644 django_getting_started/meetings/models.py
create mode 100644 django_getting_started/meetings/tests.py
create mode 100644 django_getting_started/meetings/views.py
diff --git a/django_getting_started/.idea/dataSources.xml b/django_getting_started/.idea/dataSources.xml
new file mode 100644
index 0000000..2128f6e
--- /dev/null
+++ b/django_getting_started/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ sqlite.xerial
+ true
+ org.sqlite.JDBC
+ jdbc:sqlite:$PROJECT_DIR$/db.sqlite3
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/README.md b/django_getting_started/README.md
index 4a45f77..fe00671 100644
--- a/django_getting_started/README.md
+++ b/django_getting_started/README.md
@@ -10,4 +10,7 @@ Get started by:
- `python manage.py runserver` to run the project
- The full course can be found at [django_getting_started](https://github.com/codesensei-courses/django_getting_started)
- Create another folder `python manage.py startapp `
+- `python manage.py showmigrations ` shows migrations not yet set and `python manage.py migrate` migrates the changes
+- `python manage.py dbshell` show **sqlite** db entries but it is easier through pycharm database console
+-
diff --git a/django_getting_started/meeting_planner/settings.py b/django_getting_started/meeting_planner/settings.py
index 24e37f8..c3333a0 100644
--- a/django_getting_started/meeting_planner/settings.py
+++ b/django_getting_started/meeting_planner/settings.py
@@ -38,6 +38,7 @@
'django.contrib.messages',
'django.contrib.staticfiles',
'website',
+ 'meetings'
]
MIDDLEWARE = [
diff --git a/django_getting_started/meeting_planner/urls.py b/django_getting_started/meeting_planner/urls.py
index 776812b..3053ccf 100644
--- a/django_getting_started/meeting_planner/urls.py
+++ b/django_getting_started/meeting_planner/urls.py
@@ -15,9 +15,10 @@
"""
from django.contrib import admin
from django.urls import path
-from website.views import welcome
+from website.views import welcome, about
urlpatterns = [
path('admin/', admin.site.urls),
- path('welcome.html', welcome)
+ path('welcome', welcome),
+ path('about', about),
]
diff --git a/django_getting_started/meetings/__init__.py b/django_getting_started/meetings/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django_getting_started/meetings/admin.py b/django_getting_started/meetings/admin.py
new file mode 100644
index 0000000..8c38f3f
--- /dev/null
+++ b/django_getting_started/meetings/admin.py
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/django_getting_started/meetings/apps.py b/django_getting_started/meetings/apps.py
new file mode 100644
index 0000000..5e63de6
--- /dev/null
+++ b/django_getting_started/meetings/apps.py
@@ -0,0 +1,5 @@
+from django.apps import AppConfig
+
+
+class MeetingsConfig(AppConfig):
+ name = 'meetings'
diff --git a/django_getting_started/meetings/migrations/__init__.py b/django_getting_started/meetings/migrations/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/django_getting_started/meetings/models.py b/django_getting_started/meetings/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/django_getting_started/meetings/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/django_getting_started/meetings/tests.py b/django_getting_started/meetings/tests.py
new file mode 100644
index 0000000..7ce503c
--- /dev/null
+++ b/django_getting_started/meetings/tests.py
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/django_getting_started/meetings/views.py b/django_getting_started/meetings/views.py
new file mode 100644
index 0000000..91ea44a
--- /dev/null
+++ b/django_getting_started/meetings/views.py
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/django_getting_started/website/views.py b/django_getting_started/website/views.py
index 9d09688..4409391 100644
--- a/django_getting_started/website/views.py
+++ b/django_getting_started/website/views.py
@@ -1,5 +1,11 @@
+from datetime import datetime
+
from django.http import HttpResponse
def welcome(request):
- return HttpResponse("Welcome to the meeting planner!")
+ return HttpResponse("Welcome to the meeting planner! " + str(datetime.utcnow()))
+
+
+def about(request):
+ return HttpResponse("My name is Vincent Farah and I am new to Python and Django")
From b2fd381d4200bb8b53e7ea7948de1d251675f8c4 Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Fri, 29 Jan 2021 08:23:38 +0000
Subject: [PATCH 04/37] Initialised the meeting model Created a migration to
represent a meeting Generated a model with the ability to see how it works
---
django_getting_started/README.md | 8 +++++--
.../meeting_planner/urls.py | 2 +-
django_getting_started/meetings/admin.py | 4 +++-
.../meetings/migrations/0001_initial.py | 22 +++++++++++++++++++
django_getting_started/meetings/models.py | 8 ++++++-
5 files changed, 39 insertions(+), 5 deletions(-)
create mode 100644 django_getting_started/meetings/migrations/0001_initial.py
diff --git a/django_getting_started/README.md b/django_getting_started/README.md
index fe00671..1ae678f 100644
--- a/django_getting_started/README.md
+++ b/django_getting_started/README.md
@@ -10,7 +10,11 @@ Get started by:
- `python manage.py runserver` to run the project
- The full course can be found at [django_getting_started](https://github.com/codesensei-courses/django_getting_started)
- Create another folder `python manage.py startapp `
-- `python manage.py showmigrations ` shows migrations not yet set and `python manage.py migrate` migrates the changes
+- `python manage.py showmigrations` shows migrations not yet set and `python manage.py migrate` migrates the changes
- `python manage.py dbshell` show **sqlite** db entries but it is easier through pycharm database console
--
+- `python manage.py makemigrations` generates a migration based on the model created and needs this to be setup in the applications
+- `python manage.py sqlmigrate ` will migrate the sql generated from the migration
+- ` python manage.py migrate` generates the migration into the database
+- `python manage.py createsuperuser` to create an **admin** for the site which works on the http://localhost:8000/admin URL
+- Django model fields and setting up the models can be found https://docs.djangoproject.com/en/3.1/ref/models/fields/
diff --git a/django_getting_started/meeting_planner/urls.py b/django_getting_started/meeting_planner/urls.py
index 3053ccf..a9fee1a 100644
--- a/django_getting_started/meeting_planner/urls.py
+++ b/django_getting_started/meeting_planner/urls.py
@@ -19,6 +19,6 @@
urlpatterns = [
path('admin/', admin.site.urls),
- path('welcome', welcome),
+ path('', welcome),
path('about', about),
]
diff --git a/django_getting_started/meetings/admin.py b/django_getting_started/meetings/admin.py
index 8c38f3f..5d440da 100644
--- a/django_getting_started/meetings/admin.py
+++ b/django_getting_started/meetings/admin.py
@@ -1,3 +1,5 @@
from django.contrib import admin
-# Register your models here.
+from .models import Meeting
+
+admin.site.register(Meeting)
diff --git a/django_getting_started/meetings/migrations/0001_initial.py b/django_getting_started/meetings/migrations/0001_initial.py
new file mode 100644
index 0000000..2a794f0
--- /dev/null
+++ b/django_getting_started/meetings/migrations/0001_initial.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.1.5 on 2021-01-28 19:23
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Meeting',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('title', models.CharField(max_length=200)),
+ ('date', models.DateField()),
+ ],
+ ),
+ ]
diff --git a/django_getting_started/meetings/models.py b/django_getting_started/meetings/models.py
index 71a8362..94fbd71 100644
--- a/django_getting_started/meetings/models.py
+++ b/django_getting_started/meetings/models.py
@@ -1,3 +1,9 @@
from django.db import models
-# Create your models here.
+
+class Meeting(models.Model):
+ title = models.CharField(max_length=200)
+ date = models.DateField()
+
+ def __str__(self):
+ return f'({self.id}) {self.title}'
From 62288195f6e5dfd9af81617f262a7b6fce044cf4 Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Fri, 29 Jan 2021 09:02:50 +0000
Subject: [PATCH 05/37] Updated meeting mdoel to extend understanding how to
migrated
---
.../migrations/0002_auto_20210129_0834.py | 24 +++++++++++++++++++
.../migrations/0003_auto_20210129_0847.py | 18 ++++++++++++++
django_getting_started/meetings/models.py | 5 +++-
3 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 django_getting_started/meetings/migrations/0002_auto_20210129_0834.py
create mode 100644 django_getting_started/meetings/migrations/0003_auto_20210129_0847.py
diff --git a/django_getting_started/meetings/migrations/0002_auto_20210129_0834.py b/django_getting_started/meetings/migrations/0002_auto_20210129_0834.py
new file mode 100644
index 0000000..5e41cb1
--- /dev/null
+++ b/django_getting_started/meetings/migrations/0002_auto_20210129_0834.py
@@ -0,0 +1,24 @@
+# Generated by Django 3.1.5 on 2021-01-29 08:34
+
+import datetime
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('meetings', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='meeting',
+ name='duration',
+ field=models.IntegerField(default=1),
+ ),
+ migrations.AddField(
+ model_name='meeting',
+ name='start_time',
+ field=models.TimeField(default=datetime.time(9, 0)),
+ ),
+ ]
diff --git a/django_getting_started/meetings/migrations/0003_auto_20210129_0847.py b/django_getting_started/meetings/migrations/0003_auto_20210129_0847.py
new file mode 100644
index 0000000..4d8e262
--- /dev/null
+++ b/django_getting_started/meetings/migrations/0003_auto_20210129_0847.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.5 on 2021-01-29 08:47
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('meetings', '0002_auto_20210129_0834'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='meeting',
+ name='duration',
+ field=models.IntegerField(default=15),
+ ),
+ ]
diff --git a/django_getting_started/meetings/models.py b/django_getting_started/meetings/models.py
index 94fbd71..92aa93c 100644
--- a/django_getting_started/meetings/models.py
+++ b/django_getting_started/meetings/models.py
@@ -1,9 +1,12 @@
+from datetime import time
from django.db import models
class Meeting(models.Model):
title = models.CharField(max_length=200)
date = models.DateField()
+ start_time = models.TimeField(default=time(9))
+ duration = models.IntegerField(default=15)
def __str__(self):
- return f'({self.id}) {self.title}'
+ return f'{self.title} @ {self.start_time.strftime("%I:%M:%S %p")} for {self.duration} minute(s)'
From de58c3b2fb227aa9edd2a3b02be1d0b17457064b Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Fri, 29 Jan 2021 11:25:42 +0000
Subject: [PATCH 06/37] Created foreign key on room
---
django_getting_started/meetings/admin.py | 3 ++-
.../meetings/migrations/0004_room.py | 22 +++++++++++++++++++
.../meetings/migrations/0005_meeting_room.py | 19 ++++++++++++++++
django_getting_started/meetings/models.py | 16 +++++++++++++-
4 files changed, 58 insertions(+), 2 deletions(-)
create mode 100644 django_getting_started/meetings/migrations/0004_room.py
create mode 100644 django_getting_started/meetings/migrations/0005_meeting_room.py
diff --git a/django_getting_started/meetings/admin.py b/django_getting_started/meetings/admin.py
index 5d440da..f3b67fd 100644
--- a/django_getting_started/meetings/admin.py
+++ b/django_getting_started/meetings/admin.py
@@ -1,5 +1,6 @@
from django.contrib import admin
-from .models import Meeting
+from .models import Meeting, Room
admin.site.register(Meeting)
+admin.site.register(Room)
diff --git a/django_getting_started/meetings/migrations/0004_room.py b/django_getting_started/meetings/migrations/0004_room.py
new file mode 100644
index 0000000..65203da
--- /dev/null
+++ b/django_getting_started/meetings/migrations/0004_room.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.1.5 on 2021-01-29 10:26
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('meetings', '0003_auto_20210129_0847'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Room',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('name', models.TextField(max_length=50)),
+ ('floor', models.IntegerField(default=1)),
+ ('room', models.TextField(max_length=50)),
+ ],
+ ),
+ ]
diff --git a/django_getting_started/meetings/migrations/0005_meeting_room.py b/django_getting_started/meetings/migrations/0005_meeting_room.py
new file mode 100644
index 0000000..6c54d77
--- /dev/null
+++ b/django_getting_started/meetings/migrations/0005_meeting_room.py
@@ -0,0 +1,19 @@
+# Generated by Django 3.1.5 on 2021-01-29 10:53
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('meetings', '0004_room'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='meeting',
+ name='room',
+ field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='meetings.room'),
+ ),
+ ]
diff --git a/django_getting_started/meetings/models.py b/django_getting_started/meetings/models.py
index 92aa93c..42c96a4 100644
--- a/django_getting_started/meetings/models.py
+++ b/django_getting_started/meetings/models.py
@@ -2,11 +2,25 @@
from django.db import models
+class Room(models.Model):
+ name = models.TextField(max_length=50)
+ floor = models.IntegerField(default=1)
+ room = models.TextField(max_length=50)
+
+ def __str__(self):
+ return f'{self.name} on floor {str(self.floor)} room {str(self.room)}'
+
+
class Meeting(models.Model):
title = models.CharField(max_length=200)
date = models.DateField()
start_time = models.TimeField(default=time(9))
duration = models.IntegerField(default=15)
+ room = models.ForeignKey(Room, on_delete=models.CASCADE, null=True)
def __str__(self):
- return f'{self.title} @ {self.start_time.strftime("%I:%M:%S %p")} for {self.duration} minute(s)'
+ return f'{self.title} @ {self.start_time.strftime("%I:%M:%S %p")} for {self.duration} minutes {self.room_info}'
+
+ @property
+ def room_info(self):
+ return f'in room {self.room.name}' if self.room is not None else '(online)'
From 9979da61e03e79bc9d7e388aa5ade6bc3c034b27 Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Fri, 29 Jan 2021 14:12:18 +0000
Subject: [PATCH 07/37] Created foreign key on room Updated the welcome page to
chose a static html template
---
.../website/templates/website/welcome.html | 14 ++++++++++++++
django_getting_started/website/views.py | 5 ++---
2 files changed, 16 insertions(+), 3 deletions(-)
create mode 100644 django_getting_started/website/templates/website/welcome.html
diff --git a/django_getting_started/website/templates/website/welcome.html b/django_getting_started/website/templates/website/welcome.html
new file mode 100644
index 0000000..4e198ca
--- /dev/null
+++ b/django_getting_started/website/templates/website/welcome.html
@@ -0,0 +1,14 @@
+
+
+
+
+ Codestin Search App
+
+
+ Welcome to the Meeting Planner!
+
+ This is the demo application to get familiar with Django: getting started
+ and can be found in way more detail on Pluralsight
+
+
+
\ No newline at end of file
diff --git a/django_getting_started/website/views.py b/django_getting_started/website/views.py
index 4409391..4adad9c 100644
--- a/django_getting_started/website/views.py
+++ b/django_getting_started/website/views.py
@@ -1,10 +1,9 @@
-from datetime import datetime
-
from django.http import HttpResponse
+from django.shortcuts import render
def welcome(request):
- return HttpResponse("Welcome to the meeting planner! " + str(datetime.utcnow()))
+ return render(request, 'website/welcome.html')
def about(request):
From 34a231511072946eb3d9fcd0f0ed2e247975e83d Mon Sep 17 00:00:00 2001
From: Vincent Farah
Date: Fri, 29 Jan 2021 14:19:58 +0000
Subject: [PATCH 08/37] Updated passing in data using the mustache syntax
---
django_getting_started/website/templates/website/welcome.html | 1 +
django_getting_started/website/views.py | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/django_getting_started/website/templates/website/welcome.html b/django_getting_started/website/templates/website/welcome.html
index 4e198ca..17e2cd5 100644
--- a/django_getting_started/website/templates/website/welcome.html
+++ b/django_getting_started/website/templates/website/welcome.html
@@ -10,5 +10,6 @@ Welcome to the Meeting Planner!
This is the demo application to get familiar with Django: getting started
and can be found in way more detail on Pluralsight
+ {{ message }}