From 186cc4d4bd1924b6d2dc99e18153f8bd5418e7e3 Mon Sep 17 00:00:00 2001 From: tsb Date: Sat, 24 Jun 2023 14:39:20 -0400 Subject: [PATCH] initial commit --- .vscode/settings.json | 22 +++++++++++ .../config/settings/base.py | 4 +- {{cookiecutter.project_slug}}/package.json | 12 +++++- .../requirements/base.txt | 3 +- .../tailwind.config.js | 15 +++++++ .../static/css/project.css | 12 ------ .../static/js/vendors.js | 4 +- .../static/sass/custom_bootstrap_vars.scss | 0 .../static/sass/project.scss | 39 ++----------------- .../templates/account/email.html | 3 +- .../templates/account/login.html | 3 +- .../templates/account/password_change.html | 3 +- .../templates/account/password_reset.html | 3 +- .../account/password_reset_from_key.html | 3 +- .../templates/account/password_set.html | 3 +- .../templates/account/signup.html | 3 +- 16 files changed, 62 insertions(+), 70 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 {{cookiecutter.project_slug}}/tailwind.config.js delete mode 100644 {{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/custom_bootstrap_vars.scss diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..b92839d53 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,22 @@ +{ + "workbench.colorCustomizations": { + "activityBar.activeBackground": "#65c89b", + "activityBar.background": "#65c89b", + "activityBar.foreground": "#15202b", + "activityBar.inactiveForeground": "#15202b99", + "activityBarBadge.background": "#945bc4", + "activityBarBadge.foreground": "#e7e7e7", + "commandCenter.border": "#15202b99", + "sash.hoverBorder": "#65c89b", + "statusBar.background": "#42b883", + "statusBar.foreground": "#15202b", + "statusBarItem.hoverBackground": "#359268", + "statusBarItem.remoteBackground": "#42b883", + "statusBarItem.remoteForeground": "#15202b", + "titleBar.activeBackground": "#42b883", + "titleBar.activeForeground": "#15202b", + "titleBar.inactiveBackground": "#42b88399", + "titleBar.inactiveForeground": "#15202b99" + }, + "peacock.color": "#42b883" +} \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index 487669e0a..815485072 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -79,11 +79,10 @@ DJANGO_APPS = [ "django.forms", ] THIRD_PARTY_APPS = [ - "crispy_forms", - "crispy_bootstrap5", "allauth", "allauth.account", "allauth.socialaccount", + "django-htmx", {%- if cookiecutter.use_celery == 'y' %} "django_celery_beat", {%- endif %} @@ -153,6 +152,7 @@ MIDDLEWARE = [ {%- if cookiecutter.use_whitenoise == 'y' %} "whitenoise.middleware.WhiteNoiseMiddleware", {%- endif %} + "django_htmx.middleware.HtmxMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.locale.LocaleMiddleware", "django.middleware.common.CommonMiddleware", diff --git a/{{cookiecutter.project_slug}}/package.json b/{{cookiecutter.project_slug}}/package.json index fdfd26bf3..223192cd7 100644 --- a/{{cookiecutter.project_slug}}/package.json +++ b/{{cookiecutter.project_slug}}/package.json @@ -7,7 +7,6 @@ "@popperjs/core": "^2.10.2", "autoprefixer": "^10.4.0", "babel-loader": "^9.1.2", - "bootstrap": "^5.2.3", "browser-sync": "^2.27.7", "css-loader": "^6.5.1", "gulp-concat": "^2.6.1", @@ -32,7 +31,16 @@ "webpack-bundle-tracker": "^2.0.0", "webpack-cli": "^5.0.1", "webpack-dev-server": "^4.6.0", - "webpack-merge": "^5.8.0" + "webpack-merge": "^5.8.0", + "htmx.org": "^1.9.0", + "tailwindcss": "^3.3.2", + "@tailwindcss/forms": "^0.5.3", + "@tailwindcss/line-clamp": "^0.4.4", + "@tailwindcss/typography": "^0.5.9" + + }, + "dependencies": { + "alpinejs": "^3.12.2" }, "engines": { "node": "18" diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index 92d6b2a0d..5f50e2dfe 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -32,8 +32,6 @@ django==4.1.9 # pyup: < 4.2 # https://www.djangoproject.com/ django-environ==0.10.0 # https://github.com/joke2k/django-environ django-model-utils==4.3.1 # https://github.com/jazzband/django-model-utils django-allauth==0.54.0 # https://github.com/pennersr/django-allauth -django-crispy-forms==2.0 # https://github.com/django-crispy-forms/django-crispy-forms -crispy-bootstrap5==0.7 # https://github.com/django-crispy-forms/crispy-bootstrap5 {%- if cookiecutter.frontend_pipeline == 'Django Compressor' %} django-compressor==4.3.1 # https://github.com/django-compressor/django-compressor {%- endif %} @@ -48,3 +46,4 @@ drf-spectacular==0.26.2 # https://github.com/tfranzel/drf-spectacular {%- if cookiecutter.frontend_pipeline == 'Webpack' %} django-webpack-loader==2.0.1 # https://github.com/django-webpack/django-webpack-loader {%- endif %} +django-htmx==1.15.0 # https://django-htmx.readthedocs.io/en/latest/installation.html diff --git a/{{cookiecutter.project_slug}}/tailwind.config.js b/{{cookiecutter.project_slug}}/tailwind.config.js new file mode 100644 index 000000000..26b8567b8 --- /dev/null +++ b/{{cookiecutter.project_slug}}/tailwind.config.js @@ -0,0 +1,15 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + mode: 'jit', + content: [ + './{{cookiecutter.project_slug}}/templates/*.html', './{{cookiecutter.project_slug}}/templates/**/*.html' + ], + theme: { + extend: {}, + }, + plugins: [ + require("@tailwindcss/forms"), + require("@tailwindcss/typography", require("@tailwindcss/line-clamp")), + ], + } + \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/css/project.css b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/css/project.css index f1d543daf..4a1c912f3 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/css/project.css +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/css/project.css @@ -1,13 +1 @@ /* These styles are generated from project.scss. */ - -.alert-debug { - color: black; - background-color: white; - border-color: #d6e9c6; -} - -.alert-error { - color: #b94a48; - background-color: #f2dede; - border-color: #eed3d7; -} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/js/vendors.js b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/js/vendors.js index 093840f87..82117fe38 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/js/vendors.js +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/js/vendors.js @@ -1,2 +1,2 @@ -import '@popperjs/core'; -import 'bootstrap'; +import Alpine from 'alpinejs'; +import 'htmx.org'; \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/custom_bootstrap_vars.scss b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/custom_bootstrap_vars.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/project.scss b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/project.scss index 43435aca8..16e81ead8 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/project.scss +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/static/sass/project.scss @@ -1,36 +1,3 @@ -@import 'custom_bootstrap_vars'; -@import '~bootstrap/scss/bootstrap'; - -// project specific CSS goes here - -/////////////// -// Variables // -/////////////// - -// Alert colors - -$white: #fff; -$mint-green: #d6e9c6; -$black: #000; -$pink: #f2dede; -$dark-pink: #eed3d7; -$red: #b94a48; - -//////////// -// Alerts // -//////////// - -// bootstrap alert CSS, translated to the django-standard levels of -// debug, info, success, warning, error - -.alert-debug { - background-color: $white; - border-color: $mint-green; - color: $black; -} - -.alert-error { - background-color: $pink; - border-color: $dark-pink; - color: $red; -} +@tailwind: base; +@tailwind: components; +@tailwind: utilities; diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/email.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/email.html index 1faa2b9fd..22a03ac69 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/email.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/email.html @@ -2,7 +2,6 @@ {% extends "account/base.html" %} {% load i18n %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Account" %}{% endblock %} @@ -52,7 +51,7 @@
{% csrf_token %} - {{ form|crispy }} + {{ form }}
diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/login.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/login.html index 25a292eda..9c4fc0cd7 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/login.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/login.html @@ -2,7 +2,6 @@ {% load i18n %} {% load account socialaccount %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Sign In" %}{% endblock %} @@ -48,7 +47,7 @@
{% csrf_token %} - {{ form|crispy }} + {{ form }} {% if redirect_field_value %} {% endif %} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_change.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_change.html index b8dd7ac53..0bd565174 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_change.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_change.html @@ -1,7 +1,6 @@ {% raw %}{% extends "account/base.html" %} {% load i18n %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Change Password" %}{% endblock %} @@ -10,7 +9,7 @@ {% csrf_token %} - {{ form|crispy }} + {{ form }}
{% endblock %} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset.html index f424b2111..9d395ab12 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset.html @@ -2,7 +2,6 @@ {% load i18n %} {% load account %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Password Reset" %}{% endblock %} @@ -17,7 +16,7 @@
{% csrf_token %} - {{ form|crispy }} + {{ form }}
diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset_from_key.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset_from_key.html index ce5d72a6d..11dbb8225 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset_from_key.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_reset_from_key.html @@ -1,7 +1,6 @@ {% raw %}{% extends "account/base.html" %} {% load i18n %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Change Password" %}{% endblock %} {% block inner %} @@ -14,7 +13,7 @@ {% if form %}
{% csrf_token %} - {{ form|crispy }} + {{ form }}
{% else %} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_set.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_set.html index 812410fc0..c6a6daadc 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_set.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/password_set.html @@ -1,7 +1,6 @@ {% raw %}{% extends "account/base.html" %} {% load i18n %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Set Password" %}{% endblock %} @@ -10,7 +9,7 @@
{% csrf_token %} - {{ form|crispy }} + {{ form }}
{% endblock %} diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/signup.html b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/signup.html index 8c1c11aca..d051693e7 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/signup.html +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/templates/account/signup.html @@ -1,7 +1,6 @@ {% raw %}{% extends "account/base.html" %} {% load i18n %} -{% load crispy_forms_tags %} {% block head_title %}{% translate "Signup" %}{% endblock %} @@ -12,7 +11,7 @@
{% csrf_token %} - {{ form|crispy }} + {{ form }} {% if redirect_field_value %} {% endif %}