├── Starter ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── index.html │ │ ├── partials │ │ │ └── navbar.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #1 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── index.html │ │ ├── partials │ │ │ └── navbar.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #2 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── index.html │ │ ├── partials │ │ │ └── navbar.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #3 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-list.html │ │ │ └── navbar.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── media │ └── film_photos │ │ ├── fargo.jpg │ │ ├── fargo_Er2yaWQ.jpg │ │ ├── fargo_jaCbgFc.jpg │ │ ├── godfather.jpg │ │ ├── godfather_Vszgv8p.jpg │ │ ├── no_country_for_old_men.jpg │ │ └── no_country_for_old_men_sxy3ETB.jpg ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #4 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-list.html │ │ │ └── navbar.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── media │ └── film_photos │ │ ├── fargo.jpg │ │ ├── fargo_Er2yaWQ.jpg │ │ ├── fargo_jaCbgFc.jpg │ │ ├── godfather.jpg │ │ ├── godfather_Vszgv8p.jpg │ │ ├── no_country_for_old_men.jpg │ │ └── no_country_for_old_men_sxy3ETB.jpg ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #5 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ ├── 0003_alter_film_name.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-list.html │ │ │ ├── navbar.html │ │ │ ├── search-results.html │ │ │ └── search.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── media │ └── film_photos │ │ ├── fargo.jpg │ │ ├── fargo_Er2yaWQ.jpg │ │ ├── fargo_jaCbgFc.jpg │ │ ├── godfather.jpg │ │ ├── godfather_Vszgv8p.jpg │ │ ├── no_country_for_old_men.jpg │ │ └── no_country_for_old_men_sxy3ETB.jpg ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #6.1 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ └── films.json │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ ├── 0003_alter_film_name.py │ │ ├── 0004_auto_20211108_1854.py │ │ ├── 0005_alter_film_users.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-list.html │ │ │ ├── navbar.html │ │ │ ├── search-results.html │ │ │ └── search.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── media │ └── film_photos │ │ ├── fargo.jpg │ │ ├── fargo_Er2yaWQ.jpg │ │ ├── fargo_jaCbgFc.jpg │ │ ├── godfather.jpg │ │ ├── godfather_Vszgv8p.jpg │ │ ├── no_country_for_old_men.jpg │ │ └── no_country_for_old_men_sxy3ETB.jpg ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #6.2 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ └── films.json │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ ├── 0003_alter_film_name.py │ │ ├── 0004_auto_20211108_1854.py │ │ ├── 0005_alter_film_users.py │ │ ├── 0006_film_photo.py │ │ ├── 0007_alter_film_photo.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-detail.html │ │ │ ├── film-list.html │ │ │ ├── navbar.html │ │ │ ├── search-results.html │ │ │ └── search.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #7 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ └── films.json │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ ├── 0003_alter_film_name.py │ │ ├── 0004_auto_20211108_1854.py │ │ ├── 0005_alter_film_users.py │ │ ├── 0006_film_photo.py │ │ ├── 0007_alter_film_photo.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-detail.html │ │ │ ├── film-list.html │ │ │ ├── navbar.html │ │ │ ├── search-results.html │ │ │ └── search.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css ├── Video #8 ├── .gitignore ├── films │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ └── films.json │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_film.py │ │ ├── 0003_alter_film_name.py │ │ ├── 0004_auto_20211108_1854.py │ │ ├── 0005_alter_film_users.py │ │ ├── 0006_film_photo.py │ │ ├── 0007_alter_film_photo.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── base.html │ │ ├── films.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── film-detail.html │ │ │ ├── film-list-elements.html │ │ │ ├── film-list.html │ │ │ ├── navbar.html │ │ │ ├── search-results.html │ │ │ └── search.html │ │ └── registration │ │ │ ├── login.html │ │ │ └── register.html │ ├── tests.py │ ├── urls.py │ ├── utils.py │ └── views.py ├── htmx │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── static │ └── css │ └── styles.css └── Video #9 ├── .gitignore ├── films ├── __init__.py ├── admin.py ├── apps.py ├── fixtures │ └── films.json ├── forms.py ├── migrations │ ├── 0001_initial.py │ ├── 0002_film.py │ ├── 0003_alter_film_name.py │ ├── 0004_auto_20211108_1854.py │ ├── 0005_alter_film_users.py │ ├── 0006_film_photo.py │ ├── 0007_alter_film_photo.py │ └── __init__.py ├── models.py ├── templates │ ├── base.html │ ├── films.html │ ├── index.html │ ├── partials │ │ ├── film-detail.html │ │ ├── film-list-elements.html │ │ ├── film-list.html │ │ ├── navbar.html │ │ ├── search-results.html │ │ └── search.html │ └── registration │ │ ├── login.html │ │ └── register.html ├── tests.py ├── urls.py ├── utils.py └── views.py ├── htmx ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py ├── manage.py ├── requirements.txt └── static └── css └── styles.css /Starter/.gitignore: -------------------------------------------------------------------------------- 1 | db.sqlite3 2 | __pycache__ 3 | *.pyc 4 | notes.txt 5 | media/ -------------------------------------------------------------------------------- /Starter/films/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugbytes-io/django-htmx/421cacc15ca8b6f464a249ea60b58f767f425c98/Starter/films/__init__.py -------------------------------------------------------------------------------- /Starter/films/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /Starter/films/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class FilmsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'films' 7 | -------------------------------------------------------------------------------- /Starter/films/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from django.contrib.auth.forms import UserCreationForm 3 | from films.models import User 4 | 5 | 6 | class RegisterForm(UserCreationForm): 7 | class Meta: 8 | model = User 9 | fields = ["username", "password1", "password2"] -------------------------------------------------------------------------------- /Starter/films/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugbytes-io/django-htmx/421cacc15ca8b6f464a249ea60b58f767f425c98/Starter/films/migrations/__init__.py -------------------------------------------------------------------------------- /Starter/films/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | from django.contrib.auth.models import AbstractUser 3 | 4 | class User(AbstractUser): 5 | pass -------------------------------------------------------------------------------- /Starter/films/templates/base.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 |
5 | 6 | 7 | 8 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Starter/films/templates/partials/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Starter/films/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load widget_tweaks %} 3 | 4 | {% block content %} 5 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #1/films/templates/partials/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Video #1/films/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load widget_tweaks %} 3 | 4 | {% block content %} 5 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #2/films/templates/partials/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Video #2/films/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load widget_tweaks %} 3 | 4 | {% block content %} 5 |Login
7 |Register
7 |My Films
7 | 12 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #3/films/templates/partials/film-list.html: -------------------------------------------------------------------------------- 1 | {% if films %} 2 |You do not have any films in your list
9 | {% endif %} -------------------------------------------------------------------------------- /Video #3/films/templates/partials/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Video #3/films/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load widget_tweaks %} 3 | 4 | {% block content %} 5 |Login
7 |Register
7 |My Films
7 | 12 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #4/films/templates/partials/film-list.html: -------------------------------------------------------------------------------- 1 | {% if films %} 2 | 3 | {% csrf_token %} 4 |You do not have any films in your list
18 | {% endif %} -------------------------------------------------------------------------------- /Video #4/films/templates/partials/navbar.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Video #4/films/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'base.html' %} 2 | {% load widget_tweaks %} 3 | 4 | {% block content %} 5 |Login
7 |Register
7 |My Films
7 | 16 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #5/films/templates/partials/film-list.html: -------------------------------------------------------------------------------- 1 |You do not have any films in your list
30 | {% endif %} 31 | 32 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #5/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |My Films
7 | 16 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #6.1/films/templates/partials/film-list.html: -------------------------------------------------------------------------------- 1 |You do not have any films in your list
34 | {% endif %} 35 | 36 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #6.1/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #6.2/films/templates/partials/film-detail.html: -------------------------------------------------------------------------------- 1 |This film is #{{ userfilm.order }} in {{ userfilm.user.username|title}}'s list
7 | 8 | 11 |No photo :(
18 | {% endif %} 19 | 20 | 31 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #6.2/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #7/films/templates/partials/film-detail.html: -------------------------------------------------------------------------------- 1 |This film is #{{ userfilm.order }} in {{ userfilm.user.username|title}}'s list
7 | 8 | 11 |No photo :(
18 | {% endif %} 19 | 20 | 31 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #7/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #8/films/templates/partials/film-detail.html: -------------------------------------------------------------------------------- 1 |This film is #{{ userfilm.order }} in {{ userfilm.user.username|title}}'s list
7 | 8 | 12 |No photo :(
19 | {% endif %} 20 | 21 | 32 |My Films
3 | 12 |You do not have any films in your list
36 | {% endif %} 37 | 38 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #8/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |Welcome!
6 | 7 | {% lorem 2 p %} 8 | 9 | {% endblock content %} -------------------------------------------------------------------------------- /Video #9/films/templates/partials/film-detail.html: -------------------------------------------------------------------------------- 1 |This film is #{{ userfilm.order }} in {{ userfilm.user.username|title}}'s list
7 | 8 | 12 |No photo :(
19 | {% endif %} 20 | 21 | 32 |My Films
3 | 12 |You do not have any films in your list
36 | {% endif %} 37 | 38 |No search results
18 | {% endif %} -------------------------------------------------------------------------------- /Video #9/films/templates/partials/search.html: -------------------------------------------------------------------------------- 1 |Login
7 |Register
7 |