falco-cli 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. {falco_cli-0.2.0 → falco_cli-0.2.2}/.pre-commit-config.yaml +1 -1
  2. {falco_cli-0.2.0 → falco_cli-0.2.2}/PKG-INFO +1 -1
  3. {falco_cli-0.2.0/demo/demo → falco_cli-0.2.2/demo/config}/settings.py +5 -5
  4. {falco_cli-0.2.0/demo/demo → falco_cli-0.2.2/demo/config}/urls.py +2 -2
  5. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/core/apps.py +1 -1
  6. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/orders/apps.py +1 -1
  7. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/apps.py +1 -1
  8. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/manage.py +1 -1
  9. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/tips_and_extra.rst +7 -0
  10. falco_cli-0.2.2/docs/images/project-tree.svg +206 -0
  11. {falco_cli-0.2.0 → falco_cli-0.2.2}/scripts/make_blueprints_from_demo.py +3 -3
  12. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/__about__.py +1 -1
  13. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/detail.html +1 -1
  14. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/update.html +1 -1
  15. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/config/settings.py +5 -1
  16. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/templates/base.html +3 -1
  17. falco_cli-0.2.2/src/falco_blueprints/project_name/project_name/users/forms.py +12 -0
  18. falco_cli-0.2.0/docs/images/project-tree.svg +0 -206
  19. {falco_cli-0.2.0 → falco_cli-0.2.2}/.all-contributorsrc +0 -0
  20. {falco_cli-0.2.0 → falco_cli-0.2.2}/.github/dependabot.yml +0 -0
  21. {falco_cli-0.2.0 → falco_cli-0.2.2}/.github/workflows/ci.yml +0 -0
  22. {falco_cli-0.2.0 → falco_cli-0.2.2}/.github/workflows/documentation.yml +0 -0
  23. {falco_cli-0.2.0 → falco_cli-0.2.2}/.github/workflows/pre-commit-auto-update.yml +0 -0
  24. {falco_cli-0.2.0 → falco_cli-0.2.2}/.gitignore +0 -0
  25. {falco_cli-0.2.0 → falco_cli-0.2.2}/.vscode/settings.json +0 -0
  26. {falco_cli-0.2.0 → falco_cli-0.2.2}/CODE_OF_CONDUCT.md +0 -0
  27. {falco_cli-0.2.0 → falco_cli-0.2.2}/LICENSE +0 -0
  28. {falco_cli-0.2.0 → falco_cli-0.2.2}/README.md +0 -0
  29. {falco_cli-0.2.0 → falco_cli-0.2.2}/all-contributorsrc +0 -0
  30. {falco_cli-0.2.0 → falco_cli-0.2.2}/assets/falco-logo.svg +0 -0
  31. {falco_cli-0.2.0/demo/core → falco_cli-0.2.2/demo/config}/__init__.py +0 -0
  32. {falco_cli-0.2.0/demo/demo → falco_cli-0.2.2/demo/config}/asgi.py +0 -0
  33. {falco_cli-0.2.0/demo/demo → falco_cli-0.2.2/demo/config}/wsgi.py +0 -0
  34. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/demo/__init__.py +0 -0
  35. {falco_cli-0.2.0/demo/orders → falco_cli-0.2.2/demo/demo/core}/__init__.py +0 -0
  36. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/core/utils.py +0 -0
  37. {falco_cli-0.2.0/demo/orders/migrations → falco_cli-0.2.2/demo/demo/orders}/__init__.py +0 -0
  38. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/orders/admin.py +0 -0
  39. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/orders/migrations/0001_initial.py +0 -0
  40. {falco_cli-0.2.0/demo/products → falco_cli-0.2.2/demo/demo/orders/migrations}/__init__.py +0 -0
  41. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/orders/models.py +0 -0
  42. {falco_cli-0.2.0/demo/products/migrations → falco_cli-0.2.2/demo/demo/products}/__init__.py +0 -0
  43. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/admin.py +0 -0
  44. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/forms.py +0 -0
  45. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/migrations/0001_initial.py +0 -0
  46. {falco_cli-0.2.0/src/falco_blueprints/project_name/config → falco_cli-0.2.2/demo/demo/products/migrations}/__init__.py +0 -0
  47. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/models.py +0 -0
  48. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/tests.py +0 -0
  49. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/urls.py +0 -0
  50. {falco_cli-0.2.0 → falco_cli-0.2.2/demo}/demo/products/views.py +0 -0
  51. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/requirements.txt +0 -0
  52. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/templates/base.html +0 -0
  53. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/templates/products/product_create.html +0 -0
  54. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/templates/products/product_detail.html +0 -0
  55. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/templates/products/product_list.html +0 -0
  56. {falco_cli-0.2.0 → falco_cli-0.2.2}/demo/templates/products/product_update.html +0 -0
  57. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/.rich-codex.yml +0 -0
  58. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/Makefile +0 -0
  59. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/_templates/partials/globaltoc-above.html +0 -0
  60. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/codeofconduct.rst +0 -0
  61. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/conf.py +0 -0
  62. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/contributing.rst +0 -0
  63. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/avoiding_god_models.rst +0 -0
  64. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/database_tips.rst +0 -0
  65. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/deployment.rst +0 -0
  66. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/dynamic_model_schema.rst +0 -0
  67. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/index.rst +0 -0
  68. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/interactive_user_interfaces.rst +0 -0
  69. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/logging_and_monitoring.rst +0 -0
  70. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/multitenancy.rst +0 -0
  71. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/optimizing_database_access.rst +0 -0
  72. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/permissions_and_authorization.rst +0 -0
  73. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/realtime.rst +0 -0
  74. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/running_project_in_a_container.rst +0 -0
  75. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/task_queues_and_schedulers.rst +0 -0
  76. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/use_sqlite_in_production.rst +0 -0
  77. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/writing_async_code.rst +0 -0
  78. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/writing_documentation.rst +0 -0
  79. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/guides/writing_tests.rst +0 -0
  80. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/images/logo_with_text.svg +0 -0
  81. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/index.rst +0 -0
  82. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/install.rst +0 -0
  83. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/license.rst +0 -0
  84. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/make.bat +0 -0
  85. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/crud.rst +0 -0
  86. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/htmx.rst +0 -0
  87. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/index.rst +0 -0
  88. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/make_superuser.rst +0 -0
  89. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/migrations.rst +0 -0
  90. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/start_project.rst +0 -0
  91. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/sync_dotenv.rst +0 -0
  92. {falco_cli-0.2.0 → falco_cli-0.2.2}/docs/the_cli/work.rst +0 -0
  93. {falco_cli-0.2.0 → falco_cli-0.2.2}/pyproject.toml +0 -0
  94. {falco_cli-0.2.0 → falco_cli-0.2.2}/scripts/update_readme_guides.py +0 -0
  95. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/__init__.py +0 -0
  96. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/__main__.py +0 -0
  97. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/__init__.py +0 -0
  98. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/htmx.py +0 -0
  99. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/htmx_extension.py +0 -0
  100. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/install_crud_utils.py +0 -0
  101. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/make_superuser.py +0 -0
  102. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/model_crud.py +0 -0
  103. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/reset_migrations.py +0 -0
  104. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/rm_migrations.py +0 -0
  105. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/start_project.py +0 -0
  106. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/sync_dotenv.py +0 -0
  107. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/commands/work.py +0 -0
  108. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco/utils.py +0 -0
  109. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/create.html +0 -0
  110. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/forms.py.bp +0 -0
  111. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/list.html +0 -0
  112. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/utils.py +0 -0
  113. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/crud/views.py.bp +0 -0
  114. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/.env.template +0 -0
  115. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/.github/dependabot.yml +0 -0
  116. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/.github/workflows/ci.yml +0 -0
  117. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/.gitignore +0 -0
  118. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/.pre-commit-config.yaml +0 -0
  119. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/README.md +0 -0
  120. {falco_cli-0.2.0/src/falco_blueprints/project_name/deploy → falco_cli-0.2.2/src/falco_blueprints/project_name/config}/__init__.py +0 -0
  121. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/config/asgi.py +0 -0
  122. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/config/urls.py +0 -0
  123. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/config/wsgi.py +0 -0
  124. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/deploy/Dockerfile +0 -0
  125. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/deploy/entrypoint.sh +0 -0
  126. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/deploy/gunicorn.conf.py +0 -0
  127. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/manage.py +0 -0
  128. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/playground.ipynb +0 -0
  129. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/__init__.py +0 -0
  130. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/core/__init__.py +0 -0
  131. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/core/apps.py +0 -0
  132. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/static/vendors/htmx/htmx.min.js +0 -0
  133. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/templates/home.html +0 -0
  134. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/__init__.py +0 -0
  135. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/admin.py +0 -0
  136. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/apps.py +0 -0
  137. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/migrations/0001_initial.py +0 -0
  138. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/migrations/__init__.py +0 -0
  139. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/project_name/users/models.py +0 -0
  140. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/pyproject.toml +0 -0
  141. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/tests/__init__.py +0 -0
  142. {falco_cli-0.2.0 → falco_cli-0.2.2}/src/falco_blueprints/project_name/tests/test_assert_true.py +0 -0
  143. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/__init__.py +0 -0
  144. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_crud.py +0 -0
  145. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_htmx.py +0 -0
  146. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_htmx_extension.py +0 -0
  147. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_install_crud_utils.py +0 -0
  148. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_make_superuser.py +0 -0
  149. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_reset_migrations.py +0 -0
  150. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_rm_migrations.py +0 -0
  151. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_start_project.py +0 -0
  152. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/commands/test_sync_dotenv.py +0 -0
  153. {falco_cli-0.2.0 → falco_cli-0.2.2}/tests/conftest.py +0 -0
