diff --git a/.gitignore b/.gitignore index eb0f210..dde0baf 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ dist/ sdist/ .eggs/ *.egg-info/ - +.DS_Store # Unit test / coverage reports htmlcov/ @@ -31,4 +31,4 @@ docs/_build/ .idea/ # Database -db.sqlite3 \ No newline at end of file +db.sqlite3 diff --git a/README.md b/README.md index 1c5b65d..36564a5 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,27 @@ -Django Admin Confirm -======== +# Django Admin Confirm AdminConfirmMixin is a mixin for ModelAdmin to add confirmations to changes and additions. +![Screenshot of Confirmation Page](/screenshot.png) + It can be configured to add a confirmation page upon saving changes and/or additions on ModelAdmin. Typical Usage: - + from admin_confirm import AdminConfirmMixin - + class MyModelAdmin(AdminConfirmMixin, ModelAdmin): confirm_change = True confirmation_fields = ['field1', 'field2'] - -Installation ------------- +## Installation Install django-admin-confirm by running: pip install django-admin-confirm - + Add to INSTALLED_APPS in your project settings before `django.contrib.admin`: - + INSTALLED_APPS = [ ... 'admin_confirm', @@ -30,51 +29,50 @@ Add to INSTALLED_APPS in your project settings before `django.contrib.admin`: 'django.contrib.admin', ... ] - + Note that this project follows the template override rules of Django. To override a template, your app should be listed before `admin_confirm` in INSTALLED_APPS. - -Configuration Options --------- -- `confirm_change` Optional[bool] - decides if changes should trigger confirmation -- `confirm_add` Optional[bool] - decides if additions should trigger confirmation -- `confirmation_fields` Optional[Array[string]] - sets which fields changes/additions should trigger confirmation -- `change_confirmation_template` Optional[string] - path to custom html template to use +## Configuration Options + +- `confirm_change` _Optional[bool]_ - decides if changes should trigger confirmation +- `confirm_add` _Optional[bool]_ - decides if additions should trigger confirmation +- `confirmation_fields` _Optional[Array[string]]_ - sets which fields changes should trigger confirmation +- `change_confirmation_template` _Optional[string]_ - path to custom html template to use Note that setting `confirmation_fields` without setting `confirm_change` or `confirm_add` would not trigger confirmation. -Contribution & Appreciation ----------- +## Contribution & Appreciation Contributions are most welcome :) Feel free to: + - address an issue - raise an issue - add more test cases - add feature requests Your appreciation is also very welcome :) Feel free to: + - star the project - open an issue just to share your thanks -Feature List -------- +## Feature List -This is a list of features which could potentially be added in the future. +This is a list of features which could potentially be added in the future. Some of which might make more sense in their own package. -- global actions on changelist page -- instance actions on change/view page -- confirmations on changelist actions -- run scripts from admin -- completed action summary page -- action logs (adding actions to history of instances) +- [ ] confirmations on changelist actions +- [ ] global actions on changelist page +- [ ] instance actions on change/view page +- [ ] action logs (adding actions to history of instances) +- [ ] add help tooltip/popover to any field for more info +- [ ] run scripts from admin +- [ ] completed action summary page +- [ ] add top and bottom areas to instance pages which can be configured for any content -Support -------- +## Support If you are having issues, please let us know through raising an issue. -License -------- +## License -The project is licensed under the Apache 2.0 license. \ No newline at end of file +The project is licensed under the Apache 2.0 license. diff --git a/admin_confirm/tests/test_admin.py b/admin_confirm/tests/test_admin.py index ba1c5aa..4231146 100644 --- a/admin_confirm/tests/test_admin.py +++ b/admin_confirm/tests/test_admin.py @@ -127,9 +127,10 @@ class TestAdminConfirmMixin(TestCase): self.assertEqual(expected_fields, actual_fields) def test_custom_template(self): - expected_template = 'my_custom_template.html' + expected_template = 'market/admin/my_custom_template.html' ItemAdmin.confirmation_template = expected_template admin = ItemAdmin(Item, AdminSite()) actual_template = admin.render_change_confirmation( self.factory.request(), context={}).template_name self.assertEqual(expected_template, actual_template) + ItemAdmin.confirmation_template = None diff --git a/tests/market/templates/market/admin/my_custom_template.html b/tests/market/templates/market/admin/my_custom_template.html new file mode 100644 index 0000000..c142050 --- /dev/null +++ b/tests/market/templates/market/admin/my_custom_template.html @@ -0,0 +1 @@ +