Changelog¶
v0.22.1¶
Released on 2024-03-19 - GitHub - PyPI
What's changed
- fix: In the table generated by crud, url images are only displayed when they exist, to avoid fastdev template errors..
Full Changelog: v0.22.0...v0.22.1
v0.22.0¶
Released on 2024-03-19 - GitHub - PyPI
What's changed
- feat: Improve the generated crud code, the table now shows checkmarks for boolean fields and has a better look
- feat: The
create
andupdate
views have been updated to work with models with ImageField or FieldFields.
Full Changelog: v0.21.0...v0.22.0
v0.21.0¶
Released on 2024-03-18 - GitHub - PyPI
What's changed
- feat: Added a
for_htmx
decorator utils for simpler usage for htmx with template partials, the code was copied and adapted from https://github.com/spookylukey/django-htmx-patterns/blob/master/code/htmx_patterns/utils.py
Full Changelog: v0.20.0...v0.21.0
v0.20.0¶
Released on 2024-03-18 - GitHub - PyPI
What's Changed
- stlyle: Improve the crud table style, using icons for the actions tab
- refactor: The default pagge size for pagination is now
10
instead of20
Full Changelog: v0.19.0...v0.20.0
v0.19.0¶
Released on 2024-03-18 - GitHub - PyPI
What's Changed
- Better object list variable name for crud generated index views
- Added the model
verbose_name
to the html blueprints context - restructure start-project docs by @Tobi-De in #71
- Auto-update pre-commit hooks by @github-actions in #73
Full Changelog: v0.18.6...v0.19.0
v0.18.6¶
Released on 2024-03-08 - GitHub - PyPI
Wha's changed
- fix:
work
command fails with a custom user command using theaddress
option
Full Changelog: v0.18.5...v0.18.6
v0.18.4¶
Released on 2024-03-05 - GitHub - PyPI
Full Changelog: 0.18.3...v0.18.4
v0.18.0¶
Released on 2024-03-03 - GitHub - PyPI
What's changed
- feat: The
crud
command now adds date types on widgets for form fields of typeDateTimeField
,DateField
, andTimeField
. - feat: The
start-project
command can now work offline if a blueprint has already been downloaded once. - fix: The generated table on list pages was missing a column header.
Full Changelog: v0.17.0...v0.18.0
v0.17.0¶
Released on 2024-03-03 - GitHub - PyPI
What's changed
- refactor: blueprints html files now end with the extension
.jinja
.
Full Changelog: v0.16.1...v0.17.0
v0.16.1¶
Released on 2024-03-03 - GitHub - PyPI
What's changed
Mainly internal changes, cruft
is no longer a project dependency. pico
can now be specified as a blueprint.
Full Changelog: v0.16.0...v0.16.1
v0.16.0¶
Released on 2024-03-01 - GitHub - PyPI
What's changed
- feat: The
settings.py
file was greatly improved; the project environment is now simpler.DEBUG=False
denotes the production environment. - feat: The
sync-dotenv
command generates better defaults withDEBUG=False
(production mode).
Full Changelog: v0.15.0...v0.16.0
v0.15.0¶
Released on 2024-02-26 - GitHub - PyPI
What's Changed
- The
setup-admin
command was remove, the djangocreatesuperuser
command can do the exact same thing
Full Changelog: v0.14.0...v0.15.0
v0.14.0¶
Released on 2024-02-21 - GitHub - PyPI
What's changed
- feat: A
.env
file is now generated during project creation.
Full Changelog: v0.13.0...v0.14.0
v0.13.0¶
Released on 2024-02-21 - GitHub - PyPI
What's Changed
- Auto-update pre-commit hooks by @github-actions in #68
- feat: The
sync-dotenv
command can now print the.env
content to the console by @Tobi-De in this pull request. - feat: Added an option to customize the Django server address for the
work
command by @Tobi-De in this pull request.
New Contributors
- @github-actions made their first contribution in #68
Full Changelog: v0.12.0...v0.13.0
v0.12.0¶
Released on 2024-02-15 - GitHub - PyPI
What's Changed
- Feat: The Docker setup now uses
s6-overlay
to run both Django and Django-Q in a single container. - Refactor: The HTML files generated by the
crud
commands now use thecontent
block name instead ofmain_content
(sorry in advance if this breaks your workflow). - Refactor: The default templates were improved; there is now a block for the
header
and another one for thefooter
. - Feat: There are now views for the
favicon.ico
,.well-known/security.txt
, androbots.txt
files. - Feat: The generated projects now use django-health-check.
- Feat: The generated projects now use django-q-registry.
- Feat: The generated projects now use heroicons.
- Fix: Added missing boto3 dependency for Amazon SES.
- Chore: The Falco license was updated to comply with the MIT license.
- Docs: Added tissieres as a contributor for financial support in #63 (this gentleman provided me with a free VPS to experiment with; thanks a lot to him).
Many of the updates were inspired by django-twc-project.
Full Changelog: v0.11.0...v0.12.0
v0.11.0¶
Released on 2024-02-11 - GitHub - PyPI
What's changed
- fix: falco can now be used with a host without git installed
Full Changelog: v0.10.1...v0.11.0
v0.10.1¶
Released on 2024-02-08 - GitHub - PyPI
What's changed
- fix: Generated projects are created with the old crud-utils configuration key.
Full Changelog: v0.10.0...v0.10.1
v0.10.0¶
Released on 2024-02-02 - GitHub - PyPI
What's changed
- docs: Added note about shiv into the deployment guide.
- feat: Restored the original functionality of the
--exclude
option of thecrud
command. It now functions as it did initially, concealing fields from users in both forms and templates. A recent change was made to use it to exlcude non-editable fields from forms, but now all non-editable fields are automatically left out from forms.
Full Changelog: v0.9.0...v0.10.0
v0.9.0¶
Released on 2024-01-31 - GitHub - PyPI
What's changed
- feat: There is a new
[tool.falco.crud]
section to configure thecrud
command. Check it out here. - refactor: The
crud_utils
path has been moved to[tool.falco.crud.utils_path]
.
Full Changelog: v0.7.2...v0.9.0
v0.8.0¶
Released on 2024-01-31 - GitHub - PyPI
What's changed
Note
TL;DR : The crud
command now generates HTML templates with a main_content
block instead of a content
block.
This release primarily prepares for future updates. I'm developing a more appealing default set of HTML templates, similar to what djangox and cookiecutter-django offer.
First, I've renamed the --repo-url
option from the start-project
command to --blueprint (-b)
, which is more consistent with the rest of Falco.
Secondly, and this change might disrupt the current workflow of anyone using Falco right now (for which I sincerely apologize), I've revised the layout of the base.html
template and the crud
generated templates. The main difference is a change in block name.
Here's an example of what previous templates looked like:
{% load static %}
{% load django_htmx %}
{% load tailwind_cli %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<meta name="description" content="">
<meta name="keywords" content="">
{% tailwind_css %}
<title>books</title>
<script defer src="{% static "vendors/htmx/htmx.min.js" %}"></script>
{% django_htmx_script %}
{% block extra_head %}{% endblock extra_head %}
</head>
<body hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}' class="bg-gray-100">
<main class="container mx-auto py-5">
{% block content %}
{% endblock content %}
{% block extra_body %}{% endblock extra_body %}
</main>
</body>
</html>
and this is the updated layout structure:
{% load static %}
{% load django_htmx %}
{% load tailwind_cli %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta content="width=device-width, initial-scale=1" name="viewport" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<title>books</title>
{% tailwind_css %}
{% block css %}
{% endblock css %}
<script defer src="{% static "vendors/htmx/htmx.min.js" %}"></script>
{% django_htmx_script %}
{% block javascript %}
{% endblock javascript %}
</head>
<body hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'>
{% block content %}
<main class="container mx-auto">
{% block main_content %}
{% endblock main_content %}
</main>
{% endblock content %}
{% block modal %}
{% endblock modal %}
{% block inline_javascript %}
{% endblock inline_javascript %}
</body>
</html>
The changes that might impact you involve the introduction of a main_content
block. This block is now used by the crud
command for generating HTML templates, instead of the previously used content
block. The intention is to allow pages that form parts of the landing section of your site (such as about, home, contact, etc...) to completely override the content of the HTML body. However, most of your other pages, which are part of the application (for example a profile page for logged-in users), will share some components like a navigation bar or a footer. These can be written directly in the base.html
file. You can also add footer
and header
blocks inside the content block if you wish.
If you want to retain the previous behavior, you can have a custom blueprints
folder for the crud
command to use, you can acquire the previous version of the crud templates by following the process detailed below.
- Clone the falco repository
git clone https://github.com/Tobi-De/falco.git
- Revert the repository to a version containing the earlier
crud
templates
git reset --hard d2d7ed5fd9f09dc794942af7aa44d8458426b649
- Copy the contents of
src/falco/crud/html
into ablueprints
folder in your project.
cp -r src/falco/crud/html <your_project>/blueprints
- Now, execute the
crud
command with the--blueprints
option. This will generate html files utilizing thecontent
block.
# from the root of your project
falco crud --blueprints blueprints
Note
In the upcoming release, you'll have the option to configure the blueprints folder via the pyproject.toml
file.
This will save you from typing it each time.
Alternatively, you could simply update your base.html
template to match the new layout.
I hope this change doesn't bother too many people :)
Full Changelog: v0.7.2...v0.8.0
v0.7.2¶
Released on 2024-01-30 - GitHub - PyPI
What's changed
- Refactor: Rename the
--login
option of thecrud
command to--login-required
. - Docs: Provide a more illustrative example for the HTML context of custom templates in the CRUD section.
Full Changelog: v0.7.1...v0.7.2
v0.7.1¶
Released on 2024-01-28 - GitHub - PyPI
What's changed
- Fix: Remove extra space in the generated CRUD list html around a
for
tag, causing Djlint to trigger errors. - Docs: Add a note on mypy to the usage page.
- Fix: Remove extra
HttpRequest
in the generated CRUDviews.py
file that was causing mypy checks to fail.
Full Changelog: v0.7.0...v0.7.1
v0.7.0¶
Released on 2024-01-28 - GitHub - PyPI
What's changed
- feat: Added the
--blueprint
option to thecrud
command, allowing users to specify custom HTML files. - feat: CRUD utils are now installed during project creation, eliminating the need for users to run it manually.
- feat: The installation path of CRUD utils is recorded in the
[too.falco]
section, enabling reuse whenever the command is rerun, possibly for updates. - feat: The CRUD utils config is now used by the CRUD command to write imports in Python files, allows users to easily adjust imports for all generated code.
- feat: HTML files are formatted after project generation.
- docs: Added a typing section in the Tips and Extra page.
- fix: Improved the error message displayed when
setup-admin
is run multiple times. - And various other minor fixes.
Full Changelog: v0.6.0...v0.7.0
v0.6.0¶
Released on 2024-01-26 - GitHub - PyPI
What's changed
-
feat: Introduce a new
--repo-url
option to the start-project command, allowing users to specify the blueprints to use, such as a Bootstrap blueprint (work in progress). -
feat: Enhance the
htmx
command by saving the installed path. This enables updating the file without requiring the user to specify the path. -
fix: Address an issue in the
start-app
command where installed apps were missing a comma, causing a configuration error in the installed apps list.
Full Changelog: v0.5.0...v0.6.0
v0.5.0¶
Released on 2024-01-24 - GitHub - PyPI
What's changed
- feat: Added a new start-app command
- feat: The crud command now generate
admin
code - feat: The crud command now register the urls of the app to the project root urls config
Full Changelog: v0.4.1...v0.5.0
v0.4.1¶
Released on 2024-01-23 - GitHub - PyPI
What's Changed
Mainly internal updates:
- CRUD blueprints are now written in Jinja.
- Added
order_by
to the queryset on list pages (CRUD) to prevent warnings from the paginator.
Full Changelog: v0.4.0...v0.4.1
v0.4.0¶
Released on 2024-01-22 - GitHub - PyPI
What's changed
- The
install-crud-utils
command now includes atypes
module for htmx and authenticated userHttpRequest
. - The
install-crud-utils
command now accepts only oneoutput_dir
argument, so it's easier to reason about where utilities are installed. - The
crud
command now accepts a--login
option to decorate views withlogin_required
.
Full Changelog: v0.3.2...v0.4.0
v0.3.2¶
Released on 2024-01-21 - GitHub - PyPI
What's changed
The blueprint/cookiecutter is now maintained in its own repository. This change will simplify the implementation of the update feature.
With this change, the
start-project
now requires an internet connection to work, if I get enough complaints about this, I'll change that.
Full Changelog: v0.3.1...v0.3.2
v0.3.1¶
Released on 2024-01-20 - GitHub - PyPI
What's Changed
- Refactor: Switched from
django-admin
to cookiecutter for project generation. - Feat: Added a new option,
--root
, to thestart-project
command.
The directory
argument of the start-project
command now functions as described in the documentation. By default, the project is generated inside the specified directory. Previously, specifying a directory considered it the project root, resulting in the manage.py
file being placed there. To replicate this behavior, you now need to use the --root
option.
For example, running the command falco start-project journal /home/Builds
generates a journal
project inside the /home/Builds
directory. The manage.py
file will be located at /home/Builds/journal/manage.py
. However, using the --root
option considers /home/Builds
as the root of your project, and the manage.py
file will be located at /home/Builds/manage.py
.
Full Changelog: v0.3.0...v0.3.1
v0.3.0¶
Released on 2024-01-19 - GitHub - PyPI
What's Changed
- docs: complete the deployment guide
- refactor: rename
make-superuser
tosetup-admin
- docs: update diagram on the the task queues and schedulers guide
- fix: Remove non-existent makesuperuser command from entrypoint.sh
Full Changelog: v0.2.9...v0.3.0
v0.2.9¶
Released on 2024-01-16 - GitHub - PyPI
What's Changed
- docs: Update Python version in pre-commit configuration
- build: use rich to generate project-tree
- build: use hatch-pip-compile to generate requirements file
- ci: do not need to update dependencies for generated code
- ci: most of the current pre-commit (falco ones) are broken
- docs: emphasize the start-app script
- ci: fix generated project ci workflow
Full Changelog: v0.2.8...v0.2.9
v0.2.8¶
Released on 2024-01-15 - GitHub - PyPI
- The code generated by the
CRUD
command should now pass the pre-commit hooks
Full Changelog: v0.2.7...v0.2.8
v0.2.7¶
Released on 2024-01-15 - GitHub - PyPI
- Add a section on marimo on the start-project docs as an alternative to
dj-notebook
- Project pre-commit hooks is back to using
ruff
with a better setup - The
sync-dotenv
command now generate an sqlite db with the namedb.sqlite3
instead ofdb.sqlite
, same as the default django starter project - The tip_and_extra section is in a cleaner state
- The Task queues and schedulers is now completed
Full Changelog: v0.2.5...v0.2.7
v0.2.5¶
Released on 2024-01-13 - GitHub - PyPI
- The start-project command now accept an option for specifying the project creation directory. This functionality mirrors the corresponding option in the Django
startproject
command. - Add privacy friendly analytics using plausible
Full Changelog: v0.2.4...v0.2.5
v0.2.4¶
Released on 2024-01-12 - GitHub - PyPI
- Small corrections of typos
Full Changelog: v0.2.3...v0.2.4
v0.2.3¶
Released on 2024-01-12 - GitHub - PyPI
What's Changed
- Update crud.rst by @shearichard in #31
- docs: add shearichard as a contributor for doc by @allcontributors in #32
- docs: add 786raees as a contributor for code by @allcontributors in #33
- Add htmx latest version support to start-project command #22 by @786raees in #34
- docs: Explain how to use the starter-project without hatch
- docs: Add a known issues section to the
start-project
docs - Rewrite the
pre-commit hooks
for the project starter, the previous one was completely broken, now a little less broken - Additionals small changes and bug fixes
New Contributors
- @shearichard made their first contribution in #31
- @786raees made their first contribution in #34
Full Changelog: v0.2.2...v0.2.3
v0.2.2¶
Released on 2023-12-31 - GitHub - PyPI
Changes to Starter Blueprint:
- Add an extra blocks
head
andbody
for more flexibility.
Changes to CRUD Generator:
- Fix
detail.html
andupdate.html
templates where an incorrect variable nameproduct
was left in.
Full Changelog: v0.2.1...v0.2.2
v0.2.1¶
Released on 2023-12-31 - GitHub - PyPI
Changes to the Starter Blueprint
- Fix email configuration for development setup.
- Resolve an issue where
django-fastdev
would raise an error while accessing the signup page because theclean_username
form validator does not match any field on theUser
model.
Full Changelog: v0.2.0...v0.2.1
v0.2.0¶
Released on 2023-12-30 - GitHub - PyPI
-
Folder Renaming: Renamed the
docker
folder todeploy
to enhance clarity; the folder contains more than just Docker-related files. -
Default Starter Integration: Included the default starter project with the
core
app, streamlining the experience when using theinstall-crud-utils
command. -
Convenient App Creation: Added a hatch
start-app
script for creating an app and moving it into the project'sapps_dir
. -
Type Checking Enhancement: Replaced Pyright with Mypy for type checking; Mypy is less aggressive.
-
Improved README.md Setup Instructions: Enhanced setup instructions in the project's
README.md
for better clarity. -
Starter Project Layout Adjustment: Modified the
utils
import generated bycrud
to align with the starter project layout, ensuring a more consistent structure. -
Documentation Update: Revised the documentation for
work
commands, noting that the default starter does not come with a default config. -
Miscellaneous Fixes: Addressed various small issues throughout the codebase.
Full Changelog: v0.1.1...v0.2.0