@@ -22,7 +22,7 @@ repos:
22
22
  hooks:
23
23
  - id: trailing-whitespace
24
24
  exclude: '\.svg$'
25
- - id: end-of-file-fixer
25
+ # - id: end-of-file-fixer
26
26
  # - id: check-added-large-files
27
27
 
28
28
  # - repo: https://github.com/myint/autoflake
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: falco-cli
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Enhance your Django developer experience: CLI and Guides for the Modern Developer.
5
5
  Project-URL: Homepage, https://falco.oluwatobi.dev/
6
6
  Project-URL: Documentation, https://falco.oluwatobi.dev/
@@ -36,13 +36,13 @@ INSTALLED_APPS = [
36
36
  "django.contrib.sessions",
37
37
  "django.contrib.messages",
38
38
  "django.contrib.staticfiles",
39
- "core",
40
- "products",
41
- "orders",
42
39
  "crispy_forms",
43
40
  "crispy_tailwind",
44
41
  "template_partials",
45
42
  "django_htmx",
43
+ "demo.core",
44
+ "demo.products",
45
+ "demo.orders",
46
46
  ]
47
47
 
48
48
  MIDDLEWARE = [
@@ -56,7 +56,7 @@ MIDDLEWARE = [
56
56
  "django_htmx.middleware.HtmxMiddleware",
57
57
  ]
58
58
 
59
- ROOT_URLCONF = "demo.urls"
59
+ ROOT_URLCONF = "config.urls"
60
60
 
61
61
  TEMPLATES = [
62
62
  {
@@ -74,7 +74,7 @@ TEMPLATES = [
74
74
  },
75
75
  ]
76
76
 
77
- WSGI_APPLICATION = "demo.wsgi.application"
77
+ WSGI_APPLICATION = "config.wsgi.application"
78
78
 
79
79
 
80
80
  # Database
@@ -7,6 +7,6 @@ from django.views.generic.base import RedirectView
7
7
  urlpatterns = [
8
8
  path("admin/", admin.site.urls),
9
9
  path("", RedirectView.as_view(url=reverse_lazy("products:product_list"))),
10
- path("products/", include("products.urls", namespace="products")),
11
- # path("orders/", include("orders.urls", namespace="orders")),
10
+ path("products/", include("demo.products.urls", namespace="products")),
11
+ # path("orders/", include("demo.orders.urls", namespace="orders")),
12
12
  ]
@@ -3,4 +3,4 @@ from django.apps import AppConfig
3
3
 
4
4
  class CoreConfig(AppConfig):
5
5
  default_auto_field = "django.db.models.BigAutoField"
6
- name = "core"
6
+ name = "demo.core"
@@ -3,4 +3,4 @@ from django.apps import AppConfig
3
3
 
4
4
  class OrdersConfig(AppConfig):
5
5
  default_auto_field = "django.db.models.BigAutoField"
6
- name = "orders"
6
+ name = "demo.orders"
@@ -3,4 +3,4 @@ from django.apps import AppConfig
3
3
 
4
4
  class ProductsConfig(AppConfig):
5
5
  default_auto_field = "django.db.models.BigAutoField"
6
- name = "products"
6
+ name = "demo.products"
@@ -6,7 +6,7 @@ import sys
6
6
 
7
7
  def main():
8
8
  """Run administrative tasks."""
9
- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo.settings")
9
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
10
10
  try:
11
11
  from django.core.management import execute_from_command_line
12
12
  except ImportError as exc:
@@ -18,6 +18,13 @@ Local email testing
18
18
 
19
19
  https://github.com/axllent/mailpit
20
20
 
21
+ .. code-block::
22
+ :captions: settings.py
23
+
24
+ EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend",
25
+ EMAIL_HOST = "localhost"
26
+ EMAIL_PORT = 1025
27
+
21
28
 
22
29
  Lifecycle not signals
23
30
  ---------------------
@@ -0,0 +1,206 @@
1
+ <svg class="rich-terminal" viewBox="0 0 994 977.1999999999999" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Generated with Rich https://www.textualize.io -->
3
+ <style>
4
+
5
+ @font-face {
6
+ font-family: "Fira Code";
7
+ src: local("FiraCode-Regular"),
8
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
9
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
10
+ font-style: normal;
11
+ font-weight: 400;
12
+ }
13
+ @font-face {
14
+ font-family: "Fira Code";
15
+ src: local("FiraCode-Bold"),
16
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
17
+ url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
18
+ font-style: bold;
19
+ font-weight: 700;
20
+ }
21
+
22
+ .terminal-4175178640-matrix {
23
+ font-family: Fira Code, monospace;
24
+ font-size: 20px;
25
+ line-height: 24.4px;
26
+ font-variant-east-asian: full-width;
27
+ }
28
+
29
+ .terminal-4175178640-title {
30
+ font-size: 18px;
31
+ font-weight: bold;
32
+ font-family: arial;
33
+ }
34
+
35
+ .terminal-4175178640-r1 { fill: #d9d9d9 }
36
+ </style>
37
+
38
+ <defs>
39
+ <clipPath id="terminal-4175178640-clip-terminal">
40
+ <rect x="0" y="0" width="975.0" height="926.1999999999999" />
41
+ </clipPath>
42
+ <clipPath id="terminal-4175178640-line-0">
43
+ <rect x="0" y="1.5" width="976" height="24.65"/>
44
+ </clipPath>
45
+ <clipPath id="terminal-4175178640-line-1">
46
+ <rect x="0" y="25.9" width="976" height="24.65"/>
47
+ </clipPath>
48
+ <clipPath id="terminal-4175178640-line-2">
49
+ <rect x="0" y="50.3" width="976" height="24.65"/>
50
+ </clipPath>
51
+ <clipPath id="terminal-4175178640-line-3">
52
+ <rect x="0" y="74.7" width="976" height="24.65"/>
53
+ </clipPath>
54
+ <clipPath id="terminal-4175178640-line-4">
55
+ <rect x="0" y="99.1" width="976" height="24.65"/>
56
+ </clipPath>
57
+ <clipPath id="terminal-4175178640-line-5">
58
+ <rect x="0" y="123.5" width="976" height="24.65"/>
59
+ </clipPath>
60
+ <clipPath id="terminal-4175178640-line-6">
61
+ <rect x="0" y="147.9" width="976" height="24.65"/>
62
+ </clipPath>
63
+ <clipPath id="terminal-4175178640-line-7">
64
+ <rect x="0" y="172.3" width="976" height="24.65"/>
65
+ </clipPath>
66
+ <clipPath id="terminal-4175178640-line-8">
67
+ <rect x="0" y="196.7" width="976" height="24.65"/>
68
+ </clipPath>
69
+ <clipPath id="terminal-4175178640-line-9">
70
+ <rect x="0" y="221.1" width="976" height="24.65"/>
71
+ </clipPath>
72
+ <clipPath id="terminal-4175178640-line-10">
73
+ <rect x="0" y="245.5" width="976" height="24.65"/>
74
+ </clipPath>
75
+ <clipPath id="terminal-4175178640-line-11">
76
+ <rect x="0" y="269.9" width="976" height="24.65"/>
77
+ </clipPath>
78
+ <clipPath id="terminal-4175178640-line-12">
79
+ <rect x="0" y="294.3" width="976" height="24.65"/>
80
+ </clipPath>
81
+ <clipPath id="terminal-4175178640-line-13">
82
+ <rect x="0" y="318.7" width="976" height="24.65"/>
83
+ </clipPath>
84
+ <clipPath id="terminal-4175178640-line-14">
85
+ <rect x="0" y="343.1" width="976" height="24.65"/>
86
+ </clipPath>
87
+ <clipPath id="terminal-4175178640-line-15">
88
+ <rect x="0" y="367.5" width="976" height="24.65"/>
89
+ </clipPath>
90
+ <clipPath id="terminal-4175178640-line-16">
91
+ <rect x="0" y="391.9" width="976" height="24.65"/>
92
+ </clipPath>
93
+ <clipPath id="terminal-4175178640-line-17">
94
+ <rect x="0" y="416.3" width="976" height="24.65"/>
95
+ </clipPath>
96
+ <clipPath id="terminal-4175178640-line-18">
97
+ <rect x="0" y="440.7" width="976" height="24.65"/>
98
+ </clipPath>
99
+ <clipPath id="terminal-4175178640-line-19">
100
+ <rect x="0" y="465.1" width="976" height="24.65"/>
101
+ </clipPath>
102
+ <clipPath id="terminal-4175178640-line-20">
103
+ <rect x="0" y="489.5" width="976" height="24.65"/>
104
+ </clipPath>
105
+ <clipPath id="terminal-4175178640-line-21">
106
+ <rect x="0" y="513.9" width="976" height="24.65"/>
107
+ </clipPath>
108
+ <clipPath id="terminal-4175178640-line-22">
109
+ <rect x="0" y="538.3" width="976" height="24.65"/>
110
+ </clipPath>
111
+ <clipPath id="terminal-4175178640-line-23">
112
+ <rect x="0" y="562.7" width="976" height="24.65"/>
113
+ </clipPath>
114
+ <clipPath id="terminal-4175178640-line-24">
115
+ <rect x="0" y="587.1" width="976" height="24.65"/>
116
+ </clipPath>
117
+ <clipPath id="terminal-4175178640-line-25">
118
+ <rect x="0" y="611.5" width="976" height="24.65"/>
119
+ </clipPath>
120
+ <clipPath id="terminal-4175178640-line-26">
121
+ <rect x="0" y="635.9" width="976" height="24.65"/>
122
+ </clipPath>
123
+ <clipPath id="terminal-4175178640-line-27">
124
+ <rect x="0" y="660.3" width="976" height="24.65"/>
125
+ </clipPath>
126
+ <clipPath id="terminal-4175178640-line-28">
127
+ <rect x="0" y="684.7" width="976" height="24.65"/>
128
+ </clipPath>
129
+ <clipPath id="terminal-4175178640-line-29">
130
+ <rect x="0" y="709.1" width="976" height="24.65"/>
131
+ </clipPath>
132
+ <clipPath id="terminal-4175178640-line-30">
133
+ <rect x="0" y="733.5" width="976" height="24.65"/>
134
+ </clipPath>
135
+ <clipPath id="terminal-4175178640-line-31">
136
+ <rect x="0" y="757.9" width="976" height="24.65"/>
137
+ </clipPath>
138
+ <clipPath id="terminal-4175178640-line-32">
139
+ <rect x="0" y="782.3" width="976" height="24.65"/>
140
+ </clipPath>
141
+ <clipPath id="terminal-4175178640-line-33">
142
+ <rect x="0" y="806.7" width="976" height="24.65"/>
143
+ </clipPath>
144
+ <clipPath id="terminal-4175178640-line-34">
145
+ <rect x="0" y="831.1" width="976" height="24.65"/>
146
+ </clipPath>
147
+ <clipPath id="terminal-4175178640-line-35">
148
+ <rect x="0" y="855.5" width="976" height="24.65"/>
149
+ </clipPath>
150
+ <clipPath id="terminal-4175178640-line-36">
151
+ <rect x="0" y="879.9" width="976" height="24.65"/>
152
+ </clipPath>
153
+ </defs>
154
+
155
+ <rect fill="#0c0c0c" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="992" height="975.2" rx="8"/>
156
+ <g transform="translate(26,22)">
157
+ <circle cx="0" cy="0" r="7" fill="#ff5f57"/>
158
+ <circle cx="22" cy="0" r="7" fill="#febc2e"/>
159
+ <circle cx="44" cy="0" r="7" fill="#28c840"/>
160
+ </g>
161
+
162
+ <g transform="translate(9, 41)" clip-path="url(#terminal-4175178640-clip-terminal)">
163
+
164
+ <g class="terminal-4175178640-matrix">
165
+ <text class="terminal-4175178640-r1" x="0" y="20" textLength="549" clip-path="url(#terminal-4175178640-line-0)">$&#160;tree&#160;-L&#160;3&#160;src/falco_blueprints/project_name</text><text class="terminal-4175178640-r1" x="976" y="20" textLength="12.2" clip-path="url(#terminal-4175178640-line-0)">
166
+ </text><text class="terminal-4175178640-r1" x="0" y="44.4" textLength="402.6" clip-path="url(#terminal-4175178640-line-1)">src/falco_blueprints/project_name</text><text class="terminal-4175178640-r1" x="976" y="44.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-1)">
167
+ </text><text class="terminal-4175178640-r1" x="0" y="68.8" textLength="122" clip-path="url(#terminal-4175178640-line-2)">├──&#160;config</text><text class="terminal-4175178640-r1" x="976" y="68.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-2)">
168
+ </text><text class="terminal-4175178640-r1" x="0" y="93.2" textLength="183" clip-path="url(#terminal-4175178640-line-3)">│  &#160;├──&#160;asgi.py</text><text class="terminal-4175178640-r1" x="976" y="93.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-3)">
169
+ </text><text class="terminal-4175178640-r1" x="0" y="117.6" textLength="231.8" clip-path="url(#terminal-4175178640-line-4)">│  &#160;├──&#160;__init__.py</text><text class="terminal-4175178640-r1" x="976" y="117.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-4)">
170
+ </text><text class="terminal-4175178640-r1" x="0" y="142" textLength="231.8" clip-path="url(#terminal-4175178640-line-5)">│  &#160;├──&#160;settings.py</text><text class="terminal-4175178640-r1" x="976" y="142" textLength="12.2" clip-path="url(#terminal-4175178640-line-5)">
171
+ </text><text class="terminal-4175178640-r1" x="0" y="166.4" textLength="183" clip-path="url(#terminal-4175178640-line-6)">│  &#160;├──&#160;urls.py</text><text class="terminal-4175178640-r1" x="976" y="166.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-6)">
172
+ </text><text class="terminal-4175178640-r1" x="0" y="190.8" textLength="183" clip-path="url(#terminal-4175178640-line-7)">│  &#160;└──&#160;wsgi.py</text><text class="terminal-4175178640-r1" x="976" y="190.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-7)">
173
+ </text><text class="terminal-4175178640-r1" x="0" y="215.2" textLength="122" clip-path="url(#terminal-4175178640-line-8)">├──&#160;deploy</text><text class="terminal-4175178640-r1" x="976" y="215.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-8)">
174
+ </text><text class="terminal-4175178640-r1" x="0" y="239.6" textLength="219.6" clip-path="url(#terminal-4175178640-line-9)">│  &#160;├──&#160;Dockerfile</text><text class="terminal-4175178640-r1" x="976" y="239.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-9)">
175
+ </text><text class="terminal-4175178640-r1" x="0" y="264" textLength="256.2" clip-path="url(#terminal-4175178640-line-10)">│  &#160;├──&#160;entrypoint.sh</text><text class="terminal-4175178640-r1" x="976" y="264" textLength="12.2" clip-path="url(#terminal-4175178640-line-10)">
176
+ </text><text class="terminal-4175178640-r1" x="0" y="288.4" textLength="292.8" clip-path="url(#terminal-4175178640-line-11)">│  &#160;└──&#160;gunicorn.conf.py</text><text class="terminal-4175178640-r1" x="976" y="288.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-11)">
177
+ </text><text class="terminal-4175178640-r1" x="0" y="312.8" textLength="158.6" clip-path="url(#terminal-4175178640-line-12)">├──&#160;manage.py</text><text class="terminal-4175178640-r1" x="976" y="312.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-12)">
178
+ </text><text class="terminal-4175178640-r1" x="0" y="337.2" textLength="244" clip-path="url(#terminal-4175178640-line-13)">├──&#160;playground.ipynb</text><text class="terminal-4175178640-r1" x="976" y="337.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-13)">
179
+ </text><text class="terminal-4175178640-r1" x="0" y="361.6" textLength="195.2" clip-path="url(#terminal-4175178640-line-14)">├──&#160;project_name</text><text class="terminal-4175178640-r1" x="976" y="361.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-14)">
180
+ </text><text class="terminal-4175178640-r1" x="0" y="386" textLength="146.4" clip-path="url(#terminal-4175178640-line-15)">│  &#160;├──&#160;core</text><text class="terminal-4175178640-r1" x="976" y="386" textLength="12.2" clip-path="url(#terminal-4175178640-line-15)">
181
+ </text><text class="terminal-4175178640-r1" x="0" y="410.4" textLength="231.8" clip-path="url(#terminal-4175178640-line-16)">│  &#160;│  &#160;├──&#160;apps.py</text><text class="terminal-4175178640-r1" x="976" y="410.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-16)">
182
+ </text><text class="terminal-4175178640-r1" x="0" y="434.8" textLength="280.6" clip-path="url(#terminal-4175178640-line-17)">│  &#160;│  &#160;└──&#160;__init__.py</text><text class="terminal-4175178640-r1" x="976" y="434.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-17)">
183
+ </text><text class="terminal-4175178640-r1" x="0" y="459.2" textLength="231.8" clip-path="url(#terminal-4175178640-line-18)">│  &#160;├──&#160;__init__.py</text><text class="terminal-4175178640-r1" x="976" y="459.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-18)">
184
+ </text><text class="terminal-4175178640-r1" x="0" y="483.6" textLength="170.8" clip-path="url(#terminal-4175178640-line-19)">│  &#160;├──&#160;static</text><text class="terminal-4175178640-r1" x="976" y="483.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-19)">
185
+ </text><text class="terminal-4175178640-r1" x="0" y="508" textLength="231.8" clip-path="url(#terminal-4175178640-line-20)">│  &#160;│  &#160;└──&#160;vendors</text><text class="terminal-4175178640-r1" x="976" y="508" textLength="12.2" clip-path="url(#terminal-4175178640-line-20)">
186
+ </text><text class="terminal-4175178640-r1" x="0" y="532.4" textLength="207.4" clip-path="url(#terminal-4175178640-line-21)">│  &#160;├──&#160;templates</text><text class="terminal-4175178640-r1" x="976" y="532.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-21)">
187
+ </text><text class="terminal-4175178640-r1" x="0" y="556.8" textLength="256.2" clip-path="url(#terminal-4175178640-line-22)">│  &#160;│  &#160;├──&#160;base.html</text><text class="terminal-4175178640-r1" x="976" y="556.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-22)">
188
+ </text><text class="terminal-4175178640-r1" x="0" y="581.2" textLength="256.2" clip-path="url(#terminal-4175178640-line-23)">│  &#160;│  &#160;└──&#160;home.html</text><text class="terminal-4175178640-r1" x="976" y="581.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-23)">
189
+ </text><text class="terminal-4175178640-r1" x="0" y="605.6" textLength="158.6" clip-path="url(#terminal-4175178640-line-24)">│  &#160;└──&#160;users</text><text class="terminal-4175178640-r1" x="976" y="605.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-24)">
190
+ </text><text class="terminal-4175178640-r1" x="0" y="630" textLength="244" clip-path="url(#terminal-4175178640-line-25)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;admin.py</text><text class="terminal-4175178640-r1" x="976" y="630" textLength="12.2" clip-path="url(#terminal-4175178640-line-25)">
191
+ </text><text class="terminal-4175178640-r1" x="0" y="654.4" textLength="231.8" clip-path="url(#terminal-4175178640-line-26)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;apps.py</text><text class="terminal-4175178640-r1" x="976" y="654.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-26)">
192
+ </text><text class="terminal-4175178640-r1" x="0" y="678.8" textLength="244" clip-path="url(#terminal-4175178640-line-27)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;forms.py</text><text class="terminal-4175178640-r1" x="976" y="678.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-27)">
193
+ </text><text class="terminal-4175178640-r1" x="0" y="703.2" textLength="280.6" clip-path="url(#terminal-4175178640-line-28)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;__init__.py</text><text class="terminal-4175178640-r1" x="976" y="703.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-28)">
194
+ </text><text class="terminal-4175178640-r1" x="0" y="727.6" textLength="268.4" clip-path="url(#terminal-4175178640-line-29)">│  &#160;&#160;&#160;&#160;&#160;├──&#160;migrations</text><text class="terminal-4175178640-r1" x="976" y="727.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-29)">
195
+ </text><text class="terminal-4175178640-r1" x="0" y="752" textLength="256.2" clip-path="url(#terminal-4175178640-line-30)">│  &#160;&#160;&#160;&#160;&#160;└──&#160;models.py</text><text class="terminal-4175178640-r1" x="976" y="752" textLength="12.2" clip-path="url(#terminal-4175178640-line-30)">
196
+ </text><text class="terminal-4175178640-r1" x="0" y="776.4" textLength="219.6" clip-path="url(#terminal-4175178640-line-31)">├──&#160;pyproject.toml</text><text class="terminal-4175178640-r1" x="976" y="776.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-31)">
197
+ </text><text class="terminal-4175178640-r1" x="0" y="800.8" textLength="158.6" clip-path="url(#terminal-4175178640-line-32)">├──&#160;README.md</text><text class="terminal-4175178640-r1" x="976" y="800.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-32)">
198
+ </text><text class="terminal-4175178640-r1" x="0" y="825.2" textLength="109.8" clip-path="url(#terminal-4175178640-line-33)">└──&#160;tests</text><text class="terminal-4175178640-r1" x="976" y="825.2" textLength="12.2" clip-path="url(#terminal-4175178640-line-33)">
199
+ </text><text class="terminal-4175178640-r1" x="0" y="849.6" textLength="231.8" clip-path="url(#terminal-4175178640-line-34)">&#160;&#160;&#160;&#160;├──&#160;__init__.py</text><text class="terminal-4175178640-r1" x="976" y="849.6" textLength="12.2" clip-path="url(#terminal-4175178640-line-34)">
200
+ </text><text class="terminal-4175178640-r1" x="0" y="874" textLength="329.4" clip-path="url(#terminal-4175178640-line-35)">&#160;&#160;&#160;&#160;└──&#160;test_assert_true.py</text><text class="terminal-4175178640-r1" x="976" y="874" textLength="12.2" clip-path="url(#terminal-4175178640-line-35)">
201
+ </text><text class="terminal-4175178640-r1" x="976" y="898.4" textLength="12.2" clip-path="url(#terminal-4175178640-line-36)">
202
+ </text><text class="terminal-4175178640-r1" x="0" y="922.8" textLength="292.8" clip-path="url(#terminal-4175178640-line-37)">11&#160;directories,&#160;24&#160;files</text><text class="terminal-4175178640-r1" x="976" y="922.8" textLength="12.2" clip-path="url(#terminal-4175178640-line-37)">
203
+ </text>
204
+ </g>
205
+ </g>
206
+ </svg>
@@ -1,8 +1,8 @@
1
1
  from pathlib import Path
2
2
 
3
3
  root_dir = Path(__file__).parent.parent
4
- demo_dir = root_dir / "demo"
5
- products_app_dir = demo_dir / "products"
4
+ demo_apps_dir = root_dir / "demo/demo"
5
+ products_app_dir = demo_apps_dir / "products"
6
6
  falco_crud_blueprints_dir = root_dir / "src" / "falco_blueprints" / "crud"
7
7
 
8
8
  python_blueprints = ("views.py", "forms.py")
@@ -32,7 +32,7 @@ def copy_python_files():
32
32
  # copy crud utils file
33
33
  utils_file = falco_crud_blueprints_dir / "utils.py"
34
34
  utils_file.touch(exist_ok=True)
35
- utils_file.write_text((demo_dir / "core/utils.py").read_text())
35
+ utils_file.write_text((demo_apps_dir / "core/utils.py").read_text())
36
36
 
37
37
 
38
38
  def copy_html_files():
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present Tobi DEGNON <tobidegnon@proton.me>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.2.0"
4
+ __version__ = "0.2.2"
@@ -5,7 +5,7 @@
5
5
 
6
6
  <section class="flex justify-between">
7
7
  {% endverbatim %}
8
- <h1 class="text-lg font-bold">{{ model_name}} - {% verbatim %}{{ product }}{% endverbatim %}</h1>
8
+ <h1 class="text-lg font-bold">{{ model_name}} - {{ "{"|add:"{" }} {{ model_name|lower }} {{ "}"|add:"}" }} </h1>
9
9
 
10
10
  <a href="{{list_view_url|safe}}" class="text-blue-600 hover:underline hover:text-blue-500">
11
11
  All {{model_verbose_name_plural|capfirst}}
@@ -6,7 +6,7 @@
6
6
 
7
7
  <section class="flex justify-between">
8
8
  {% endverbatim %}
9
- <h1 class="text-lg font-bold py-4"> {{ model_name}} Update - {% verbatim %}{{ product }}{% endverbatim %}</h1>
9
+ <h1 class="text-lg font-bold py-4"> {{ model_name}} Update - {{ "{"|add:"{" }} {{ model_name|lower }} {{ "}"|add:"}" }}</h1>
10
10
 
11
11
  <a href="{{list_view_url|safe}}" class="text-blue-600 hover:underline hover:text-blue-500">
12
12
  All {{model_verbose_name_plural|capfirst}}
@@ -128,8 +128,12 @@ ACCOUNT_USERNAME_REQUIRED = False
128
128
  ACCOUNT_AUTHENTICATION_METHOD = "email"
129
129
  ACCOUNT_EMAIL_REQUIRED = True
130
130
  ACCOUNT_EMAIL_VERIFICATION = "optional"
131
+ ACCOUNT_FORMS = {"signup": "{{ project_name }}.users.forms.UserSignupForm"}
131
132
 
132
- EMAIL_BACKEND = env.email_url("DJANGO_EMAIL_URL", default="consolemail://")
133
+ EMAIL_BACKEND = env(
134
+ "DJANGO_EMAIL_BACKEND",
135
+ default="django.core.mail.backends.console.EmailBackend",
136
+ )
133
137
 
134
138
  CRISPY_ALLOWED_TEMPLATE_PACKS = "tailwind"
135
139
  CRISPY_TEMPLATE_PACK = "tailwind"
@@ -10,13 +10,15 @@
10
10
  <meta name="description" content="">
11
11
  <meta name="keywords" content="">
12
12
  {% endverbatim %}<title>{{ project_name }}</title>{% verbatim %}
13
- <script defer src="{% static "vendors/htmx/htmx.min.js" %}"></script>
14
13
  {% tailwind_css %}
14
+ <script defer src="{% static "vendors/htmx/htmx.min.js" %}"></script>
15
15
  {% django_htmx_script %}
16
+ {% block extra_head %}{% endblock extra_head %}
16
17
  </head>
17
18
  <body hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'>
18
19
  {% block content %}
19
20
  {% endblock content %}
21
+ {% block extra_body %}{% endblock extra_body %}
20
22
  </body>
21
23
  </html>
22
24
  {% endverbatim %}
@@ -0,0 +1,12 @@
1
+ from allauth.account.forms import SignupForm
2
+
3
+
4
+ class UserSignupForm(SignupForm):
5
+ """
6
+ Form that will be rendered on a user sign up section/screen.
7
+ Default fields will be added automatically.
8
+ Check UserSocialSignupForm for accounts created from social.
9
+ """
10
+
11
+ # This prevent django-fastdev from raising an error when accessing the signup page
12
+ clean_username = None