Compare commits

...

839 Commits

Author SHA1 Message Date
Guido Longoni 6bd9b954a8 niente import nel master 2024-03-28 13:13:13 +01:00
Guido Longoni c621ead9a5 Aggiornamento a Django 5 2024-03-28 12:39:24 +01:00
Guido Longoni 881e62000d Merge branch 'main' 2024-03-27 18:42:57 +01:00
Guido Longoni 44be298342 Merge branch 'my-tentativi-merge' 2024-03-27 18:41:46 +01:00
Guido Longoni 0491c94993 Merge commit 'c6c96bf806313d1c7cfb4759372bcfdd4e1e97b5' into my-tentativi-merge 2024-03-27 18:40:39 +01:00
Davide Borgonovo 479f290f52 Sistemata migrazione che aveva un altro nome 2024-03-27 12:36:48 +01:00
pre-commit-ci[bot] 5f0eb41161
[pre-commit.ci] pre-commit autoupdate (#379)
updates:
- [github.com/asottile/pyupgrade: v3.15.1 → v3.15.2](https://github.com/asottile/pyupgrade/compare/v3.15.1...v3.15.2)
- [github.com/astral-sh/ruff-pre-commit: v0.3.3 → v0.3.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.3.3...v0.3.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-03-26 09:43:37 +01:00
pre-commit-ci[bot] 9f106fd35b
[pre-commit.ci] pre-commit autoupdate (#376) 2024-03-18 18:45:47 +01:00
dependabot[bot] 761e1dc02f
Update tox requirement from ==4.12.* to ==4.13.* (#371)
Updates the requirements on [tox](https://github.com/tox-dev/tox) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/4.12.0...4.13.0)

---
updated-dependencies:
- dependency-name: tox
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-13 11:56:00 +01:00
pre-commit-ci[bot] 4c2b7f21fd
[pre-commit.ci] pre-commit autoupdate (#368)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.3.0 → v0.3.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.3.0...v0.3.2)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-03-13 11:55:46 +01:00
Davide Borgonovo b8252030a4 Aggiornato con i contenuti del remoto al 07/03/2024 2024-03-07 16:33:26 +01:00
Fabio Caccamo c6c96bf806 Update `CHANGELOG` and version. 2024-03-07 10:25:17 +01:00
Fabio Caccamo ce37e112df Improve code quality. 2024-03-07 10:19:28 +01:00
Jeroen Peters b1bb5d0437
Fix date hierarchy params. #374 (#375)
* #374: Date hierarchy params fix

* #374: Backwards compatible changes
2024-03-07 09:49:44 +01:00
Fabio Caccamo 6f7f6018bf Run `pre-commit` in the test workflow. 2024-03-06 21:45:56 +01:00
dependabot[bot] e991bf61a0
Bump python-slugify from 8.0.2 to 8.0.4 (#372)
Bumps [python-slugify](https://github.com/un33k/python-slugify) from 8.0.2 to 8.0.4.
- [Changelog](https://github.com/un33k/python-slugify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/un33k/python-slugify/compare/v8.0.2...v8.0.4)

---
updated-dependencies:
- dependency-name: python-slugify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 18:40:00 +01:00
dependabot[bot] 42dc52bd00
Bump fabiocaccamo/create-matrix-action from 3 to 4 (#373)
Bumps [fabiocaccamo/create-matrix-action](https://github.com/fabiocaccamo/create-matrix-action) from 3 to 4.
- [Release notes](https://github.com/fabiocaccamo/create-matrix-action/releases)
- [Commits](https://github.com/fabiocaccamo/create-matrix-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: fabiocaccamo/create-matrix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01 18:39:53 +01:00
github-actions[bot] dbb44b5940
Update pre-commit hooks. (#370)
Co-authored-by: fabiocaccamo <1035294+fabiocaccamo@users.noreply.github.com>
2024-03-01 10:03:25 +01:00
Fabio Caccamo 5fe3be234f Update FUNDING.yml 2024-02-19 18:40:19 +01:00
Fabio Caccamo 3d5d5ae92f Open any link with `_popup=1` query-string parameter in a modal window. 2024-02-14 18:38:16 +01:00
Fabio Caccamo 979c8c5c73 Add FAQ for opening any url in modal window. 2024-02-14 18:33:32 +01:00
Fabio Caccamo 5afe7eb6be Add FAQ for custom `LocaleMiddleware` warning. #354 2024-02-14 18:32:48 +01:00
dependabot[bot] 231055f80a
Bump codecov/codecov-action from 3 to 4 (#366)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 14:57:28 +01:00
dependabot[bot] 3293bea810
Bump peter-evans/create-pull-request from 5 to 6 (#363)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 10:21:12 +01:00
dependabot[bot] 3b9294ccec
Bump ffurrer2/extract-release-notes from 1 to 2 (#362)
Bumps [ffurrer2/extract-release-notes](https://github.com/ffurrer2/extract-release-notes) from 1 to 2.
- [Release notes](https://github.com/ffurrer2/extract-release-notes/releases)
- [Changelog](https://github.com/ffurrer2/extract-release-notes/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ffurrer2/extract-release-notes/compare/v1...v2)

---
updated-dependencies:
- dependency-name: ffurrer2/extract-release-notes
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 09:35:26 +01:00
github-actions[bot] d002a6a06a
Update pre-commit hooks. (#364) 2024-02-01 01:19:41 +01:00
dependabot[bot] 46abd9e3b2
Update tox requirement from ==4.11.* to ==4.12.* (#361)
Updates the requirements on [tox](https://github.com/tox-dev/tox) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/4.11.0...4.12.1)

---
updated-dependencies:
- dependency-name: tox
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-31 22:37:15 +01:00
dependabot[bot] 59b1651c0c
Bump python-slugify from 8.0.1 to 8.0.2 (#360)
Bumps [python-slugify](https://github.com/un33k/python-slugify) from 8.0.1 to 8.0.2.
- [Changelog](https://github.com/un33k/python-slugify/blob/master/CHANGELOG.md)
- [Commits](https://github.com/un33k/python-slugify/compare/v8.0.1...v8.0.2)

---
updated-dependencies:
- dependency-name: python-slugify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-31 22:37:04 +01:00
Fabio Caccamo 7318ed3db8 Update `CHANGELOG` and version. 2024-01-30 11:37:33 +01:00
Fabio Caccamo d3b6d5f3ba Fix inputs height when there is a multiline label. 2024-01-30 11:34:56 +01:00
Fabio Caccamo f086906f46 Fix related widget height and buttons alignment when there is a multiline label. 2024-01-30 11:34:24 +01:00
Brandon Parker da02334a35
Update Caching Documentation. (#357)
* update caching documentation

* fix typo

* Update README.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Brandon Parker <brandon.parker@zapier.com>
Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-29 21:06:16 +01:00
Fabio Caccamo 0f3bf75ba4 Update `CHANGELOG` and version. 2024-01-29 00:55:49 +01:00
Fabio Caccamo f42ce33978 Merge branch 'main' of https://github.com/fabiocaccamo/django-admin-interface 2024-01-29 00:54:06 +01:00
pre-commit-ci[bot] 0584e58995
[pre-commit.ci] pre-commit autoupdate (#353)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.11 → v0.1.14](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.11...v0.1.14)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-29 00:53:54 +01:00
Fabio Caccamo 7187331bd2 Remove header min-height. 2024-01-29 00:53:30 +01:00
Fabio Caccamo e895a057fe Update `CHANGELOG` and version. 2024-01-08 23:24:56 +01:00
pre-commit-ci[bot] cb6e64f889
[pre-commit.ci] pre-commit autoupdate (#351)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.9 → v0.1.11](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.9...v0.1.11)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-08 23:24:34 +01:00
Fabio Caccamo 3a37860af5 Fix help text horizontal alignment when using `show-fieldsets-as-tabs` / `show-inlines-as-tabs` theme options. #317 2024-01-08 23:21:49 +01:00
Fabio Caccamo f96acafd11 Fix file-upload widget margin-left. 2024-01-08 22:14:00 +01:00
Fabio Caccamo 83a0de60de Fix related widget links add button position on many-to-many selector. 2024-01-08 21:53:52 +01:00
Fabio Caccamo f5e0157f70 Reduce paginator vertical padding. 2024-01-08 21:39:41 +01:00
Fabio Caccamo 6f4f6a9dd9 Fix related widget links margin from `select2` (`autocomplete_fields`). 2024-01-08 21:27:38 +01:00
Fabio Caccamo b61d54a227 Update README.md 2024-01-08 18:40:29 +01:00
Fabio Caccamo a251f3bb5f Update `CHANGELOG` and version. 2024-01-08 12:13:45 +01:00
Fabio Caccamo 66e57043c9 [css] Fix related widget icon alignment. #348 #350 2024-01-08 12:12:42 +01:00
dependabot[bot] 7cf35cd785
Bump github/codeql-action from 2 to 3 (#346) 2024-01-04 08:44:35 +01:00
dependabot[bot] 087fc5e1d7
Bump actions/setup-python from 4 to 5 (#347) 2024-01-04 08:36:10 +01:00
Fabio Caccamo 302ee6ee04 Update `CHANGELOG` and version. 2023-12-28 18:19:18 +01:00
Fabio Caccamo 4d4996fd41 Fix `autocomplete_fields` appearance. 2023-12-28 18:12:33 +01:00
Fabio Caccamo 856e4edb9e Bump requirements. 2023-12-28 18:05:35 +01:00
Fabio Caccamo 5405a877c3 Fix admin `raw_id_fields` appearance. 2023-12-28 18:05:24 +01:00
pre-commit-ci[bot] ea44a74604
[pre-commit.ci] pre-commit autoupdate (#339)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.8 → v0.1.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.8...v0.1.9)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-12-28 17:45:06 +01:00
Andrey 6a7a230964
Fix `TemplateDoesNotExist` when using `django-nested-admin` by returning custom template for other third-party packages. #341 (#342) 2023-12-28 17:43:56 +01:00
Fabio Caccamo ff0380977e Fix related widget links icons size and vertical alignment. 2023-12-27 17:02:22 +01:00
Fabio Caccamo 94f02a36b1 Move "Save and Continue" button next to "Save" button in change form. 2023-12-27 16:54:28 +01:00
Fabio Caccamo a29ec42a83 Display language chooser language name uppercase. 2023-12-27 16:53:50 +01:00
Fabio Caccamo b229bc39a6 Update `CHANGELOG` and version. 2023-12-21 12:08:31 +01:00
Fabio Caccamo a0b663be2a Bump `ruff-pre-commit`. 2023-12-21 12:01:31 +01:00
Fabio Caccamo 48d0b58d30 Update compatibility with `django-streamfield`. 2023-12-21 11:55:28 +01:00
Fabio Caccamo b429bde765 Fix `foldable-apps` +/- button vertical alignment. 2023-12-21 11:02:02 +01:00
Fabio Caccamo 268d331dea Rename `form-controls.css` to `sticky-form-controls.css` 2023-12-21 11:01:32 +01:00
Fabio Caccamo 6dbe8fec0f Remove `type="text/css"` and `type="text/javascript"` attributes. 2023-12-21 11:00:59 +01:00
Fabio Caccamo b5980b85e6 Remove old third-party compatibility CSS files. 2023-12-21 10:59:33 +01:00
Fabio Caccamo b1361d2bc1 Split `admin-interface-fix.css` CSS file into multiple files for easier debugging. 2023-12-21 10:59:00 +01:00
Fabio Caccamo ab5ca9626a Remove old `flat-theme` body class. 2023-12-21 10:54:20 +01:00
Fabio Caccamo 4759fdf593 Move `related-modal.css` to related-modal plugin folder. 2023-12-21 10:53:26 +01:00
Fabio Caccamo 75b1292e29 Move third-party compatibility CSS files to a `third-party` folder. 2023-12-21 10:50:54 +01:00
Fabio Caccamo 6db363518d [css] Fix paginator appearance. 2023-12-19 18:20:27 +01:00
Fabio Caccamo a7e8c4da09 Update `create-release.yml` workflow: publish releases with a Trusted Publisher. 2023-12-18 19:01:51 +01:00
Fabio Caccamo 3000c9024e Update test-package.yml 2023-12-12 00:04:55 +01:00
Fabio Caccamo fb18a8d455 Replace `Black` and `isort` with `Ruff-format`. 2023-12-11 23:51:06 +01:00
Fabio Caccamo 13965eacf2 Update CHANGELOG and version. 2023-12-05 23:35:47 +01:00
Fabio Caccamo 1131e0da6b Rename variable. 2023-12-05 23:26:58 +01:00
Fabio Caccamo 66600faec6 Fix tests. 2023-12-05 23:25:11 +01:00
Fabio Caccamo f9df5baa19 Update README.md 2023-12-05 22:06:01 +01:00
Fabio Caccamo 67bb404a84 Update pyproject.toml 2023-12-05 22:05:58 +01:00
Fabio Caccamo 6462083e95 Add `Django 5.0` to tests. 2023-12-05 21:50:19 +01:00
dependabot[bot] f32203fd9a
Update pre-commit requirement from ==3.4.* to ==3.5.* (#331)
Updates the requirements on [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-05 12:19:51 +01:00
pre-commit-ci[bot] e1d79b9df0
[pre-commit.ci] pre-commit autoupdate (#332)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.1.3 → v0.1.6](https://github.com/astral-sh/ruff-pre-commit/compare/v0.1.3...v0.1.6)
- [github.com/psf/black: 23.10.1 → 23.11.0](https://github.com/psf/black/compare/23.10.1...23.11.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-12-05 12:19:35 +01:00
github-actions[bot] a52f670c85
Update pre-commit hooks. (#335)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-12-05 12:19:18 +01:00
Julian Wachholz b393c11ecb
Simplify language chooser (#328)
* Simplify language chooser

- Allows usage of i18n_patterns with prefix_default_language=False
- Change templatetag from simple tag to an inclusion tag
- Reduces complexity by relying on Django's behavior in the
  set_language view: it will translate any url passed as 'next'.
  This behavior has been present since Django 1.9.
- Remove individual forms for each language

Fixes #327

Reference: aa5ab114e3

* Add check to ensure LocaleMiddleware

* Remove check in favor of silent warning

* Fix template tag tests
2023-12-05 12:18:44 +01:00
Fabio Caccamo 43dca1ae93 Add missing license. 2023-12-04 12:10:00 +01:00
Fabio Caccamo 55be190dc0 Add `Python 3.12` to tests. 2023-11-24 18:08:10 +01:00
Fabio Caccamo 1c1945c1d9
Update README.md 2023-11-11 20:17:43 +01:00
Fabio Caccamo 2350854e45 Revert "Unpin requirements patch version."
This reverts commit 0ddb85298d.
2023-11-08 22:46:40 +01:00
Fabio Caccamo 0ddb85298d Unpin requirements patch version. 2023-11-08 22:23:26 +01:00
Fabio Caccamo 7b7de54e60 Set python-version input in test workflow lint step. 2023-11-06 23:53:10 +01:00
Fabio Caccamo b1fcedbaed Speed-up test workflow. 2023-11-06 23:39:21 +01:00
Fabio Caccamo 17f9f430fd Bump `actions/setup-python`. 2023-11-06 23:33:32 +01:00
pre-commit-ci[bot] 8e045c71c1
[pre-commit.ci] pre-commit autoupdate (#329)
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.0.292 → v0.1.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.292...v0.1.3)
- [github.com/psf/black: 23.9.1 → 23.10.1](https://github.com/psf/black/compare/23.9.1...23.10.1)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-10-30 18:30:13 +01:00
Davide Borgonovo 0eed8c8679 Incremento di versione 2023-10-27 12:49:55 +02:00
Davide Borgonovo d74fcd4001 location messa nel windowRef, altrimenti non funzionava la modale 2023-10-27 12:49:25 +02:00
dependabot[bot] 0f69ccbb0a
Update pre-commit requirement from ==3.3.* to ==3.4.* (#319)
Updates the requirements on [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 14:06:04 +02:00
github-actions[bot] 69815ed103
Update pre-commit hooks. (#320)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
2023-10-17 13:59:59 +02:00
pre-commit-ci[bot] 7aed89c244
[pre-commit.ci] pre-commit autoupdate (#321)
updates:
- [github.com/asottile/pyupgrade: v3.10.1 → v3.15.0](https://github.com/asottile/pyupgrade/compare/v3.10.1...v3.15.0)
- [github.com/adamchainz/django-upgrade: 1.14.1 → 1.15.0](https://github.com/adamchainz/django-upgrade/compare/1.14.1...1.15.0)
- [github.com/astral-sh/ruff-pre-commit: v0.0.287 → v0.0.292](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.287...v0.0.292)
- [github.com/psf/black: 23.7.0 → 23.9.1](https://github.com/psf/black/compare/23.7.0...23.9.1)
- [github.com/pre-commit/pre-commit-hooks: v4.4.0 → v4.5.0](https://github.com/pre-commit/pre-commit-hooks/compare/v4.4.0...v4.5.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-10-17 13:55:46 +02:00
dependabot[bot] 67c67fe27d
Bump actions/checkout from 3 to 4 (#318)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 00:39:41 +02:00
Fabio Caccamo 2d156814cc Revert "Update dependabot.yml"
This reverts commit 2606accbea.
2023-10-02 22:15:59 +02:00
Fabio Caccamo 2606accbea Update dependabot.yml 2023-09-28 22:38:04 +02:00
Fabio Caccamo 40b6f187a6 Run `precommit-auto-update` once a month. 2023-09-18 21:45:34 +02:00
Francesco Cataldo 36a8edd0f6
Reintroduce support for `show_change_link` with related modal. #323 2023-09-18 21:17:00 +02:00
Fabio Caccamo ea95d13c44 Run `dependabot` once a month. 2023-09-18 21:14:31 +02:00
Fabio Caccamo b6cd62093c Update `CHANGELOG`. 2023-09-05 18:45:28 +02:00
dependabot[bot] d025e76e7a
Update coverage requirement from ==7.2.* to ==7.3.* (#312)
Updates the requirements on [coverage](https://github.com/nedbat/coveragepy) to permit the latest version.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.2.0...7.3.0)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 18:44:49 +02:00
pre-commit-ci[bot] e79e9c5705
[pre-commit.ci] pre-commit autoupdate (#304)
updates:
- [github.com/asottile/pyupgrade: v3.9.0 → v3.10.1](https://github.com/asottile/pyupgrade/compare/v3.9.0...v3.10.1)
- [github.com/adamchainz/django-upgrade: 1.14.0 → 1.14.1](https://github.com/adamchainz/django-upgrade/compare/1.14.0...1.14.1)
- [github.com/astral-sh/ruff-pre-commit: v0.0.278 → v0.0.287](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.278...v0.0.287)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-09-05 18:44:44 +02:00
dependabot[bot] 8eef625219
Update tox requirement from ==4.6.* to ==4.11.* (#315)
Updates the requirements on [tox](https://github.com/tox-dev/tox) to permit the latest version.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/4.6.0...4.11.0)

---
updated-dependencies:
- dependency-name: tox
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 18:44:28 +02:00
github-actions[bot] e0c0460e59
Update pre-commit hooks. (#302)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-09-05 18:44:13 +02:00
Fabio Caccamo a7aeb8223a Update `CHANGELOG` and version. 2023-09-05 18:27:59 +02:00
Fabio Caccamo f8d1660218 Update requirements.txt 2023-09-05 18:22:20 +02:00
Fabio Caccamo 17deb9b0f7 Update README.md 2023-09-05 18:20:27 +02:00
Fabio Caccamo 540f33fdde Update Italian translations. 2023-08-31 16:11:57 +02:00
Fabio Caccamo 24a5e1f995 Fix logout and theme buttons style. #246 2023-08-31 16:00:23 +02:00
Santiago Muñoz 13c43f36df
Updated Spanish translations (#307) 2023-08-05 09:23:19 +02:00
github-actions[bot] 0e128f97ee
Update pre-commit hooks. (#299)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
2023-07-18 10:04:44 +02:00
pre-commit-ci[bot] 2b12910435
[pre-commit.ci] pre-commit autoupdate (#300)
updates:
- [github.com/asottile/pyupgrade: v3.7.0 → v3.9.0](https://github.com/asottile/pyupgrade/compare/v3.7.0...v3.9.0)
- https://github.com/charliermarsh/ruff-pre-commithttps://github.com/astral-sh/ruff-pre-commit
- [github.com/astral-sh/ruff-pre-commit: v0.0.275 → v0.0.278](https://github.com/astral-sh/ruff-pre-commit/compare/v0.0.275...v0.0.278)
- [github.com/psf/black: 23.3.0 → 23.7.0](https://github.com/psf/black/compare/23.3.0...23.7.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-07-18 09:38:13 +02:00
Fabio Caccamo 5541d4ca70 Update .pre-commit-config.yaml 2023-07-04 00:07:52 +02:00
Fabio Caccamo 60501026a6 Update Django version specifier in "test-package" workflow. 2023-06-28 08:22:09 +02:00
Fabio Caccamo d269de0b63 Add Russian language to tests. 2023-06-26 21:45:36 +02:00
pre-commit-ci[bot] 5707ebfe09
[pre-commit.ci] pre-commit autoupdate (#296)
updates:
- [github.com/charliermarsh/ruff-pre-commit: v0.0.273 → v0.0.275](https://github.com/charliermarsh/ruff-pre-commit/compare/v0.0.273...v0.0.275)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-26 21:42:45 +02:00
github-actions[bot] 27b57dd2b2
Update pre-commit hooks. (#294)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-06-26 21:42:25 +02:00
Руся effc5fbd35
Add russian translation. (#295) 2023-06-26 09:40:21 +02:00
Guido Longoni 97e1a2b315 rendo invertibile questa migrazione 2023-06-21 22:38:51 +02:00
pre-commit-ci[bot] 39f47b29bc
[pre-commit.ci] pre-commit autoupdate (#293)
updates:
- [github.com/asottile/pyupgrade: v3.6.0 → v3.7.0](https://github.com/asottile/pyupgrade/compare/v3.6.0...v3.7.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-21 10:15:20 +02:00
github-actions[bot] d9107d819f
Update pre-commit hooks. (#292)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-06-21 10:14:37 +02:00
dependabot[bot] 7d3b967847
Bump django-colorfield from 0.8.0 to 0.9.0 (#290)
Bumps [django-colorfield](https://github.com/fabiocaccamo/django-colorfield) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/fabiocaccamo/django-colorfield/releases)
- [Changelog](https://github.com/fabiocaccamo/django-colorfield/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fabiocaccamo/django-colorfield/compare/0.8.0...0.9.0)

---
updated-dependencies:
- dependency-name: django-colorfield
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-17 21:37:27 +02:00
pre-commit-ci[bot] 8fbed58cd6
[pre-commit.ci] pre-commit autoupdate (#286)
updates:
- [github.com/asottile/pyupgrade: v3.4.0 → v3.6.0](https://github.com/asottile/pyupgrade/compare/v3.4.0...v3.6.0)
- [github.com/charliermarsh/ruff-pre-commit: v0.0.265 → v0.0.272](https://github.com/charliermarsh/ruff-pre-commit/compare/v0.0.265...v0.0.272)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-15 09:47:23 +02:00
github-actions[bot] 68d7094b3e
Update pre-commit hooks. (#289)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-06-15 09:41:47 +02:00
github-actions[bot] fd908cbbed
Update pre-commit hooks. (#285) 2023-06-14 23:17:40 +02:00
dependabot[bot] f7be7cafb3
Update tox requirement from ==4.5.* to ==4.6.* (#288) 2023-06-14 23:17:26 +02:00
Fabio Caccamo 7c4793c9b6 Prevent multiple `.collapse-toggle` button. 2023-05-29 13:13:28 +02:00
Pietro Brenna 45266906a3 pulsante logout in django 4 2023-05-22 16:14:40 +02:00
Fabio Caccamo 7a0e63e986 Update `CHANGELOG` and version. 2023-05-11 01:38:14 +02:00
Fabio Caccamo a48575e047
Add collapsible inlines support. (#282)
* Improve code formatting.

* Add collapsible inlines frontend support.

* Add collapsible inlines options fields to model and admin.

* Add option classes to body.

* Update translations.

* Update README.md
2023-05-11 01:33:35 +02:00
github-actions[bot] a8897a942d
Update pre-commit hooks. (#280) 2023-05-07 09:22:13 +02:00
dependabot[bot] a92d94f9e8
Update pre-commit requirement from ==3.2.* to ==3.3.* (#278) 2023-05-06 13:47:09 +02:00
github-actions[bot] a5c4c82d9a
Update pre-commit hooks. (#279) 2023-05-06 13:44:57 +02:00
github-actions[bot] cd361c461d
Update pre-commit hooks. (#277)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-05-03 09:28:23 +02:00
github-actions[bot] cdc281396f
Update pre-commit hooks. (#274) 2023-05-01 18:57:06 +02:00
dependabot[bot] 546ed765a3
Update tox requirement from ==4.4.* to ==4.5.* (#275) 2023-05-01 18:53:46 +02:00
Fabio Caccamo cacae6eb73 Update .pre-commit-config.yaml 2023-04-20 13:09:03 +02:00
github-actions[bot] 3d0930bf56
Update pre-commit hooks. (#273) 2023-04-20 07:35:58 +02:00
Fabio Caccamo 8fd00c6c27 Update translations. 2023-04-18 18:22:17 +02:00
Fabio Caccamo 31ee37a151 Update `CHANGELOG` and version. 2023-04-18 18:04:02 +02:00
Fabio Caccamo 544b2e68c0 Force date hierarchy label to be lower case. 2023-04-18 16:21:19 +02:00
Fabio Caccamo b56b0b9c58 Reformat migrations. 2023-04-18 16:20:42 +02:00
Fabio Caccamo 11905e80b7 Fix `ImportError`. 2023-04-18 16:18:56 +02:00
Fabio Caccamo 6f7a51bee8 Add `css_generic_link_active_color` field to use on active tab (tabbed changeform). #232 2023-04-18 16:10:02 +02:00
Fabio Caccamo 55f2c86a47 Fix tabs not working with non-ASCII alphanumeric characters. #237 2023-04-18 15:52:25 +02:00
Fabio Caccamo 42bf0f8039 Fix `date_hierarchy` with multiple fields (`ForeignKey`). #244 2023-04-18 14:45:36 +02:00
Fabio Caccamo 50e025bcd5 Update pyproject.toml 2023-04-13 11:13:28 +02:00
dependabot[bot] 9ddb23053f
Bump peter-evans/create-pull-request from 4 to 5 (#270) 2023-04-07 17:28:54 +02:00
Fabio Caccamo 4668f27c92 Add `Django 4.2` support. 2023-04-07 01:01:44 +02:00
Fabio Caccamo 2b21b16929 Switch from `setup.cfg` to `pyproject.toml`. 2023-04-07 00:51:06 +02:00
Fabio Caccamo 4148f6ece9 Replace `flake8` with `Ruff`. 2023-04-05 17:42:11 +02:00
pre-commit-ci[bot] 26368a3e05
[pre-commit.ci] pre-commit autoupdate (#269)
updates:
- [github.com/psf/black: 23.1.0 → 23.3.0](https://github.com/psf/black/compare/23.1.0...23.3.0)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-04-04 15:45:18 +02:00
github-actions[bot] 84c7cd4582
Update pre-commit hooks. (#268)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-04-04 15:43:05 +02:00
Fabio Caccamo 64f3779f4c Update dependabot.yml 2023-03-20 21:12:31 +01:00
dependabot[bot] 7b12fea8b3
Update pre-commit requirement from ==3.1.* to ==3.2.* (#266)
Updates the requirements on [pre-commit](https://github.com/pre-commit/pre-commit) to permit the latest version.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-20 16:10:22 +01:00
Fabio Caccamo 3ed84fb071
Update README.md 2023-03-15 03:15:45 +01:00
Davide Borgonovo 5496f996be Fixes #1
Fixes #2
2023-03-14 16:54:05 +01:00
Fabio Caccamo 10b3adbd89 Update README.md 2023-03-14 01:05:21 +01:00
Fabio Caccamo 6e26a27336 Update README.md 2023-03-14 01:00:06 +01:00
Fabio Caccamo cf100542aa Update README.md 2023-03-14 00:58:53 +01:00
Fabio Caccamo 9a0264ca08 Update tox.ini 2023-03-14 00:58:45 +01:00
Fabio Caccamo d42f69cee7 Update README.md 2023-03-13 15:27:43 +01:00
Fabio Caccamo 703fef4c4c Fix `setup.cfg` metadata. 2023-03-07 01:42:15 +01:00
Fabio Caccamo d7436e6abc Update pull request template. [ci skip] 2023-03-07 00:59:03 +01:00
Fabio Caccamo a3737c9892 Fix multidb tests. 2023-03-02 14:09:38 +01:00
Fabio Caccamo 4deefc20b7 Add `flake8-bugbear` to `pre-commit`. 2023-03-01 17:54:58 +01:00
dependabot[bot] 522e4d20bc
Update pre-commit requirement from ==3.0.* to ==3.1.* (#265)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
2023-02-27 15:44:20 +01:00
dependabot[bot] 9b7e963f46
Update coverage requirement from ==7.1.* to ==7.2.* (#264)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-27 15:12:52 +01:00
github-actions[bot] 7926340d24
Update pre-commit hooks. (#260) 2023-02-18 08:10:06 +01:00
Fabio Caccamo bb9585c465 Update `README.md`. [ci skip] 2023-02-14 09:48:04 +01:00
Fabio Caccamo 191d82a5c2 Set max line length to `88`. 2023-02-13 15:52:13 +01:00
Fabio Caccamo 81ab67953a Upgrade syntax for `Python >= 3.8`. 2023-02-10 16:21:36 +01:00
Fabio Caccamo 6147fb65e6 Add warning to README installation instructions. 2023-02-09 19:16:03 +01:00
Fabio Caccamo fa81b2ea5e Reformat code. 2023-02-09 19:14:51 +01:00
Fabio Caccamo 71cc60bea3 Add `metadata` module and read package attrs dynamically. 2023-02-09 19:14:33 +01:00
Fabio Caccamo e2b23c238f Set `Black` pre-commit hook `line-length` option value. 2023-02-09 18:56:09 +01:00
Fabio Caccamo 00bedb30c2 Run `flake8` also on tests files. 2023-02-09 18:55:21 +01:00
Fabio Caccamo e1b997f1bf Update dependabot.yml 2023-02-06 16:41:08 +01:00
Fabio Caccamo 91b0e1d158 Update test-package.yml 2023-02-06 10:35:38 +01:00
Fabio Caccamo d0f37806c7 Update `pre-commit`. 2023-02-06 10:35:32 +01:00
dependabot[bot] aea0004837
Update coverage requirement from ==7.0.* to ==7.1.* (#249) 2023-01-30 21:54:33 +01:00
dependabot[bot] a7320c5645
Update tox requirement from ==4.3.* to ==4.4.* (#251) 2023-01-30 21:28:03 +01:00
dependabot[bot] eefdd615df
Update pre-commit requirement from ==2.21.* to ==3.0.* (#250) 2023-01-30 20:48:28 +01:00
Davide Borgonovo d85690fb9c Aggiunto default per quando un utente non ha un tema attivo assegnato o se è un non utente. In questo modo non usa un tema a caso ma quello settato come default 2023-01-30 15:08:33 +01:00
github-actions[bot] d1914edfd9
Update pre-commit hooks. (#248)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2023-01-29 11:29:39 +01:00
Fabio Caccamo 251a35f5c8 Move `flake8` config to `setup.cfg`. 2023-01-25 20:09:40 +01:00
Fabio Caccamo 2ebd1a7992 Run `pre-commit` also with `tox`. 2023-01-25 20:08:21 +01:00
Fabio Caccamo ecc1cd77de Increase `flake8` checks. 2023-01-24 18:19:04 +01:00
Fabio Caccamo d15c0c10c2 Update `README.md`. [ci skip] 2023-01-20 10:43:57 +01:00
Fabio Caccamo 947bd4b64d Rename default branch from `master` to `main`. 2023-01-18 11:36:34 +01:00
Fabio Caccamo 1762940380 Drop `Django 2.2` support. 2023-01-18 09:59:02 +01:00
Fabio Caccamo 76de3d5481 Run `django-upgrade` `pre-commit` hook. 2023-01-18 09:42:45 +01:00
Fabio Caccamo cce1c9adaf Add `django-upgrade` to `pre-commit` hooks. 2023-01-17 10:04:02 +01:00
Fabio Caccamo 88ab3485c0 Update requirements-test.txt 2023-01-16 23:42:17 +01:00
Fabio Caccamo 04ffe5340b Update tox.ini 2023-01-16 18:29:24 +01:00
Fabio Caccamo a567f93136 Update requirements-test.txt 2023-01-16 18:29:20 +01:00
Fabio Caccamo 5d67f815da Update pre-commit-autoupdate.yml 2023-01-16 18:29:16 +01:00
Fabio Caccamo fd3d20ec11 Update setup.cfg 2023-01-12 13:07:11 +01:00
Fabio Caccamo bb0ae3d4f7 Update dependabot.yml 2023-01-11 16:50:15 +01:00
Davide Borgonovo c44621dae1 Ho messo un attribute error che non era vero 2023-01-10 18:18:41 +01:00
Fabio Caccamo a7336991bc Update FUNDING.yml 2023-01-10 17:41:14 +01:00
Fabio Caccamo b4e01fea0f Update requirements-test.txt 2023-01-09 18:16:16 +01:00
Fabio Caccamo 09f495b176
Pin test requirements. 2023-01-08 21:54:50 +01:00
Fabio Caccamo c28bfcf27a Update requirements-test.txt 2023-01-02 20:40:43 +01:00
Fabio Caccamo 08bd7c9842 Update setup.cfg 2023-01-02 17:25:31 +01:00
Fabio Caccamo b8a8c1595f Add `pyupgrade` to `pre-commit` config. 2022-12-31 18:53:01 +01:00
Fabio Caccamo 8f107309d1 Update `pyproject.toml`. [ci skip] 2022-12-31 15:47:48 +01:00
Fabio Caccamo ab3f41c3f2 Add `setup.cfg` (`setuptools` declarative syntax) generated using `setuptools-py2cfg`. 2022-12-31 15:31:28 +01:00
Fabio Caccamo 5263bb02ea
Create CODE_OF_CONDUCT.md (#238) 2022-12-29 13:20:29 +01:00
Fabio Caccamo 2baae84e84 Move pull request template file. [ci skip] 2022-12-29 13:04:48 +01:00
Fabio Caccamo 265acda04a Rename pull request template file. [ci skip] 2022-12-29 12:57:11 +01:00
Fabio Caccamo 7f170aadc5 Add pull request template. [ci skip] 2022-12-29 12:34:16 +01:00
Davide Borgonovo 5f2e2982b1 Updated version 2022-12-27 10:44:46 +01:00
Davide Borgonovo 1b0d20f494 Corretto il get_active_theme nel context_processor e nel modello 2022-12-27 10:43:38 +01:00
github-actions[bot] 8d82d80c19
Update pre-commit hooks. (#236)
Co-authored-by: fabiocaccamo <fabiocaccamo@users.noreply.github.com>
2022-12-22 09:32:38 +01:00
Fabio Caccamo b10cb336ce Update `CHANGELOG` and version. 2022-12-19 15:34:03 +01:00
Fabio Caccamo cc79cf1549 Fix modal and popup opening at the same time. 2022-12-19 15:31:02 +01:00
github-actions[bot] 8e0d8893c2
Update pre-commit hooks. (#234) 2022-12-17 09:55:14 +01:00
Fabio Caccamo a577210b71
Fix `README` CI status badge. [ci skip] 2022-12-16 13:41:43 +01:00
Mounir b3540bc019
Make `Theme.get_active_theme` class method a manager method. (#230)
- Make `get_active_theme` a manager method instead of class method
- Replace `get_active_theme` by `get_active`
- Refactor signals handlers
2022-12-15 11:32:33 +01:00
Fabio Caccamo 186e78b846 Update `CHANGELOG` and version. 2022-12-14 13:00:59 +01:00
Fabio Caccamo 2da294e28f [css] Improve changelist filter margins. 2022-12-14 12:58:57 +01:00
Fabio Caccamo fca8e6d47b Fix modal opener buttons not working when added to the DOM asynchronously. #228 2022-12-14 12:38:47 +01:00
github-actions[bot] 112b5359cf
Update pre-commit hooks. (#227) 2022-12-14 07:21:25 +01:00
Fabio Caccamo 6ffaf22ca5 Update FUNDING.yml 2022-12-13 15:30:00 +01:00
github-actions[bot] a4f027055f
Update pre-commit hooks. (#226) 2022-12-13 07:51:09 +01:00
Fabio Caccamo 6f203e0761 Update setup.py 2022-12-12 09:50:17 +01:00
Fabio Caccamo 9522f1a156 Update `CHANGELOG` and version. 2022-12-11 23:37:11 +01:00
Fabio Caccamo 014cb9b771 Update create-release.yml 2022-12-11 23:22:37 +01:00
Fabio Caccamo 9c1af23785 Run `pre-commit`. 2022-12-11 23:07:11 +01:00
Fabio Caccamo df6e330747 Update .pre-commit-config.yaml 2022-12-11 23:06:39 +01:00
Fabio Caccamo 03d318fb24 Update README.md 2022-12-11 23:05:32 +01:00
Fabio Caccamo 5623e77b5c Update setup.py 2022-12-11 23:05:17 +01:00
Éric 15da0bfd9a
minor cleanups (#225)
* use normal html self-closing tags

* stop using obsolete test integration

* make test more straightforward

* removed unused setting
2022-12-11 22:53:05 +01:00
Éric 19cbeead58
Include date hierarchy in quick removal links (#218)
* Include date hierarchy in quick removal links

* use date field name in removal link

* reduce diff

* tweak some details

* start adding tests

* use mock without spec :(

it's not easy to instantiate ChangeList, and speccing from
the class means that many attributes are not recognized

* more tests

* more tests

* more checks for generated URLs

* better tags and tests

* compat for tox 4
2022-12-11 20:44:31 +01:00
github-actions[bot] c414c3ad4d
Update pre-commit hooks. (#224) 2022-12-10 02:12:25 +01:00
Vasanth 79f3fefaad
Text color on focus (#223) 2022-12-09 11:08:02 +01:00
Fabio Caccamo 98b8025ed7 Replace `str.format` with `f-strings`. 2022-12-06 13:44:32 +01:00
Fabio Caccamo 819fa13b1e Update `README.md`. [ci skip] 2022-12-05 11:52:50 +01:00
Fabio Caccamo 6557d2a4b5 Update `README.md`. [ci skip] 2022-12-05 11:48:53 +01:00
Fabio Caccamo ae78cb7b86 Update german translations. 2022-12-05 10:21:39 +01:00
Vasanth a75c16162f
[css] Fix inlines vertical alignement (#201)
Co-authored-by: vaz <vmohan@lenbox.io>
2022-12-05 10:19:44 +01:00
derzinn 14634aa505
Add german translation (#222)
* Added german translation

* Updated languages for test cases

* Updated identical message strings

* Updated django.po with corrected file paths

* Re-generated django.mo file

* Language lists sorted by code for test cases
2022-12-05 10:13:11 +01:00
Fabio Caccamo 6b841b0916 Update setup.py 2022-12-04 15:43:20 +01:00
Fabio Caccamo dba40e3b61 Update `pyproject.toml` and `.pre.commit-config.yaml`. 2022-12-04 13:45:56 +01:00
Fabio Caccamo 63977a4d75
Update pyproject.toml 2022-12-04 09:07:49 +01:00
Fabio Caccamo f4df5c5289 Update requirements. 2022-12-03 14:05:57 +01:00
Fabio Caccamo b88d7d8b95 Reformat models module. 2022-12-03 14:04:01 +01:00
Fabio Caccamo 60649ac4e6 Remove `post_migrate` signal handler and multi db test. 2022-12-03 14:01:57 +01:00
Éric d62593e01b
Drop old Python and Django versions (#220)
* drop old python and django versions

* fix tests

* remove compat module entirely

Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
2022-12-03 13:49:09 +01:00
Vasanth 333025f877
Fix broken tabbed inline name. #221
Co-authored-by: vaz <vmohan@lenbox.io>
2022-12-02 11:18:52 +01:00
Fabio Caccamo 9c0251b7a4 Fix tests. 2022-12-01 10:24:51 +01:00
Fabio Caccamo 2141298e27 Add Farsi language to `tests.settings.LANGUAGES`.
Co-Authored-By: Éric <635179+merwok@users.noreply.github.com>
2022-12-01 09:52:34 +01:00
Fabio Caccamo 762d1184dd Update `CHANGELOG` and version. 2022-11-30 19:18:25 +01:00
Fabio Caccamo 967f5827f2 [tabbed-changeform] Improve tabbed changeform feature. 2022-11-30 19:06:52 +01:00
Fabio Caccamo f2b800d9ca [css] Adjust list filter dropdown `margin-top`. 2022-11-30 15:38:39 +01:00
Vasanth 07dcb77b88
Add border to rest of the tab space (#215)
* add border to rest of the tab space

* All tabs should be False

* slugify div ids

* bottom padding for horizontal

* do not show solo tabs

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* use properties over attribute

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* rename id to class

* scrollbar shenanigans

* rename tag

* wip : button weirdness in safari

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: vaz <vmohan@lenbox.io>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-11-30 15:33:59 +01:00
Fabio Caccamo a76de04a8b [css] Reduce secondary scrollbars size. 2022-11-30 15:13:27 +01:00
Fabio Caccamo 1d963230e4 [css] Fix nav filter style on Safari. 2022-11-30 14:54:41 +01:00
Fabio Caccamo 81ebbaa2c9 [css] Fix nav filter clipped outline on focus. 2022-11-30 14:50:27 +01:00
Fabio Caccamo 5376089110 [css] Improve language chooser style. 2022-11-30 14:34:56 +01:00
Fabio Caccamo 79dfb2fea9 [css] Improve nav filter style. #214 2022-11-30 14:34:38 +01:00
Fabio Caccamo 5009e97086 [css] Adjust list filter dropdown vertical margins. 2022-11-29 17:04:20 +01:00
Fabio Caccamo b5fdd6ec19 [css] Reduce scrollbar width on scrollable sticky elements. 2022-11-29 16:45:32 +01:00
Fabio Caccamo 2d839d2ff7 Update pre-commit-autoupdate.yml 2022-11-28 12:43:41 +01:00
Fabio Caccamo 82f2fd7a84 Update translations. 2022-11-26 09:56:50 +01:00
Vasanth cc1f72b23d
Add tabbed changeform support (#211).
* WIP : basic templates

* Add params

* Working override

* Use headerless version only during tabs

* Move CSS to separate file

* Extract js to static folder

* script is not self-closing

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* use classList for updating classes

* Add EOF (newline) to new text files

* a simple test to keep up code coverage

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fieldsets are not tabbed by default

* rename templatetag

* use default page if show_*_tabs are false

* Narrow down css to admin-interface

* Fix typo

* keep codacy happy

* prefix tab classes with tabbed-changeform-

* horizontal scrolling

* Update colors

* color updates

* add back missing font bold

Co-authored-by: vaz <vmohan@lenbox.io>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-11-26 09:54:33 +01:00
Vasanth 23511d04b2
Fix #208 - do not assume active DB when not specified (#210).
* Do not assume active DB when not specified

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add db routing test case

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* one more test

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* use assertRaises instead of expectedFailure

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Catch a general exception for  django < 2.0

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* use `with` instead of callable

* skip test for django < 2.0

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove repeated test

Co-authored-by: vaz <vmohan@lenbox.io>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-11-26 09:53:33 +01:00
github-actions[bot] 585bf7a52b
Update pre-commit hooks. (#213) 2022-11-25 07:22:41 +01:00
Fabio Caccamo 85fb723747 Update pre-commit-autoupdate.yml 2022-11-24 13:16:32 +01:00
Fabio Caccamo 873cce2144 Update dependabot.yml 2022-11-24 13:16:28 +01:00
Fabio Caccamo f3a69713a1 Add `Python 3.11` support. 2022-11-24 10:11:41 +01:00
Fabio Caccamo 2b7b7b13eb Update dependabot.yml 2022-11-24 10:11:26 +01:00
Fabio Caccamo e208ba24ad Create pre-commit-autoupdate.yml 2022-11-24 10:03:56 +01:00
Fabio Caccamo 8e9aa16a5b Update `tox`.
- Replace `whitelist_externals` (deprecated) with `allowlist_externals`.
- Update translations test env for running `git diff` only with the `locale/` folder.
2022-11-23 17:40:06 +01:00
Davide Borgonovo 7e85ebac9b Importo ImportMixin o non funziona 2022-11-22 10:09:05 +01:00
Davide Borgonovo 95fb2df285 Import mixin non veniva usato 2022-11-22 10:05:38 +01:00
dependabot[bot] 18f865beaa
Bump github/codeql-action from 1 to 2 (#207)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 16:46:38 +01:00
dependabot[bot] 03c95395b2
Bump fabiocaccamo/create-matrix-action from 2 to 3 (#206)
Bumps [fabiocaccamo/create-matrix-action](https://github.com/fabiocaccamo/create-matrix-action) from 2 to 3.
- [Release notes](https://github.com/fabiocaccamo/create-matrix-action/releases)
- [Commits](https://github.com/fabiocaccamo/create-matrix-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: fabiocaccamo/create-matrix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 16:46:25 +01:00
dependabot[bot] c26827a75a
Bump codecov/codecov-action from 2 to 3 (#205)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 16:46:10 +01:00
dependabot[bot] aab4435841
Bump actions/checkout from 2 to 3 (#204)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-21 16:45:53 +01:00
Fabio Caccamo 75a52c6449 Update `CHANGELOG` and version. 2022-11-18 21:29:30 +01:00
Fabio Caccamo 0ad9ca74ae Remove translations line numbers. 2022-11-18 21:12:51 +01:00
Fabio Caccamo 76a8b9d114
Update dependabot.yml 2022-11-18 16:00:21 +01:00
Fabio Caccamo 158128d864 Add missing `using` parameter in `pre_save` signal handler. 2022-11-18 13:32:30 +01:00
Fabio Caccamo 78041ea28b Separate `test_repr` and `test_str`. 2022-11-18 13:31:57 +01:00
Fabio Caccamo e1020a29dc Remove unnecesary `using("default")`. 2022-11-18 13:31:44 +01:00
Vasanth 946b9c98e0
Respect 'using' in signals (#200) 2022-11-18 13:07:59 +01:00
Fabio Caccamo 7c9340ba3a Run tests even if `lint` step fails. 2022-11-17 15:13:13 +01:00
Davide Borgonovo 363bc310a1 Aggiunta import dei temi con uno .zip 2022-10-27 16:12:11 +02:00
Davide Borgonovo 2ee03fc2de Non so perchè non si era preso dentro queste modifiche nella migrazione 29 2022-10-26 10:25:58 +02:00
Davide Borgonovo 74dacaba2c Updated version 2022-10-25 18:00:29 +02:00
Davide Borgonovo 9272e6563b Tolto tema di default con Django e warning brutto 2022-10-25 17:59:57 +02:00
Fabio Caccamo d4ea141571
Update dependabot.yml 2022-10-18 15:23:37 +02:00
Fabio Caccamo 049854f2c3 Merge branch 'master' of https://github.com/fabiocaccamo/django-admin-interface 2022-10-18 14:20:35 +02:00
Fabio Caccamo 0dd591716d Update pyproject.toml 2022-10-18 14:20:33 +02:00
pre-commit-ci[bot] 9d1c28d480
[pre-commit.ci] pre-commit autoupdate (#187)
updates:
- https://github.com/ambv/blackhttps://github.com/psf/black
- https://gitlab.com/pycqa/flake8https://github.com/PyCQA/flake8
- [github.com/PyCQA/flake8: 3.9.2 → 5.0.4](https://github.com/PyCQA/flake8/compare/3.9.2...5.0.4)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-18 09:40:00 +02:00
Fabio Caccamo 1002f48986 Fix `tox -e translations` command. 2022-10-17 18:41:50 +02:00
Fabio Caccamo 0939202824 Update setup.py 2022-10-17 18:36:58 +02:00
Fabio Caccamo 990975a0eb Add `django 4.1` to CI. 2022-10-17 18:27:45 +02:00
Fabio Caccamo 78ae411d58 Update requirements-test.txt 2022-10-17 14:56:34 +02:00
Fabio Caccamo 98b7228f95 Fix tests. 2022-10-17 14:50:14 +02:00
Fabio Caccamo 03e5cbdf9e Fix `pt-BR` language code. 2022-10-17 14:42:07 +02:00
Fabio Caccamo 092175202c Update translations. 2022-10-17 14:38:16 +02:00
Fabio Caccamo 200d0cc681 Run `compilemessages` faster. 2022-10-17 14:37:41 +02:00
Fabio Caccamo d48c8cc182 Fix `pt_br` language code. 2022-10-17 14:37:08 +02:00
Fabio Caccamo ead930d3b4 Replace `update-translations.sh` script with `makemessages --all`. 2022-10-17 14:24:35 +02:00
Fabio Caccamo f4617ac126 Update `tests.settings.LANGUAGES` list. 2022-10-17 14:21:44 +02:00
Fabio Caccamo de27c013fa Add `pre-commit` status badge. 2022-10-14 17:58:04 +02:00
Fabio Caccamo 5e58c35b08 Run `pre-commit`. 2022-10-14 17:31:57 +02:00
Fabio Caccamo aecfbf0291 Add `pre-commit` with `black`, `isort` and `flake8`. 2022-10-14 17:29:11 +02:00
Fabio Caccamo bf72f6c982 Update `CHANGELOG` and version. 2022-10-13 12:06:35 +02:00
Fabio Caccamo 3b055dd7cc Update README. 2022-10-13 12:05:08 +02:00
Fabio Caccamo 53e5b66785 [css] Fix list-filter dropdown vertical margins. 2022-10-13 12:04:08 +02:00
Fabio Caccamo 5e5e811102 [css] Add `django-rangefilter` style optimizations. 2022-10-13 12:01:00 +02:00
Fabio Caccamo da027966c0 [css] Fix calendar prev/next arrows style. 2022-10-13 11:58:34 +02:00
Fabio Caccamo 87fdcc7f16 Format code. 2022-10-13 11:54:07 +02:00
Fabio Caccamo 3f46d3aa32 Fix `KeyError` raised by `django-rangefilter`. 2022-10-13 11:53:20 +02:00
Fabio Caccamo 5ffd77ef0b Update `CHANGELOG` and version. 2022-10-12 11:32:13 +02:00
Fabio Caccamo a7ca8f96cb Fix duplicated welcome message. #185 2022-10-12 11:28:24 +02:00
Éric bd2fede501
Add CI checks for migrations and translations. #186
* ci: add migration check

* fix install

* fix tox config

* ci: add check for outdated translations

* update french translation

* ci: django needs xgettext

* option --all doesn't work

* refresh all translations

* ci: help debug failed jobs

* ci: fix jobs graph

* ci: also check that compiled catalogs are up to date
2022-10-12 10:17:17 +02:00
Éric f8ace75f36
Add option for list filter quick remove. #183
* add option for list filter quick remove

* move transform from css to python

* make template tag more resilient for unusual filters

* fix tests

* rename field, move rendering to template, change style

* fix tests
2022-10-11 18:15:21 +02:00
Fabio Caccamo de2979219e Fix left/right scrolling broken with django-import-export. #165 2022-10-07 11:12:32 +02:00
Fabio Caccamo bf89569794 Update `CHANGELOG` and version. 2022-10-06 17:27:48 +02:00
Éric f25d340738
Add option to make active list filters more visible. #178
* add option to make active list filters more visible

* fix margins and border radius for selected filters
2022-10-06 09:47:19 +02:00
Fabio Caccamo 56f876d25e
Update README.md (remove broken visitors badge). [ci skip] 2022-09-30 09:29:55 +02:00
Éric 04df53ee4b
Add support for collapsible fieldsets that start expanded. #177
* support collapsible fieldsets that start expanded

* address review comments
2022-09-29 09:37:26 +02:00
Fabio Caccamo 5ac75f5cf3 Fix `language_choose_control` migration default value.
Co-Authored-By: Éric <635179+merwok@users.noreply.github.com>
2022-09-29 09:34:12 +02:00
Fabio Caccamo 40b8963d74 Add language chooser control option (default select, minimal select). #136 2022-09-28 18:55:50 +02:00
Fabio Caccamo 8d3d7c9648 [css] Fix variable name typo. 2022-09-28 18:00:05 +02:00
Fabio Caccamo 668c8c806b [html] Add missing version cache-buster to some stylesheets. 2022-09-28 16:58:44 +02:00
Fabio Caccamo 8562c2dbfb [css] Move `language-chooser` style to its own CSS file. 2022-09-28 16:55:00 +02:00
Fabio Caccamo 585575dce7 [js] Fix modal window not closing on save with `django >= 4.0`. #169 2022-09-28 16:34:26 +02:00
Fabio Caccamo 990db6fdc8 [css] Fix sticky list filter scrolling. #175 2022-09-28 15:37:06 +02:00
Fabio Caccamo 5fb85d02a2 [css] Fix paginator missing `border-top` on mobile. 2022-09-28 12:46:11 +02:00
Yury V. Zaytsev 833acf49a1
Fix `README.md` typo on French language name. (#171) 2022-09-20 11:17:25 +02:00
Davide Borgonovo a96cede14f white-space: normal nello user-tools che altrimenti nella versione mobile tagliava i link in alto a dx 2022-09-14 14:34:35 +02:00
Guido Longoni 903417ab79 theme.env_name everywere 2022-09-13 19:04:50 +02:00
Davide Borgonovo d76c64c2d6 Messa la migrazione che altrimenti voleva fare la prima volta che si faceva makemigrations. Mi era scapapto un verbose name 2022-08-26 11:23:12 +02:00
Fabio Caccamo 951c07b76d Update `CHANGELOG` and version. 2022-08-25 12:17:01 +02:00
Fabio Caccamo 769fab5e84 Add `django-streamfield` compatibility. 2022-08-25 12:03:39 +02:00
Fabio Caccamo 6eebeb62c1 Removed testing comments. 2022-08-25 12:00:44 +02:00
Fabio Caccamo 53e9b3f9f7 Fix CSS variable name typo. 2022-08-25 11:58:54 +02:00
Fabio Caccamo b90ed72ef6 Update `README` css variables section. 2022-08-25 11:58:20 +02:00
Fabio Caccamo 11bde80a36 Update `CHANGELOG` and version. 2022-08-04 14:41:46 +02:00
Jon 003b0f9892
Update admin_interface_tags.py (#168) 2022-08-03 20:07:08 +02:00
Tim Gates 3156882cba
docs: Fix a few typos (#166) 2022-07-31 08:15:07 +02:00
Fabio Caccamo de09ffd7b1
Update FUNDING.yml 2022-06-22 14:43:31 +02:00
Fabio Caccamo ce552f9f0c
Updated README. [ci skip] 2022-06-16 00:41:11 +02:00
Fabio Caccamo 502b1af775 Updated CHANGELOG and version. 2022-05-14 15:55:16 +02:00
Fabio Caccamo 4212a695f0 Updated create-release workflow. 2022-05-14 15:55:05 +02:00
Fabio Caccamo 04632078d1 [css] Fixed dashboard alignment when recent-actions are not visible. 2022-05-10 10:44:05 +02:00
Fabio Caccamo 94c436b137 Reformatted Theme model choices. 2022-05-10 10:43:40 +02:00
Davide Borgonovo 4244b0b3ae Aggiornata versione 2022-04-28 18:34:52 +02:00
Davide Borgonovo 7baffaf490 Ora più utenti possono avere lo stesso tema e li setto con una Inline 2022-04-28 18:34:28 +02:00
Davide Borgonovo b8a160f746 Aggiornata versione 2022-03-15 17:59:01 +01:00
Davide Borgonovo 5e3e3a1480 Revert "Converted dynamic inline CSS to external static CSS using CSS variables. #157 #93"
This reverts commit 8fe7178a13.
2022-03-15 17:56:03 +01:00
Fabio Caccamo 1e3b71825b Corrected wrong PyPI project urls. 2022-03-15 08:55:28 +01:00
Davide Borgonovo 7d649185cb Forkino per aggiungere modalità demo con un tema selezionato e per rendere il tema associabile ad un utente 2022-03-14 23:58:22 +01:00
Fabio Caccamo 3ff4f05e51 Update test-package.yml
Revert "Update test-package.yml"

This reverts commit d5cb8ff3fd09d43e3b2d333693b9fd97619a2b7f.

Update test-package.yml

Updated `create-matrix-action` version.

Update test-package.yml

Update test-package.yml

Update test-package.yml

Update test-package.yml
2022-03-10 15:50:09 +01:00
Fabio Caccamo d8cffd8c2c Updated CHANGELOG and version. 2022-03-09 10:14:57 +01:00
Mustafa M. A. U. AbuGhazy 8fe7178a13 Converted dynamic inline CSS to external static CSS using CSS variables. #157 #93 2022-03-09 10:14:57 +01:00
Fabio Caccamo d2b680e477 Update test-package.yml 2022-03-09 10:14:57 +01:00
Fabio Caccamo c07cad01e9 Updated CHANGELOG and version. 2022-02-24 10:24:45 +01:00
Fabio Caccamo 9c3798b155 Sorted imports. [ci skip] 2022-02-24 10:24:28 +01:00
MG Santos 06069644fd
Removed public disclosures of the lib's version. #154 2022-02-22 16:22:19 +01:00
Fabio Caccamo f3e7fcef33
Delete label-sponsors.yml 2022-02-18 00:05:28 +01:00
Fabio Caccamo e64614274c Reformatted code with Black. 2022-02-08 18:58:59 +01:00
Fabio Caccamo 9b252d8577 Create label-sponsors.yml 2022-02-07 01:09:56 +01:00
Fabio Caccamo 1db3436e2a Updated CHANGELOG and version. 2022-02-04 22:06:34 +01:00
Fabio Caccamo 0f58934ae4 Updated translations. 2022-02-04 22:04:20 +01:00
Fabio Caccamo ec84ce8119 Added missing closing quote and parenthesis to polish translation. 2022-02-04 16:41:52 +01:00
Kamil 369c5582a6
Added Polish translation. #152 2022-02-04 14:35:51 +01:00
Fabio Caccamo 8c4ea1f749 Create dependabot.yml 2022-02-03 08:45:34 +01:00
leandromsd 7649fef2c2
Correcting spelling error (#151) 2022-01-28 14:17:57 +01:00
Fabio Caccamo 958996f119 Update test-package.yml 2022-01-27 23:26:30 +01:00
Fabio Caccamo 7719ac4277 Updated README. [ci skip] 2022-01-27 23:26:26 +01:00
Fabio Caccamo 8930ba1ddc Fixed login logo max-width and title color. 2022-01-21 14:17:09 +01:00
Fabio Caccamo ee63826836 Updated CHANGELOG and version. 2022-01-21 13:41:56 +01:00
Fabio Caccamo 7c0a105c92 Fixed body scroll reset to top when opening related modal. #150 2022-01-21 13:39:21 +01:00
Fabio Caccamo c8ababb8e4
Create SECURITY.md 2022-01-20 19:26:59 +01:00
leandromsd 384a63f76f
Added portuguese brazil localization. #149
* add portuguese brazil language

* replace empty translations with the original text

Co-authored-by: Leandro Caixeta <leandro.caixeta@buser.com.br>
2022-01-20 13:39:38 +01:00
Fabio Caccamo f6c4d50bb3 Update test-package.yml 2022-01-17 22:11:05 +01:00
Fabio Caccamo 84c15d2b28 Update setup.py 2022-01-12 02:23:16 +01:00
Fabio Caccamo 6d46dfafc2 Updated version and CHANGELOG. 2022-01-05 18:48:55 +01:00
Micah Walter 3f076578bb
Added link to admin home page on logo and title. #147 2022-01-05 18:31:07 +01:00
Fabio Caccamo cc4c379465 Fixed missing comma in tests settings `MIDDLEWARE_CLASSES`. #145 2022-01-04 18:16:53 +01:00
Fabio Caccamo c9f0795a95 Updated workflows.
- Added `create-release.yml` workflow.
- Renamed `pythonpackage.yml` to `test-package.yml`.
2021-12-22 21:56:47 +01:00
Fabio Caccamo 042e93a84b Fixed collapsed inlines rounded bottom borders. 2021-12-21 15:58:39 +01:00
Fabio Caccamo c9e800b5ab Updated README. #115 2021-12-15 11:14:29 +01:00
Fabio Caccamo 7257fbffb3 Merge branch 'master' of https://github.com/fabiocaccamo/django-admin-interface 2021-12-08 15:52:44 +01:00
Fabio Caccamo 1f690978bf Added django 4.0 to CI. 2021-12-08 15:52:41 +01:00
Fabio Caccamo 3d9cfd134d
Update pythonpackage.yml 2021-12-07 21:07:33 +01:00
Fabio Caccamo 017f905330 Update pythonpackage.yml 2021-12-07 18:48:23 +01:00
Fabio Caccamo 796cea4a49 Updated CHANGELOG and version. [ci skip] 2021-12-07 11:08:57 +01:00
Fabio Caccamo 0178e0ccff Fixed `check_installed_apps` checks. 2021-12-07 10:59:57 +01:00
Fabio Caccamo 70ed000f08 Replaced travis with GitHub action workflow. #142 2021-12-07 10:43:46 +01:00
Éric 294f8520ab
Fix django default appconfig deprecation warning (#141) 2021-12-06 22:33:33 +01:00
Fabio Caccamo 1b28c183f0
Update README.md 2021-12-06 21:19:21 +01:00
Fabio Caccamo 520dceaa97 Updated CHANGELOG and version. 2021-11-25 11:58:11 +01:00
Fabio Caccamo 2fa85eb964 Fixed migration error. 2021-11-25 11:58:00 +01:00
Fabio Caccamo 3bc6e6fe3b Revert "Removed wrong migration."
This reverts commit 8ded8e160b.
2021-11-25 11:55:57 +01:00
Fabio Caccamo 3dc31df5f1 Updated CHANGELOG and version. 2021-11-25 11:49:22 +01:00
Fabio Caccamo 8ded8e160b Removed wrong migration. 2021-11-25 11:49:13 +01:00
Fabio Caccamo f4e5662e49 Updated README.md. [ci skip] 2021-11-24 18:49:47 +01:00
Fabio Caccamo dba9c35ac8 Updated CHANGELOG and version. 2021-11-24 18:47:05 +01:00
Fabio Caccamo 3431565f74 Removed theme css field. 2021-11-24 18:44:28 +01:00
Fabio Caccamo 6a42df67b1 Updated migration code generated by django. 2021-11-24 18:44:15 +01:00
Fabio Caccamo 593709808f Added foldable apps support. #117 2021-11-23 22:32:01 +01:00
Fabio Caccamo 3a2b59f7cc
Create codeql-analysis.yml 2021-10-14 12:23:34 +02:00
Fabio Caccamo b7d9b969b4 Updated CHANGELOG and version. 2021-10-12 10:28:36 +02:00
Fabio Caccamo cacf0e0534 Fixed `FileExtensionValidator` `TypeError` on django < 1.11. 2021-10-12 10:28:19 +02:00
Fabio Caccamo e2239dcb99 Updated CHANGELOG and version. 2021-10-08 16:57:29 +02:00
Fabio Caccamo c769a449f2 Fixed `FileExtensionValidator` `TypeError` on django < 1.11. 2021-10-08 16:29:44 +02:00
Fabio Caccamo 3cff729a8a Updated CHANGELOG and version. 2021-09-24 09:08:05 +02:00
Fabio Caccamo c44db23b31 Fixed favicon fetching incompatible with `django-storages S3`. #128 2021-09-24 09:07:53 +02:00
Robert Durica 485f5400db
Removed: Checking condition for colorfield package (#134) 2021-09-22 23:27:56 +02:00
Fabio Caccamo a2329fdae5 Updated CHANGELOG and version. 2021-09-16 15:48:16 +02:00
Fabio Caccamo a388ec234c Added `logo_max_width` and `logo_max_height`. #127 2021-09-16 15:47:14 +02:00
Fabio Caccamo a3b3f8922d Update CHANGELOG.md 2021-09-16 14:35:26 +02:00
Fabio Caccamo 6b6eed3aa0 Updated CHANGELOG and version. 2021-09-16 14:33:53 +02:00
Mason Neipp fd48e5ca97
Fixed 0020 migration for multiple dbs. #132 2021-09-04 14:45:49 +02:00
Fabio Caccamo fbc29246ff Improved header elements vertical alignment. 2021-05-06 23:34:49 +02:00
Fabio Caccamo 1569828c67 Updated README `Installation` section. [ci skip] 2021-05-02 10:39:56 +02:00
Fabio Caccamo bb73fafeff Fixed inlines vertical overlow. 2021-04-26 15:29:46 +02:00
Fabio Caccamo f76a41ff14 Fixed sticky pagination `width` and `border-bottom`. 2021-04-26 11:51:06 +02:00
Fabio Caccamo 4351751193 Updated CHANGELOG and version. 2021-04-26 10:18:58 +02:00
Fabio Caccamo 044ad518e0 Formatted migrations. 2021-04-26 10:16:03 +02:00
Fabio Caccamo 5b976adb1d Added missing `0021_file_extension_validator` migration. #126 2021-04-26 10:15:24 +02:00
Fabio Caccamo 74732ec9a9 Added compat module. 2021-04-26 10:14:36 +02:00
Fabio Caccamo 5c85dc9cd4 Updated version and CHANGELOG. 2021-04-23 15:00:26 +02:00
Fabio Caccamo 66966501f8 Added `FileExtensionValidator` to logo and favicon fields. #112 2021-04-23 14:53:02 +02:00
Fabio Caccamo 30af685edf Improved selects min-width. 2021-04-21 11:30:30 +02:00
Fabio Caccamo 96d1568c13 Added min-width to selects. 2021-04-20 16:54:29 +02:00
Fabio Caccamo 7c04b35b44 Fixed related widget wrapper margin/padding with normal select. 2021-04-20 16:54:13 +02:00
Fabio Caccamo 004cd5fbcb Improved tabular inlines horizontal scroll. 2021-04-20 15:04:51 +02:00
Fabio Caccamo 8e37cdd218 Fixed related widget wrapper margin/padding in inlines. 2021-04-20 15:04:30 +02:00
Fabio Caccamo ba6807b7f3 Fixed changelist search and actions horizontal margins. 2021-04-16 12:33:21 +02:00
Fabio Caccamo 59a8b4d2d7 Removed invalid property. 2021-04-16 12:32:36 +02:00
Fabio Caccamo f72aac8848 Fixed changelist submit button margin left (with html minified). 2021-04-14 16:03:52 +02:00
Fabio Caccamo 41c6d5b7f1 Fixed header min-height. 2021-04-14 11:31:38 +02:00
Fabio Caccamo 554d8d27b7 Fixed models.W042 warning on django 3.2. 2021-04-14 11:18:58 +02:00
Fabio Caccamo c337c21a03 Added python 3.9 and django 3.2 to tox and travis. 2021-04-12 10:00:22 +02:00
Fabio Caccamo 0f9d502e4f Updated `CHANGELOG` and version. 2021-04-07 15:16:36 +02:00
Fabio Caccamo c961de3391 Overridden dark-mode css variables introduced in django 3.2. #124 2021-04-07 15:14:36 +02:00
Fabio Caccamo aec7ede184 Fixed delete confirmation styles selector prefix. 2021-04-07 15:13:23 +02:00
Natán d338e5914e
Added custom style for the "Delete" and "Save" buttons from the delete confirmation page. (#123)
![Confirmation page](https://i.imgur.com/h4hflxu.png)
2021-04-07 15:09:20 +02:00
Fabio Caccamo 36971ad662 Fixed README links. [ci skip] 2021-03-30 18:17:29 +02:00
Fabio Caccamo d2c8885afa Updated CHANGELOG and version. 2021-03-30 18:13:11 +02:00
Fabio Caccamo e9b0694c0b Added supporting section to README. 2021-03-30 18:05:58 +02:00
Fabio Caccamo 14aa681e7d Removed unused funding options. 2021-03-30 18:02:02 +02:00
Fabio Caccamo c2e3545f46 Added `responsive_rtl.css` stylesheet. #98 2021-03-30 18:01:39 +02:00
Fabio Caccamo aed5afbfa7 Updated `vazir-font` version to `27.2.2`. #98 2021-03-30 17:59:56 +02:00
Fabio Caccamo 9b7c6ee3fe Added css variables for `css_module_background_selected_color` and `css_module_link_selected_color`. #122 2021-03-30 17:57:44 +02:00
Henri Chain a8322872ab
Added customizable colors for selected apps and models in dashboard. #122 2021-03-29 09:49:07 +02:00
Fabio Caccamo e5318b688b Updated CHANGELOG and version. 2021-03-26 19:17:05 +01:00
Fabio Caccamo 455259f3ef Fixed inline changelink style. 2021-03-26 19:14:39 +01:00
Fabio Caccamo 7d2d29a42c Made globally available `presentRelatedObjectModal` and `presentRelatedObjectModalOnClickOn`. 2021-03-26 19:14:22 +01:00
Henri Chain 5ed9fd75cc
support show_change_link with related modal (#120) 2021-03-26 18:35:06 +01:00
Fabio Caccamo ca71642ecf Updated CHANGELOG and version. 2021-03-02 09:52:48 +01:00
Fabio Caccamo 4369288928 Fixed sticky submit and pagination z-index issue with related modal. 2021-03-02 09:52:36 +01:00
Fabio Caccamo f167bbf2c4 Updated README, CHANGELOG and version. 2021-03-01 23:32:26 +01:00
Fabio Caccamo 1b60af57e0 Fixed sticky submit and pagination z-index issue with sticky list_filter and django-json-widget. 2021-03-01 23:32:05 +01:00
Fabio Caccamo 947202f915 Updated version and CHANGELOG. 2021-02-08 11:21:37 +01:00
Fabio Caccamo 7eb6371104 Fixed sticky submit and pagination width when admin.site.enable_nav_sidebar = False. #113 2021-02-08 11:21:04 +01:00
Fabio Caccamo c315f366f3 Updated version and CHANGELOG. 2021-02-03 21:24:27 +01:00
Fabio Caccamo f2a2a98ad9 Improved sticky submit and pagination backward compatibility. 2021-02-03 21:23:05 +01:00
Fabio Caccamo 5b606153de Fixed body classes template rendering. 2021-02-03 21:22:06 +01:00
Fabio Caccamo 87396a1b5e Updated version and CHANGELOG. 2021-02-03 17:15:13 +01:00
Fabio Caccamo b35a2987cc Fixed and improved sticky form controls and pagination style. 2021-02-03 17:15:01 +01:00
Fabio Caccamo 2baed25204 Updated version and CHANGELOG. 2021-02-03 14:35:45 +01:00
Fabio Caccamo 3f5a3f9ded Updated README. 2021-02-03 14:35:25 +01:00
Fabio Caccamo 6189a7bbdb Renamed migration. 2021-02-03 14:35:10 +01:00
Amir Ajorloo d1cda34a52
Add sticky action button option. (#110)
* Add sticky action button option.

* Add sticky_pagination field. Handle top submit row. Update Admin section

* Add sticky-pagination styles. Fix trailing whitespace issue in models.

* Update sticky pagination max-width
2021-02-03 10:26:07 +01:00
Fabio Caccamo fdbacba4bb Added support to 4-digit language code in language chooser. #111 2021-01-29 15:57:39 +01:00
Fabio Caccamo 5c56f3a2db Added theme css variables. 2021-01-11 15:34:58 +01:00
Fabio Caccamo 17bb35c559 Fixed app module section link hover color. 2021-01-11 15:34:42 +01:00
Fabio Caccamo ed25f0fdde Updated version and CHANGELOG. 2021-01-04 13:55:07 +01:00
Fabio Caccamo a18e35f4c3 Updated LICENSE copyright year to present. 2021-01-04 13:54:57 +01:00
Fabio Caccamo f9817da531 Fixed module header selected link color. 2021-01-04 13:50:40 +01:00
Fabio Caccamo d94c6321aa Disabled sidebar transition. 2021-01-04 12:24:43 +01:00
Fabio Caccamo 3c77bad4ae Fixed tabular inline scroll bar. #101 2021-01-04 12:24:24 +01:00
Fabio Caccamo aa36776490 Fixed main content width when admin.site.enable_nav_sidebar is False. 2021-01-04 12:16:28 +01:00
anatolzak d375b04941
added transition to nav sidebar and toggle nav sidebar button (#104)
* added transition to nav sidebar and toggle nav sidebar button

* specified transition properties instead of using all

* removed extra blank line

Co-authored-by: Anatol Zakrividoroga <anatol@Anatols-MacBook-Pro.local>
2020-12-15 16:32:15 +01:00
Fabio Caccamo cceb0b1721 Updated README. [ci skip] 2020-11-27 13:11:07 +01:00
Fabio Caccamo e364f9da1c Updated CHANGELOG and version. 2020-11-12 13:28:06 +01:00
Fabio Caccamo aec847070f Fixed sticky list-filter floating. #100 2020-11-12 13:27:51 +01:00
Fabio Caccamo 11f7440273 Improved tests coverage. 2020-10-21 12:27:14 +02:00
Fabio Caccamo 02cde83181 Fixed long description encoding. 2020-10-21 12:26:31 +02:00
Fabio Caccamo a302c87724 Updated CHANGELOG and version. 2020-10-15 11:14:12 +02:00
Fabio Caccamo d61ef86dd6 Added list filter sticky option (only for django >= 3.1.2). 2020-10-15 10:49:26 +02:00
Fabio Caccamo 071fe476a6 Enabled list filter dropdown by default. 2020-10-15 10:48:16 +02:00
Fabio Caccamo 9b611d1dcb Fixed searchbar style. 2020-10-15 10:42:40 +02:00
Fabio Caccamo 61c1720fd7 Fixed searchbar style. 2020-10-15 10:06:58 +02:00
Fabio Caccamo 962267de1d Updated CHANGELOG and version. 2020-10-14 18:37:50 +02:00
Fabio Caccamo f632929183 Improved responsive widgets style. 2020-10-14 18:35:59 +02:00
Fabio Caccamo 308858a0d0 Prevented body horizontal scroll. 2020-10-14 18:35:39 +02:00
Fabio Caccamo db7e0770b2 Fixed tabular inline horizontal scroll. 2020-10-14 18:34:56 +02:00
Fabio Caccamo 195ef2c44f Fixed changelist filter min-width. 2020-10-14 18:34:31 +02:00
Fabio Caccamo 48d3952e68 Fixed changelist and toolbar theme rounded corners. 2020-10-14 18:33:41 +02:00
Fabio Caccamo 96570502cc Fixed calendar and timelist buttons theme color. 2020-10-14 18:33:14 +02:00
Fabio Caccamo 759b5a6f49 Fixed list filter select size. 2020-10-14 18:32:49 +02:00
Fabio Caccamo 92710be337 Fixed content max-width with django 3.1.2 2020-10-14 13:57:35 +02:00
Fabio Caccamo c721359eea Updated CHANGELOG and version. 2020-10-14 13:00:34 +02:00
Fabio Caccamo 79ea1729cc Fixed logo, content and changelist-filter max-width. 2020-10-14 12:55:57 +02:00
Fabio Caccamo 8c4520d4b7 Added .admin-interface prefix to rtl selectors. 2020-10-14 12:55:26 +02:00
Fabio Caccamo b703f77f80 Re-added .gitignore [ci skip] 2020-10-14 10:02:25 +02:00
Amir Ajorloo 13b1d9f15f
Add persian language (#98)
* add fa language translations
* add rtl css file. fix side-nav issue in rtl mode

Co-authored-by: Amir Ajorloo <amirajorloo@gmail.coml>
Co-authored-by: Fabio Caccamo <fabio.caccamo@gmail.com>
2020-10-14 10:00:45 +02:00
Fabio Caccamo e989e623db Updated README. [ci skip] 2020-10-13 15:38:20 +02:00
Fabio Caccamo 2113d009f4 Removed python 3.9 from travis. 2020-10-07 10:50:23 +02:00
Fabio Caccamo e967d09c8b Added python 3.9 to tests. 2020-10-06 10:59:09 +02:00
Fabio Caccamo c050c4f94c Updated CHANGELOG and version. 2020-09-15 09:54:30 +02:00
Fabio Caccamo 97cea97307 Removed python 3.4 from tox test matrix. 2020-09-15 09:54:01 +02:00
Fabio Caccamo 826340c9be Fixed loaddata error with initial_data.json fixture. #97 2020-09-15 09:49:50 +02:00
Fabio Caccamo 28dfc70474 Fixed tests warning (admin.W411). 2020-09-15 09:47:01 +02:00
Fabio Caccamo e9038157be Fixed changelist thead links color. 2020-09-07 23:30:35 +02:00
Fabio Caccamo be21550c6a Fixed changelist filter links hover color. 2020-09-07 14:10:53 +02:00
Fabio Caccamo db87a2aae2 Added "See also" section to README. [ci skip] 2020-09-04 17:00:02 +02:00
Fabio Caccamo 97ac8268b6 Updated version and CHANGELOG. 2020-09-04 15:35:54 +02:00
Fabio Caccamo 941835b5ee Removed old import. 2020-09-04 15:32:58 +02:00
Fabio Caccamo b050d7cb61 Added conditional imports to avoid Django deprecation warnings. #92 2020-09-04 15:30:03 +02:00
Fabio Caccamo 7d64545031 Updated header user-tools margins. 2020-09-04 11:43:42 +02:00
Fabio Caccamo 892bfa5e16 Changed header content vertical align to top. 2020-09-02 18:08:48 +02:00
Fabio Caccamo b165e6d27c Updated version. 2020-09-02 14:53:28 +02:00
Fabio Caccamo f0a72d5e40 Added django-json-widget theming support. 2020-09-02 14:53:19 +02:00
Fabio Caccamo 869d4c31ad Updated README testing section. [ci skip] 2020-08-27 12:52:48 +02:00
Fabio Caccamo a7788b98ed Updated requirements. [ci skip] 2020-08-27 12:52:38 +02:00
Fabio Caccamo 1045690678 Updated changelog and version. 2020-08-21 17:49:29 +02:00
Fabio Caccamo 09548dbcdc Fixed related modal not closing on edit save and create with django 3.1 - #96 2020-08-21 17:48:27 +02:00
Fabio Caccamo 0a4949c75a Updated CHANGELOG and version. 2020-08-18 17:53:37 +02:00
Fabio Caccamo f36e904faf Resized toogle-nav-sidebar button. 2020-08-18 17:51:10 +02:00
Fabio Caccamo f9a6f501e1 Added border when there is not breadcrumbs module. 2020-08-18 17:50:34 +02:00
Fabio Caccamo f9629f5ef1 Added max-width to logo. 2020-08-18 17:16:43 +02:00
Fabio Caccamo 084b0d65f3 Increased sidebar padding-top. 2020-08-18 16:41:32 +02:00
Fabio Caccamo 5935ee9d40 Added requirements-dev.txt 2020-08-18 16:39:45 +02:00
Fabio Caccamo ac66bfddb9
Added views badge to README. [ci skip] 2020-08-06 11:29:40 +02:00
Fabio Caccamo 62ccb31793 Updated CHANGELOG. 2020-08-05 21:24:30 +02:00
Fabio Caccamo 4e243962d1 Updated version. 2020-08-05 21:21:52 +02:00
Fabio Caccamo 51202a1def Improved header style. 2020-08-05 21:21:37 +02:00
Fabio Caccamo d799242714 Improved nav-sidebar style. 2020-08-05 21:19:22 +02:00
Fabio Caccamo e37142e0f4 Fixed tox django version error. 2020-08-04 17:43:03 +02:00
Fabio Caccamo 79dcc111da Added django 3.1 to CI. 2020-08-04 17:38:33 +02:00
Fabio Caccamo 651557bfc2 Updated CHANGELOG.md [ci skip] 2020-07-20 17:57:22 +02:00
Fabio Caccamo 5456e7ac53 Updated version. 2020-07-20 17:14:49 +02:00
Fabio Caccamo 03f8a2704e Fixed unreadable text in autocomplete multi-selects. #83 2020-07-20 17:14:40 +02:00
Fabio Caccamo ceab3232ad Unmerged admin-index PR. 2020-07-13 14:41:53 +02:00
Fabio Caccamo 6a0576cb7a
Merge pull request #87 from carlosmonari/master
Hi again Mr Fabio, add suport a django-admin-index
2020-07-01 13:47:11 +02:00
carlosmonari 2935c890cf
include stylishment to package django-admin-index
include stylishment to package https://github.com/maykinmedia/django-admin-index
2020-06-28 18:16:30 -03:00
carlosmonari 36f13ce164
include stylishment to package django-admin-index
include stylishment to package https://github.com/maykinmedia/django-admin-index
2020-06-28 18:13:02 -03:00
Fabio Caccamo 6aec3c0c7b Updated version and CHANGELOG.md. 2020-04-07 15:50:01 +02:00
Fabio Caccamo 147a2a6abf Fixed popup javascript error when related modal is inactive. #76 2020-04-07 15:49:19 +02:00
Fabio Caccamo f7ec79eb75 Fixed js self invoking anonymous function expression. 2020-04-07 15:48:42 +02:00
Fabio Caccamo 32e4afd90f Updated tox and .travis config. 2020-03-01 13:12:44 +01:00
Fabio Caccamo bf40b1f36b Updated version. 2020-02-21 17:48:18 +01:00
Fabio Caccamo 94ba6c1813 Updated CHANGELOG. 2020-02-21 17:47:45 +01:00
Fabio Caccamo ca57425525 Updated .travis config. 2020-02-21 17:47:34 +01:00
Fabio Caccamo 535a7c0490 Fixed custom django admin header. #75 2020-02-21 17:47:21 +01:00
Fabio Caccamo d97fc38a88 Bumped django-colorfield version to 0.2. 2020-02-17 21:29:28 +01:00
Fabio Caccamo 1caca70e0f Improved setup.py. 2020-02-17 13:00:17 +01:00
Fabio Caccamo 427c1c2a00 Fixed README codacy badge. 2020-02-13 14:46:30 +01:00
Fabio Caccamo 01f4254f05
Updated README. [ci skip] 2020-02-11 14:51:56 +01:00
Fabio Caccamo 8bf78d3ba0 Updated README. [ci skip] 2020-02-11 14:39:25 +01:00
Fabio Caccamo 10a4ceaf90 Updated installation instructions in README. [ci skip] 2020-02-10 14:49:59 +01:00
Fabio Caccamo df66fa49a4 Removed unused variables. 2020-02-07 15:51:35 +01:00
Fabio Caccamo d689ba43af Improved code quality. 2020-02-07 15:16:36 +01:00
Fabio Caccamo dc43ff1b0a
Merge pull request #74 from ishakoktn/master
Adding TR language for localization
2020-02-07 14:59:04 +01:00
İshak Okutan 49ae15ce98
editing translating info's and improvement translations 2020-01-29 04:56:58 +03:00
Fabio Caccamo 1e26e5ff6c
Updated README.md 2020-01-25 12:42:26 +01:00
İshak Okutan 8391d2ebd2
Merge pull request #1 from ishakoktn/add-tr-language
add tr language
2020-01-24 06:19:14 +03:00
İshak Okutan fd81e75729
add tr language 2020-01-24 06:18:23 +03:00
Fabio Caccamo e51e4e3ae6
Merge pull request #73 from merwok-forks/cleanup-markup
Don't hard-code media type for favicon
2020-01-20 16:37:06 +01:00
Éric Araujo b3ac5df522 don't use xml/sgml style tags in html 2020-01-20 09:24:59 -05:00
Éric Araujo 11944eb07c remove hard-coded favicon type 2020-01-20 09:24:44 -05:00
Fabio Caccamo 42dda3d91d
Updated README. [ci skip] 2020-01-14 11:56:26 +01:00
Fabio Caccamo fb0582ded7
Updated bug report template. [ci skip] 2019-12-07 23:23:10 +01:00
Fabio Caccamo 1e7fa33527 Added issue templates. [ci skip] 2019-12-05 12:14:14 +01:00
Fabio Caccamo 8bdbf31465 Improved code quality. 2019-12-03 11:34:26 +01:00
Fabio Caccamo e739b784ec Updated README requirements. [ci skip] 2019-12-03 11:07:47 +01:00
Fabio Caccamo 4a6cb3601e Updated version. 2019-12-03 11:05:16 +01:00
Fabio Caccamo 7993467346 Updated .travis 2019-12-02 18:56:36 +01:00
Fabio Caccamo 287e4421c9 Added python 3.8 and django 3.0 compatibility. 2019-12-02 18:51:35 +01:00
Fabio Caccamo aa57797297 Fixed input file thumbnail display. 2019-12-02 18:51:09 +01:00
Fabio Caccamo 2667e96549 Removed open-collective from README. [ci skip] 2019-12-02 18:50:29 +01:00
Fabio Caccamo 22dbcd206b
Create FUNDING.yml 2019-11-12 15:54:53 +01:00
Fabio Caccamo aaf586721d
Merge pull request #66 from opencollective/opencollective
Activating Open Collective
2019-10-15 12:33:41 +02:00
Fabio Caccamo d5c14ef3f4 Updated CHANGELOG and version. 2019-09-27 12:08:25 +02:00
Fabio Caccamo 93dfb07af9 Fixed select2 background color. 2019-09-27 11:59:29 +02:00
Fabio Caccamo 8e734864c2
Merge pull request #69 from lorenzomorandini/select2-theme-color
Autocomplete selected color:
2019-09-27 09:29:31 +02:00
Lorenzo Morandini d1cb3c11aa Autocomplete selected color:
set select2 selected color based on css_header_background_color
2019-09-25 15:00:16 +02:00
Fabio Caccamo 82923f9e98 Optimized language chooser template tag. 2019-09-05 10:15:29 +02:00
Fabio Caccamo 235d51ed9a Updated CHANGELOG. [ci skip] 2019-09-04 11:25:21 +02:00
Fabio Caccamo 1baebf9d62 Added language chooser display option. 2019-09-04 11:24:02 +02:00
Fabio Caccamo 56cdbe5d2f Updated README and CHANGELOG. [ci skip] 2019-09-03 18:58:17 +02:00
Fabio Caccamo 06de101ded Added language chooser. 2019-09-03 18:46:31 +02:00
Fabio Caccamo 59ab83538f Removed FUNDING.yml [ci skip] 2019-07-23 18:24:50 +02:00
Fabio Caccamo b04c17a4fd Updated FUNDING.yml [ci skip] 2019-07-23 18:22:47 +02:00
Fabio Caccamo 5b0490b352 Updated FUNDING.yml [ci skip] 2019-07-23 18:19:27 +02:00
Jess 8de47f2ecb Added financial contributors to the README 2019-07-15 15:20:36 -07:00
Fabio Caccamo 783464c065 Removed python 3.4 from travis. 2019-07-03 15:49:31 +02:00
Fabio Caccamo 6b3f59788b Updated .travis.yml 2019-07-03 15:18:14 +02:00
Fabio Caccamo 45ab7066cc Merge commit 'bb83f74fb4524b708e3f10f4a0b669b4e80fd70a' 2019-07-03 14:32:04 +02:00
Fabio Caccamo df013b9ba3 Removed README.rst 2019-07-03 14:31:57 +02:00
Fabio Caccamo bb83f74fb4
Create FUNDING.yml 2019-06-03 11:15:23 +02:00
Fabio Caccamo da044864d1 Added Codacy badge to README. [ci skip] 2019-05-20 10:44:31 +02:00
Fabio Caccamo db7c12fdb4 Added CHANGELOG and updated version. [ci skip] 2019-05-09 11:26:03 +02:00
Fabio Caccamo 5b0a5e4c46
Merge pull request #62 from pooyamb/master
Fix #52: Broken migration on postgres/windows
2019-05-09 10:41:27 +02:00
Pouya Mobasher Behrouz 0f1dde545e Fix #52: Broken migration on postgres/windows 2019-05-07 18:44:00 +04:30
Fabio Caccamo b45e357418 Updated .travis 2019-04-29 18:44:29 +02:00
Fabio Caccamo fa6c79c367 Updated .travis 2019-04-29 18:37:34 +02:00
Fabio Caccamo 760609cafd Updated .travis 2019-04-29 18:27:26 +02:00
Fabio Caccamo cb3443aa4c Added django 2.2 to tox and travis and updated README. 2019-04-29 17:51:51 +02:00
Fabio Caccamo 9384c6db79 Updated version. 2019-04-29 17:36:47 +02:00
Fabio Caccamo 1a800d7d6a Fixed admin duplicated count query. 2019-04-29 17:36:36 +02:00
Fabio Caccamo 352701ae7d Added admin theme caching to remove duplicated queries. Fixed #19 2019-04-29 17:35:24 +02:00
Fabio Caccamo b4d0b4c985 Added django-dynamic-raw-id support - #61 2019-04-29 16:38:28 +02:00
Fabio Caccamo 26e67dab66 Updated app title italian localization. 2019-04-29 16:37:56 +02:00
Fabio Caccamo e604dcdffa Updated version [ci skip] 2019-03-28 12:15:30 +01:00
Fabio Caccamo 9b56343a81 Added idempotent deploy support. 2019-03-28 12:08:17 +01:00
Fabio Caccamo aef2d56fba Updated version. 2019-03-22 11:41:40 +01:00
Fabio Caccamo cb7a358c6c Fixed raw-id-field whith django-admin-interface #58 2019-03-22 11:41:31 +01:00
Fabio Caccamo c8690b316b Updated version. [ci skip] 2019-03-21 10:27:49 +01:00
Fabio Caccamo 91bba7f522
Merge pull request #57 from merwok-forks/master
Update French localization
2019-03-21 10:16:46 +01:00
Éric Araujo 439902dce8 fix typo 2019-03-20 14:15:39 -04:00
Éric Araujo 19854f70a3 update french localization 2019-03-20 14:14:44 -04:00
Fabio Caccamo 8291a65a15 Updated version [ci skip] 2019-03-20 17:58:20 +01:00
Fabio Caccamo 9433287cee Updated messages. 2019-03-20 17:53:25 +01:00
Fabio Caccamo f0a046ff7f Added related modal close button #45 2019-03-20 17:53:03 +01:00
Fabio Caccamo 877c4da5bf Updated fields verbose names. 2019-03-20 12:42:10 +01:00
Fabio Caccamo 229a4ef573 Updated README. [ci skip] 2019-03-20 12:34:29 +01:00
Fabio Caccamo cf5e784550 Updated messages. 2019-03-20 12:34:17 +01:00
Fabio Caccamo e58bbbeacf Added environment options - Fixed #56 2019-03-20 12:33:53 +01:00
Fabio Caccamo 1c2ac2a308 Updated version. [ci skip] 2019-02-21 18:05:09 +01:00
Fabio Caccamo 3133beb82f Enabled travis pip cache. 2019-02-21 17:30:13 +01:00
Fabio Caccamo 18d2281011 Splitted tests to multiple files. 2019-02-21 17:17:59 +01:00
Fabio Caccamo 7d9edddf82 Added env badge to favicon. 2019-02-21 17:16:48 +01:00
Fabio Caccamo 1c335f83e9 Added PyPi downloads badge to README. [ci skip] 2019-02-08 12:01:33 +01:00
Fabio Caccamo 68a9974df8 Updated version. 2019-02-06 17:01:31 +01:00
Fabio Caccamo efb38d5825 Fixed #53 - Cancel button does not work 2019-02-06 17:01:17 +01:00
Fabio Caccamo a48d2175ba Removed django 2.2 from tox and travis. 2019-02-06 17:00:45 +01:00
Fabio Caccamo 8bffc8f82a Added postgres to tox and travis and included django 2.2. 2019-02-06 16:23:22 +01:00
Fabio Caccamo 1870635697 Removed extra white space. [ci skip] 2019-02-06 16:22:27 +01:00
Fabio Caccamo 4e0c4a00e2 Fixed IntegrityError on postgres 2019-02-06 16:21:50 +01:00
Fabio Caccamo 4b055f7ffa Added missing migration - fixed #51 2019-01-11 15:08:52 +01:00
Fabio Caccamo d6f0e5b0da
Merge pull request #50 from merwok-forks/add-french-translation
French translation
2019-01-08 17:02:26 +01:00
Éric Araujo 4cf0d8f1b9 add French translation 2019-01-07 11:27:14 -05:00
Éric Araujo cc9b470bfe fix translations 2019-01-07 11:25:55 -05:00
Fabio Caccamo 01d995b031 Added .mo files. 2019-01-07 10:31:52 +01:00
Fabio Caccamo c383adb9a0 Updated version. 2019-01-04 11:56:24 +01:00
Fabio Caccamo 4ad2d87020 Fixed imports order. 2019-01-04 11:56:07 +01:00
Fabio Caccamo 9284594901 Added italian localization. 2019-01-04 11:55:48 +01:00
Fabio Caccamo a3c469f032 Removed useless comment from spanish localization. 2019-01-04 11:55:29 +01:00
Fabio Caccamo 17f71ad803
Merge pull request #48 from softbutterfly/master
Added internationalization and spanish localization
2019-01-04 11:03:52 +01:00
Martín Josemaría 1913af4b7d translatable default title, fix import style in admin.py 2019-01-03 16:01:14 -05:00
Martín Josemaría 8c382f97d1 Removed fuzzy and old msgid for 'Environment' 2019-01-02 16:42:20 -05:00
Martín Josemaría 89fda153de Fix typo in 'Enviroment' fieldset label, added localization for help text in icon field 2019-01-01 21:34:40 -05:00
Martín Josemaría 3fc3fe5912 Update metadata in spanish PO file 2018-12-30 19:23:58 -05:00
Martín Josemaría acdb755071 Added internationalization and spanish localization 2018-12-30 18:47:18 -05:00
Fabio Caccamo c680bb5461 Updated version 2018-11-13 10:19:35 +01:00
Fabio Caccamo ce32a56cdf Fixed #44 - raw_id_fields issue with django 2.1 2018-11-13 10:19:24 +01:00
Fabio Caccamo 7137cbab08 Updated version. 2018-10-24 17:27:55 +02:00
Fabio Caccamo 3f7b1e54e9 Fixed #42 - Related modal does not dismiss on popup response. 2018-10-24 17:27:42 +02:00
Fabio Caccamo cf76fd412e Updated version 2018-10-11 12:11:46 +02:00
Fabio Caccamo ab0afff087 Added automatic check of 3rd party installed apps according to django version. 2018-10-11 12:11:32 +02:00
Fabio Caccamo e3811e2609 Fixed delete modal not dismissed when clicking 'cancel' button. 2018-10-11 12:08:35 +02:00
Fabio Caccamo 47a3d66d5c Enforced django.jQuery usage in popup_response.js 2018-10-11 12:07:02 +02:00
Fabio Caccamo 2700b4ff12 Updated README [ci skip] 2018-10-10 15:51:06 +02:00
Fabio Caccamo 6a1897b95c Updated tests, tox and travis to support django 2.1 and python 3.7. 2018-10-10 15:48:43 +02:00
Fabio Caccamo e5768da21b Fixed tox and travis for django 2.1 testing. 2018-08-31 15:36:42 +02:00
Fabio Caccamo dc8efcbd6b Updated version. 2018-08-31 15:22:06 +02:00
Fabio Caccamo 01c4ad1f06 Added django 2.1 to tox and travis. 2018-08-31 15:21:54 +02:00
Fabio Caccamo 4a848948a0 Added modal to raw_id_fields #37 2018-08-31 15:21:30 +02:00
Fabio Caccamo a96a70400f Cleaned js code [ci skip] 2018-08-31 15:20:21 +02:00
Fabio Caccamo cc0d2a402b
Update .gitattributes 2018-06-14 10:27:58 +02:00
Fabio Caccamo 415de9ca66
Update .gitattributes 2018-06-13 16:09:35 +02:00
Fabio Caccamo 7e57885988
Update .gitattributes 2018-06-13 16:04:18 +02:00
Fabio Caccamo 013dcedd37
Delete vendor.yml 2018-06-13 16:03:54 +02:00
Fabio Caccamo b011256370
Update vendor.yml 2018-06-13 15:59:07 +02:00
Fabio Caccamo 752ccbb603
Created vendor.yml 2018-06-13 12:39:14 +02:00
Fabio Caccamo 8612012783 Fixed README license link [ci skip] 2018-03-29 14:57:20 +02:00
Fabio Caccamo f78167b711 Fixed README license link [ci skip] 2018-03-29 14:55:47 +02:00
Fabio Caccamo ef9b7e6d1b Updated travis 2018-03-29 11:45:18 +02:00
Fabio Caccamo 748b95854e Updated tox 2018-03-29 11:38:04 +02:00
Fabio Caccamo 2f10c88375 AddAdded Django 1.11 to .travis 2018-03-07 10:22:20 +01:00
Fabio Caccamo 73c9a54d94 Updated version 2018-02-06 15:31:19 +01:00
Fabio Caccamo eff414b40c Removed old selector fixies 2018-02-06 15:31:09 +01:00
Fabio Caccamo ccbf76dc5a Improved jquery.ui.tabs compatibility 2018-02-06 15:30:29 +01:00
Fabio Caccamo 5b6e83751b Updated README [ci skip] 2018-02-05 12:37:02 +01:00
Fabio Caccamo 572294f646 Updated version 2018-02-05 12:24:54 +01:00
Fabio Caccamo 4e18d36c79 Added django-tabbed-admin style support 2018-02-05 12:24:42 +01:00
Fabio Caccamo ee9994231b Fixed selectors text overflow 2018-02-05 12:23:54 +01:00
Fabio Caccamo fb4cfdb772 Updated version 2018-02-01 14:52:56 +01:00
Fabio Caccamo 8535232598
Merge pull request #32 from founders4schools/django-20-simple-tag
Avoid deprecation warning about assignment_tag
2018-02-01 14:51:08 +01:00
Bruno Alla abbb666eae Avoid deprecation warning about assignment_tag
Even though the try/except is Django 2.0 compatible, it still
accesses the deprecated template tag, and therefore it emits a
warning in the console, whereas it's actually fixed.

I tried to swap the try and the catch, but it doesn't work:
`simple_tag` existed before 1.9 but in a non-compatible form.

I've changed the decorator name we use to match the new Django version,
it should make the codebase more future proof.
2018-02-01 13:35:54 +00:00
Fabio Caccamo d48fc882f1 Updated USWDS fixture [ci skip] 2018-01-31 16:38:08 +01:00
Fabio Caccamo f968bd9ffa Updated README [ci skip] 2018-01-31 16:37:36 +01:00
Fabio Caccamo c0592276de Updated README [ci skip] 2018-01-31 12:36:43 +01:00
Fabio Caccamo 451679d565 Updated version 2018-01-31 12:24:22 +01:00
Fabio Caccamo e579134152 Added enviroment display and customization 2018-01-31 12:24:08 +01:00
Fabio Caccamo 6e57cf558c Updated .gitignore [ci skip] 2018-01-31 12:12:01 +01:00
Fabio Caccamo d00428c30a Tested against django 2.0 2017-12-05 12:14:27 +01:00
Fabio Caccamo 9becccce39 Updated version 2017-11-23 12:10:32 +01:00
Fabio Caccamo 64a9e8371c Updated setup.py 2017-11-23 12:10:19 +01:00
Fabio Caccamo 8a85334f68 Changed related_modal_background_opacity field type from FloatField to CharField 2017-11-23 12:10:06 +01:00
Fabio Caccamo 41a5ba61c8 Fixed migrations pep8 compliance 2017-11-23 12:08:36 +01:00
Fabio Caccamo c780ccfbcf Added Requirements Status badge provided by https://requires.io/ [ci skip] 2017-10-18 15:52:42 +02:00
Fabio Caccamo 6091c886d7 Updated version 2017-10-04 12:10:24 +02:00
Fabio Caccamo d05009ce44 Fixed horizontal and vertical selector style in inlines 2017-10-04 12:09:48 +02:00
Fabio Caccamo ef1eefb084 Fixed ckeditor style in tabular inlines 2017-10-04 12:08:44 +02:00
Fabio Caccamo e57042b1b4 Fixed README.rst badges [ci skip] 2017-09-29 15:26:40 +02:00
Fabio Caccamo 0b0eff8653 Updated version 2017-09-29 15:11:32 +02:00
Fabio Caccamo f6cef18c6b Updated README.rst for pypi 2017-09-29 15:11:18 +02:00
Fabio Caccamo e8522fe3d7 Updated version 2017-09-29 12:25:29 +02:00
Fabio Caccamo fcb8a38e50 Generate long_description in rst (reStructured Text) format on the fly using pandoc. 2017-09-29 12:25:15 +02:00
Fabio Caccamo 6c3a645edd Replaced repeated strings with variables 2017-09-29 12:24:02 +02:00
Fabio Caccamo b9d0ac6dab Updated django-flat-responsive version range. 2017-09-29 12:22:16 +02:00
Fabio Caccamo 3f270b0b75 Removed README.rst 2017-09-29 12:19:43 +02:00
Fabio Caccamo 7bc15ba61e Removed unused context argument 2017-09-29 12:12:44 +02:00
Fabio Caccamo 37bb3ce0df Removed unused arguments and variables 2017-09-29 12:12:01 +02:00
Fabio Caccamo 66b0172195 Removed unused import 2017-09-29 12:11:40 +02:00
Fabio Caccamo ca2f5c549e Fixed inlines style 2017-09-29 12:11:02 +02:00
Fabio Caccamo 21b221f9e9 Removed unused templatetag 2017-09-27 14:58:42 +02:00
Fabio Caccamo 5fcbef3c5b Merge branch 'master' of https://github.com/fabiocaccamo/django-admin-interface 2017-09-27 14:50:41 +02:00
Fabio Caccamo bc9d200461 Added README.rst to MANIFEST.in 2017-09-27 14:47:42 +02:00
Fabio Caccamo 8c903d5f4c Updated version 2017-09-27 14:47:14 +02:00
Fabio Caccamo c253617346 Updated Python code to be PEP8 compliant 2017-09-27 14:47:03 +02:00
Fabio Caccamo ca2b405989 Updated README.rst 2017-09-27 14:37:18 +02:00
Fabio Caccamo 0fd8469d9a Updated version 2017-09-27 14:34:28 +02:00
Fabio Caccamo 5cce94eefc Added README.rst [ci skip] 2017-09-27 14:33:52 +02:00
Fabio Caccamo c4c6a2b0f2 Updated README.md [ci skip] 2017-09-11 11:48:57 +02:00
Fabio Caccamo 73a61080ae Added code-quality badge to README - [ci skip] 2017-09-04 17:19:12 +02:00
Fabio Caccamo 0164e5b791 Fixed fieldset collapse show/hide link style [ci skip] 2017-08-29 12:41:29 +02:00
Fabio Caccamo bb29c637ff Fixed tests error 2017-08-24 18:37:28 +02:00
Fabio Caccamo a8e9fffdac Increased coverage 2017-08-24 18:23:35 +02:00
Fabio Caccamo d81c7fcdd8 Updated version 2017-08-24 14:28:54 +02:00
Fabio Caccamo 4d07e9fec5 Added favicon support #28 2017-08-24 14:28:36 +02:00
Fabio Caccamo 3b982a84c3 Improved coverage 2017-08-24 14:27:34 +02:00
Fabio Caccamo 072fdcdc95 Fixed duplicated admin queries #19 2017-08-24 14:27:01 +02:00
Fabio Caccamo 07c38baa83 Updated version 2017-07-13 18:01:10 +02:00
Fabio Caccamo ed669a88be Fixed django 1.7 and django 1.9 compatibility 2017-07-13 18:00:56 +02:00
Fabio Caccamo 71ad991ba7 Fixed modals closing in older django versions. 2017-07-13 15:53:00 +02:00
Fabio Caccamo 05128a997e Added version parameter to prevent css/js caching. 2017-07-13 15:50:58 +02:00
Fabio Caccamo 92a816b9ae Updated README.md [ci skip] 2017-06-13 12:57:07 +02:00
Fabio Caccamo 4a9b6e5e5c Updated version 2017-06-13 11:45:28 +02:00
Fabio Caccamo 0e69ccdba6 Changed dependencies versions from strict to ranges 2017-06-13 11:45:17 +02:00
Fabio Caccamo 3f9dc0c58e Merge pull request #26 from 18F/uswds-theme
Add USWDS color scheme.
2017-06-13 10:38:12 +02:00
CM Lubinski cbd414485f Add USWDS color scheme.
As a first draft of a U.S. Web Design Standards theme, this selects uses
reasonable colors from its 508-compliant color pallet.
2017-06-12 17:48:42 -04:00
Fabio Caccamo ccb818043c Merge pull request #23 from 18F/bytes2unicode
Add migration to convert bytes to unicode.
2017-06-12 15:50:37 +02:00
Fabio Caccamo 07d4fd65ef Merge pull request #21 from 18F/future-safe
Specify a max_length on all ColorFields.
2017-06-12 15:49:44 +02:00
Fabio Caccamo 4dd7a9dd3d Merge pull request #20 from founders4schools/deprecation-warnings
Fix a Django deprecation warning
2017-06-12 11:42:05 +02:00
CM Lubinski 9ecaa3836c Add migration to convert bytes to unicode.
Python 2 and 3 treat strings differently; in 2 they are bytes and in 3 they
are unicode objects. The Theme fields' attributes were encoded as bytes in the
initial migration (0001) but should be unicode values, leading to a missing
migration whenever the code is ran on Python 3. This changeset "alters" all
the fields to set them to have unicode attributes rather than bytes.

For more context, we've more or less followed the steps outlined here:
https://docs.djangoproject.com/en/1.11/topics/migrations/#supporting-python-2-and-3
2017-06-09 11:41:15 -04:00
Bruno Alla 511ad909bf Run tests on Python 3.6 for Django 1.11+ 2017-06-09 16:27:13 +01:00
CM Lubinski 8fe6ffd3b2 Specify a max_length on all ColorFields.
Django-colorfield bumped up its default max_length from 10 to 18 characters in
bfe421b8. Though we've pinned the version of colorfields we're depending on,
we can make the future version upgrade easier now by locking our fields to
having a max length of 10 chars.
2017-06-09 11:26:46 -04:00
Bruno Alla d0f8d7514a Fix allow_failures 2017-06-09 15:56:05 +01:00
Bruno Alla 78d80bc129 Run tests against Django master 2017-06-09 15:49:54 +01:00
Bruno Alla 09bd082759 Fix the error on older versions of Django 2017-06-09 15:44:23 +01:00
Bruno Alla 70b4be757d Fix a Django deprecation warning
Replace deprecated assignment_tag:

`python/lib/python3.5/site-packages/admin_interface/templatetags/admin_interface_tags.py:11: RemovedInDjango20Warning: assignment_tag() is deprecated. Use simple_tag() instead`
2017-06-09 15:12:00 +01:00
Fabio Caccamo 486bfa9aba Updated version 2017-06-09 11:58:26 +02:00
Fabio Caccamo e19cd51803 Added per-request cache to get_admin_interface_theme template tag #19 2017-06-09 11:58:10 +02:00
Fabio Caccamo 2d8eeee425 Updated README [ci skip] 2017-05-24 12:46:42 +02:00
Fabio Caccamo ef35236c58 Updated version 2017-05-24 12:02:27 +02:00
Fabio Caccamo eb676d9841 Added 3 themes as fixtures (django, bootstrap, foundation) 2017-05-24 12:01:25 +02:00
Fabio Caccamo 2301eedc8b Added possibility to hide recent actions 2017-05-24 11:57:08 +02:00
Fabio Caccamo 2bc5c9f9ce Removed double space in field declaration 2017-05-24 11:56:16 +02:00
Fabio Caccamo 44bae8b515 Changed modeltranslation active tab font-weight to bold 2017-05-24 11:55:23 +02:00
Fabio Caccamo ed34055290 Renamed field css_header_title_color to title_color according to logo_color 2017-05-24 11:53:33 +02:00
Fabio Caccamo 8a9842c219 Added possibility to customize the default logo color 2017-05-24 11:44:46 +02:00
Fabio Caccamo b449a1140c Fixed related-modal preloader background image url urlencode 2017-05-24 11:31:36 +02:00
Fabio Caccamo 3b2e567387 Increased tests coverage 2017-05-23 12:31:14 +02:00
Fabio Caccamo f3c7695409 Merge branch 'master' of https://github.com/fabiocaccamo/django-admin-interface 2017-05-23 10:43:01 +02:00
Fabio Caccamo 15aefd48d3 Merge pull request #18 from founders4schools/bugfix/repr
Fix the representation of Theme model under Python 3
2017-05-23 10:24:10 +02:00
Bruno Alla f6c8e84b7b Fix representation of Theme models on Python 3 2017-05-22 18:21:51 +01:00
Bruno Alla 1865da3477 Write a test covering the representation of the model 2017-05-22 18:14:38 +01:00
Fabio Caccamo b25cf463eb Fixed theme switching bug 2017-05-22 18:56:22 +02:00
Fabio Caccamo 4ef14c248a Fixed filter horizontal css height 2017-05-22 18:56:00 +02:00
Fabio Caccamo 165a8e4572 Updated version 2017-05-19 12:59:19 +02:00
Fabio Caccamo a6df45a571 Improved responsive m2m selector, ckeditor and sorl-thumbnail widgets 2017-05-19 12:59:02 +02:00
Fabio Caccamo b24c6010d2 Updated version 2017-05-18 10:56:19 +02:00
Fabio Caccamo bb2dd77646 Fixed django-storages compatibility - #16 2017-05-18 10:56:06 +02:00
Fabio Caccamo 60f451d073 Updated version 2017-05-16 18:39:12 +02:00
Fabio Caccamo 4c182157eb Moved css to external files and added .admin-interface body class 2017-05-16 18:38:59 +02:00
Fabio Caccamo dd9de6ba42 Rendered admin logo width and height attributes only if available 2017-05-16 18:38:06 +02:00
Fabio Caccamo a09e13fb00 Fixed default theme logo reset if the logo exists 2017-05-16 18:36:39 +02:00
Fabio Caccamo c3cf8e4d10 Updated version 2017-05-11 16:55:32 +02:00
Fabio Caccamo a6ae4230f6 Improved scripts and styles order 2017-05-11 16:54:43 +02:00
Fabio Caccamo 07dc59747d Changed static files template tag 2017-05-11 16:54:14 +02:00
Fabio Caccamo 690d28dd8c Improved admin title generation 2017-05-11 16:53:19 +02:00
Fabio Caccamo 8db8528542 Fixed magnific-popup initialization error in admin pages without jquery 2017-05-11 16:52:34 +02:00
Fabio Caccamo cfac48db5d Enforced default theme logo creation 2017-05-11 12:07:35 +02:00
Fabio Caccamo f20d64c99f Updated README [ci skip] 2017-05-04 18:59:38 +02:00
Fabio Caccamo 4cf01aa1df Updated README [ci skip] 2017-05-04 18:52:03 +02:00
Fabio Caccamo 875269e314 Updated version 2017-05-04 17:58:40 +02:00
Fabio Caccamo 775f1cf42b Added related modal support (related objects popup displayed in modal window) 2017-05-04 17:58:19 +02:00
Fabio Caccamo cc0474940f Moved responsive css to extrahead block 2017-05-04 17:55:28 +02:00
Fabio Caccamo 97896e3690 Added more comments to custom css 2017-05-04 17:51:46 +02:00
Fabio Caccamo 6a723e5515 Fixed inlines help text and error text margin-left 2017-05-04 17:43:09 +02:00
Fabio Caccamo fdf3b418f9 Removed theme active check in templates 2017-05-04 17:42:11 +02:00
Fabio Caccamo 49538ed582 Updated README.md [ci skip] 2017-04-14 13:16:25 +02:00
Fabio Caccamo c784a083f3 Updated version 2017-04-14 13:13:30 +02:00
Fabio Caccamo d1c912e875 Added django 1.11 support 2017-04-14 13:13:12 +02:00
Fabio Caccamo e9e950dda3 Fix error message margin left 2017-04-04 18:09:17 +02:00
Fabio Caccamo 3c4ea399e2 Updated version 2017-03-29 18:57:11 +02:00
Fabio Caccamo a28fe1c5e0 Improved Theme.get_active_theme method 2017-03-29 18:57:01 +02:00
Fabio Caccamo c07a846374 Updated README requirements and added badges 2017-03-29 16:32:52 +02:00
Fabio Caccamo f0126fb407 Updated version 2017-03-29 16:24:22 +02:00
Fabio Caccamo 869ae626da Added tox and travis 2017-03-29 16:22:34 +02:00
Fabio Caccamo a6bdb2b36d Updated setup.py 2017-03-29 16:22:09 +02:00
Fabio Caccamo aa18e19625 Added tests 2017-03-29 16:21:41 +02:00
Fabio Caccamo a35f8d0fb7 Dropped django < 1.7 support 2017-03-29 16:21:02 +02:00
Fabio Caccamo d29515c4ae Code refactoring 2017-03-29 16:20:07 +02:00
Fabio Caccamo 00f60c222d Fixed README syntax 2017-03-21 17:12:11 +01:00
Fabio Caccamo ff2d05e44c Fixed changelist filter header style 2017-02-16 11:30:44 +01:00
Fabio Caccamo 6e5cbf3a2c Fixed tools button focus color 2017-02-16 11:29:56 +01:00
Fabio Caccamo 55b365b2e4 Updated version 2017-02-09 16:25:25 +01:00
Fabio Caccamo 3203b437df Added horizontal scroll to long inlines to prevent full page scroll 2017-02-09 16:08:50 +01:00
Fabio Caccamo 202b5fa4aa Changed inlines delete buttons alignement 2017-02-09 16:07:52 +01:00
Fabio Caccamo 9fdc3a0268 Fixed help text alignement in wide inlines 2017-02-09 16:04:40 +01:00
Fabio Caccamo ded2fee89c Fixed issue #13 - Datetime widget broken in long inlines 2017-02-09 15:08:58 +01:00
Fabio Caccamo beec7242c6 Removed old code and added comment to previous fix 2017-02-09 15:08:37 +01:00
Fabio Caccamo 7a6a29b110 Fixed issue #12 - Inlines bad delete buttons alignement 2017-02-09 14:44:26 +01:00
Fabio Caccamo 1f3bb6514c Fixed issue #10 - Related widget broken in long tabular inline 2017-02-09 13:03:00 +01:00
Fabio Caccamo b416b46c5a Updated dynamic css indentation 2017-02-09 12:51:49 +01:00
Fabio Caccamo 59f1831cbd Fixed issue #11 - Inline border bottom should not be rounded 2017-02-09 12:50:36 +01:00
Fabio Caccamo 20050e2964 Removed duplicated code 2017-02-09 12:40:49 +01:00
Fabio Caccamo fd292ed1bf Fixed help text alignement in wide inlines 2017-02-07 16:06:05 +01:00
Fabio Caccamo fac0f690df Fixed breadcrumbs link focus color 2017-02-07 15:59:17 +01:00
Fabio Caccamo d18aadd93d Updated dependencies 2017-02-07 15:58:45 +01:00
Fabio Caccamo 9350575898 Updated setup.py 2016-11-08 12:18:35 +01:00
Fabio Caccamo 4789ee1dab Updated README.md 2016-11-08 12:18:19 +01:00
Fabio Caccamo a924c6cf5e Updated version 2016-11-08 12:17:53 +01:00
Fabio Caccamo 42b6e01f1f Added responsive support 2016-11-08 12:17:24 +01:00
Fabio Caccamo d7fa681c56 Fixed login padding 2016-11-08 12:15:42 +01:00
Fabio Caccamo 18e1425156 Updated version 2016-09-10 18:49:31 +02:00
Fabio Caccamo 1f39ceb0ad Fixed missing admin title #7 2016-09-10 18:49:20 +02:00
Fabio Caccamo 48cb73a604 Updated version 2016-09-04 18:44:07 +02:00
Fabio Caccamo c5bbbbc855 Updated README 2016-09-04 18:43:55 +02:00
Fabio Caccamo 793a019460 Fixed buttons color on focus and removed outline. 2016-09-04 18:43:29 +02:00
181 changed files with 14872 additions and 841 deletions

3
.gitattributes vendored
View File

@ -1 +1,2 @@
admin_interface/static/ckeditor/* linguist-vendored
admin_interface/static/admin_interface/magnific-popup/* linguist-vendored=true
admin_interface/static/ckeditor/* linguist-vendored=true

6
.github/FUNDING.yml vendored 100644
View File

@ -0,0 +1,6 @@
github: [fabiocaccamo]
polar: fabiocaccamo
ko_fi: fabiocaccamo
liberapay: fabiocaccamo
tidelift: pypi/django-admin-interface
custom: ["https://www.buymeacoffee.com/fabiocaccamo", "https://www.paypal.me/fabiocaccamo"]

View File

@ -0,0 +1,23 @@
---
name: Bug report
about: Report a bug for this project
title: ''
labels: bug
assignees: fabiocaccamo
---
**Python version**
?
**Django version**
?
**Package version**
?
**Current behavior (bug description)**
?
**Expected behavior**
?

View File

@ -0,0 +1,8 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: fabiocaccamo
---

14
.github/dependabot.yml vendored 100644
View File

@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
open-pull-requests-limit: 100
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
open-pull-requests-limit: 100

View File

@ -0,0 +1,17 @@
---
name: Pull request
about: Submit a pull request for this project
assignees: fabiocaccamo
---
**Describe your changes**
?
**Related issue**
?
**Checklist before requesting a review**
- [ ] I have performed a self-review of my code.
- [ ] I have added tests for the proposed changes.
- [ ] I have run the tests and there are not errors.

View File

@ -0,0 +1,71 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
schedule:
- cron: '26 21 * * 0'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'python' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

View File

@ -0,0 +1,45 @@
name: Create release
on:
push:
tags:
- '*.*.*'
jobs:
build:
runs-on: ubuntu-latest
# environment: release
permissions:
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract release notes
id: extract-release-notes
uses: ffurrer2/extract-release-notes@v2
- name: Create release
uses: ncipollo/release-action@v1
with:
body: ${{ steps.extract-release-notes.outputs.release_notes }}
token: ${{ secrets.WORKFLOWS_CREATE_RELEASE_TOKEN }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: 'pip'
- name: Build Package
run: |
pip install pip --upgrade
pip install build
python -m build
- name: Publish on PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
# password: ${{ secrets.WORKFLOWS_PUBLISH_TO_PYPI_TOKEN }}

View File

@ -0,0 +1,25 @@
name: Pre-commit auto-update
on:
# every month
schedule:
- cron: "0 0 1 * *"
# on demand
workflow_dispatch:
jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'
- uses: browniebroke/pre-commit-autoupdate-action@main
- uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update/pre-commit-hooks
title: Update pre-commit hooks
commit-message: "Update pre-commit hooks."
body: Update versions of pre-commit hooks to latest version.

View File

@ -0,0 +1,125 @@
name: Test package
on:
push:
pull_request:
workflow_dispatch:
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create matrix
uses: fabiocaccamo/create-matrix-action@v4
id: create_matrix
with:
matrix: |
python-version {3.8}, django-version {3.0, 3.1, 3.2, 4.0, 4.1, 4.2}, database {sqlite, postgres}
python-version {3.9}, django-version {3.0, 3.1, 3.2, 4.0, 4.1, 4.2}, database {sqlite, postgres}
python-version {3.10}, django-version {3.2, 4.0, 4.1, 4.2, 5.0}, database {sqlite, postgres}
python-version {3.11}, django-version {4.1, 4.2, 5.0}, database {sqlite, postgres}
python-version {3.12}, django-version {4.2, 5.0}, database {sqlite, postgres}
outputs:
matrix: ${{ steps.create_matrix.outputs.matrix }}
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: 'pip'
- name: Install tools needed
run: |
sudo apt install gettext
python -m pip install --upgrade pip
pip install tox
- name: Check migrations
run: |
tox -e migrations
- name: Check translations
run: |
tox -e translations
test:
needs: [prepare]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include: ${{fromJson(needs.prepare.outputs.matrix)}}
services:
postgres:
image: postgres:latest
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
ports:
- 5432:5432
# needed because the postgres container does not provide a healthcheck
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- name: Install psycopg2 prerequisites
run: sudo apt install libpq-dev
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Upgrade pip version
run: |
pip install pip --upgrade
- name: Install django
run: |
pip install "Django == ${{ matrix.django-version }}.*"
- name: Install requirements
run: |
pip install -r requirements.txt
pip install -r requirements-test.txt
- name: Run pre-commit
run: |
pre-commit run --all-files --show-diff-on-failure --verbose
- name: Run tests
env:
DATABASE_ENGINE: ${{ matrix.database }}
run: |
coverage run --append --source=admin_interface runtests.py
coverage report --show-missing
coverage xml -o ./coverage.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: false
files: ./coverage.xml
flags: unittests
verbose: true

9
.gitignore vendored
View File

@ -5,6 +5,10 @@ __pycache__/
# C extensions
*.so
## Local setup
.vscode/
.venv/
# Distribution / packaging
.Python
env/
@ -44,7 +48,6 @@ coverage.xml
*,cover
# Translations
*.mo
*.pot
# Django stuff:
@ -55,3 +58,7 @@ docs/_build/
# PyBuilder
target/
screenshots
TODO.txt
.idea/

View File

@ -0,0 +1,32 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/asottile/pyupgrade
rev: v3.15.2
hooks:
- id: pyupgrade
args: ["--py38-plus"]
- repo: https://github.com/adamchainz/django-upgrade
rev: 1.16.0
hooks:
- id: django-upgrade
args: ["--target-version", "3.0"]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.3.4
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: fix-encoding-pragma
args: [--remove]
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

446
CHANGELOG.md 100644
View File

@ -0,0 +1,446 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.28.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.6) - 2024-03-07
- [python] Fix date hierarchy params. #374 (by [@jeroenpeters1986](https://github.com/jeroenpeters1986) in #375)
- [js] Open any link with `_popup=1` query-string parameter in a modal window.
- [ci] Bump requirements.
- [ci] Bump `pre-commit` hooks.
## [0.28.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.5) - 2024-01-30
- [css] Fix related widget height and buttons alignment when there is a multiline label.
- [css] Fix inputs height when there is a multiline label.
## [0.28.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.4) - 2024-01-29
- [css] Fix header logo not displayed correctly.
## [0.28.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.3) - 2024-01-08
- [css] Fix help text horizontal alignment when using `show-fieldsets-as-tabs` / `show-inlines-as-tabs` theme options. #317
- [css] Fix file-upload widget margin-left.
- [css] Fix related widget links add button position on `many-to-many` selector.
- [css] Fix related widget links margin from `select2` (`autocomplete_fields`).
- [css] Reduce paginator vertical padding.
## [0.28.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.2) - 2024-01-08
- [css] Fix related widget icon alignment. #348 #350
## [0.28.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.1) - 2023-12-28
- [python] Fix `TemplateDoesNotExist` when using `django-nested-admin` by returning custom template for other third-party packages. #341 (by [@markdrrr](https://github.com/markdrrr) in #342)
- [html] Display language chooser language name uppercase.
- [css] Move save buttons to right in change form.
- [css] Fix related widget links icons size and vertical alignment.
- [css] Fix admin `raw_id_fields` appearance.
- [css] Fix `autocomplete_fields` appearance.
- [ci] Bump requirements.
### Contributors
- [@markdrrr](https://github.com/markdrrr)
## [0.28.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.28.0) - 2023-12-21
- [html] Remove old `flat-theme` body class.
- [html] Remove `type="text/css"` and `type="text/javascript"` attributes.
- [css] Fix filter input fields collapsing on different layouts. #338
- [css] Fix paginator buttons height.
- [css] Fix `foldable-apps` +/- button vertical alignment.
- [css] Split `admin-interface-fix.css` CSS file into multiple files for easier debugging.
- [css] Rename `form-controls.css` to `sticky-form-controls.css`.
- [css] Move third-party compatibility CSS files to a `third-party` folder.
- [css] Move `related-modal.css` to related-modal plugin folder.
- [third-party] Update compatibility with `django-streamfield`.
- [ci] Replace `Black` and `isort` with `Ruff-format`.
- [ci] Bump `pre-commit` hooks.
## [0.27.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.27.0) - 2023-12-05
- Add `Python 3.12` support.
- Add `Django 5.0` support.
- Fix broken language-chooser with `i18n_patterns(..., prefix_default_language=False)`. #327 (by [@julianwachholz](https://github.com/julianwachholz) in #328)
- Simplify language-chooser. #327 (by [@julianwachholz](https://github.com/julianwachholz) in #328)
- Speed-up test workflow.
- Bump requirements.
- Bump `pre-commit` hooks.
### Contributors
- [@julianwachholz](https://github.com/julianwachholz)
## [0.26.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.26.1) - 2023-09-05
- Fix logout and theme buttons style. #246
- Add Russian translation. (by [@rustzzdevel](https://github.com/rustzzdevel) in #295)
- Update Italian translations.
- Update Spanish translations. (by [@smunoz-ml](https://github.com/smunoz-ml) in #307)
- Prevent multiple `.collapse-toggle` button.
- Bump requirements.
- Bump `pre-commit` hooks.
## [0.26.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.26.0) - 2023-05-11
- Add options for collapsible inlines. #263 (by [@fabiocaccamo](https://github.com/fabiocaccamo) in #282)
- Bump requirements.
- Bump `pre-commit` hooks.
## [0.25.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.25.0) - 2023-04-18
- Add `Django 4.2` support.
- Drop `Django 2.2` support.
- Fix `date_hierarchy` with multiple fields (`ForeignKey`). #244
- Fix tabs not working with non-ASCII alphanumeric characters. #237
- Fix multidb tests.
- Add `css_generic_link_active_color` field to use on active tab (tabbed changeform). #232
- Replace `flake8` with `Ruff`.
- Switch from `setup.py` to `pyproject.toml`.
- Add `pyupgrade` to `pre-commit` config.
- Add `django-upgrade` to `pre-commit` hooks.
- Upgrade syntax for `Python >= 3.8`.
- Run `pre-commit` also with `tox`.
- Reformat migrations.
- Bump requirements.
- Bump `pre-commit` hooks.
- Pin test requirements.
- Add pull request template.
- Add `CODE_OF_CONDUCT.md`. #238
- Rename default branch from `master` to `main`.
## [0.24.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.24.2) - 2022-12-19
- Fix modal and popup opening at the same time. #228
- Make `Theme.get_active_theme` class method a manager method. (by [@MounirMesselmeni](https://github.com/MounirMesselmeni) in #230)
## [0.24.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.24.1) - 2022-12-14
- Fix modal opener buttons not working when added to the DOM asynchronously. #228
- [css] Improve changelist filter margins.
## [0.24.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.24.0) - 2022-12-11
- Drop `Python < 3.8` and `Django < 2.2` versions support. (by [@merwok](https://github.com/merwok) in #220)
- Replace `str.format` with `f-strings`.
- Remove `post_migrate` signal handler and multi db test.
- Add german translation. (by [@derzinn](https://github.com/derzinn) in #222)
- Include date hierarchy in quick removal links (by [@merwok](https://github.com/merwok) in #218)
- Fix broken tabbed inline name. (by [@VaZark](https://github.com/VaZark) in #221)
- Minor cleanups. (by [@merwok](https://github.com/merwok) in #225)
- Bump actions and requirements.
- [css] Fix inlines vertical alignement. (by [@VaZark](https://github.com/VaZark) in #201)
- [css] Fix tabbed changeform tabs text color on focus. (by [@VaZark](https://github.com/VaZark) in #223)
- [CI] Add Farsi language to `tests.settings.LANGUAGES`. (by [@merwok](https://github.com/merwok))
- [CI] Update `pre-commit` config.
- [CI] Automate package build and publish on PyPI.
## [0.23.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.23.0) - 2022-11-30
- Add `Python 3.11` support.
- Add tabbed changeform support. (by [@VaZark](https://github.com/VaZark) in #211)
- Fix #208 / Do not assume active DB when not specified. (by [@VaZark](https://github.com/VaZark) in #210)
- Update translations.
- Bump actions and requirements.
- [css] Adjust list filter dropdown vertical margins.
- [css] Improve nav filter style. #214
- [css] Improve language chooser style.
- [css] Reduce secondary scrollbars size.
- [CI] Update `dependabot.yml`
- [CI] Add `pre-commit-autoupdate.yml` workflow.
- [CI] Update `pre-commit` hooks.
## [0.22.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.22.2) - 2022-11-18
- [CI] Add `django 4.1` to tests.
- [CI] Add `pre-commit` with `black`, `isort` and `flake8`.
- Respect `using` in signals. #199 (by [@VaZark](https://github.com/VaZark) in #200)
- Remove translations line numbers to avoid `lint` step failures.
## [0.22.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.22.1) - 2022-10-13
- Fix `KeyError` raised by `django-rangefilter`.
- [css] Add `django-rangefilter` style optimizations.
- [css] Fix list-filter dropdown vertical margins.
- [css] Fix calendar prev/next arrows style.
## [0.22.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.22.0) - 2022-10-12
- Add CI checks for migrations and translations. #184 (by [@merwok](https://github.com/merwok) in #186)
- Add option for list filter quick remove. #181 (by [@merwok](https://github.com/merwok) in #183)
- [css] Fix left/right scrolling broken with django-import-export. #165
- [html] Fix duplicated welcome message. #185
## [0.21.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.21.0) - 2022-10-06
- Add language chooser control option (default select, minimal select). #136
- Add option to make active list filters more visible. #174 (by [@merwok](https://github.com/merwok) in #178)
- Add support for collapsible fieldsets that start expanded. #173 (by [@merwok](https://github.com/merwok) in #177)
- [js] Fix modal window not closing on save with `django >= 4.0`. #169
- [css] Move `language-chooser` style to its own CSS file.
- [css] Fix sticky list filter scrolling. #175
- [css] Fix paginator missing `border-top` on mobile.
## [0.20.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.20.0) - 2022-08-25
- Add `django-streamfield` compatibility.
## [0.19.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.2) - 2022-08-04
- Fix `hashlib` compatibility with `FIPS` enabled systems. #167 (by [@jonlev1n](https://github.com/jonlev1n) in #168)
## [0.19.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.1) - 2022-05-14
- [css] Fixed dashboard alignment when recent-actions are not visible.
## [0.19.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.19.0) - 2022-03-08
- Converted dynamic inline CSS to external static CSS using CSS variables. #157 #93 (thanks to [@Mustafa-Abu-Ghazy](https://github.com/Mustafa-Abu-Ghazy))
## [0.18.7](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.7) - 2022-02-24
- Removed public disclosures of the lib's version. #154 (thanks to [@mintyPT](https://github.com/mintyPT))
- Reformatted code with **Black**.
## [0.18.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.6) - 2022-02-04
- Added polish (`pl`) localization by [paduszyk](https://github.com/paduszyk). #152
- Fixed login logo `max-width` and title `color`.
## [0.18.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.5) - 2022-01-21
- Added portuguese brazil (`pt_BR`) localization by [leandromsd](https://github.com/leandromsd). #149
- Fixed body scroll reset to top when opening related modal. #150
## [0.18.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.4) - 2022-01-05
- Added official django 4.0 support.
- Added link to admin home page on logo and title. #147
- Fixed collapsed inlines rounded bottom borders.
- Fixed missing comma in tests settings `MIDDLEWARE_CLASSES`. #145
## [0.18.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.3) - 2021-12-07
- Added official python 3.10 support.
- Replaced travis with GitHub action workflow. #142
- Fixed `check_installed_apps` checks.
- Fixed django default appconfig deprecation warning. #141
## [0.18.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.2) - 2021-10-25
- Fixed migration error.
## [0.18.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.1) - 2021-10-25
- Removed wrong migration.
## [0.18.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.18.0) - 2021-10-24
- Added foldable apps support. #117
- Removed `css` field from `Theme` model.
## [0.17.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.17.3) - 2021-10-12
- Fixed `FileExtensionValidator` `TypeError` on django < 1.11.
## [0.17.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.17.2) - 2021-10-08
- Fixed `FileExtensionValidator` `TypeError` on django < 1.11.
## [0.17.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.17.1) - 2021-09-24
- Fixed `TemplateDoesNotExist` error on `django==4.0.a1` removing checking condition for `colorfield` package. #134
- Fixed favicon fetching incompatible with `django-storages` `S3`. #128
## [0.17.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.17.0) - 2021-09-16
- Added `logo_max_width` and `logo_max_height`. #127
## [0.16.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.4) - 2021-09-04
- Fixed `0020_module_selected_colors` migration for multiple dbs. #132
- Fixed sticky pagination `width` and `border-bottom`.
- Fixed inlines vertical overlow.
- Improved header elements vertical alignment.
## [0.16.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.3) - 2021-04-26
- Added `compat` module.
- Added missing `0021_file_extension_validator` migration. #126
- Formatted migrations.
## [0.16.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.2) - 2021-04-23
- Added `python 3.9` and `django 3.2` to CI.
- Added `FileExtensionValidator` to `logo` and `favicon` fields. #112
- Fixed `models.W042` warning on `django 3.2`.
- Fixed header `min-height`.
- Fixed selects `min-width`.
- Fixed changelist search, actions and submit button horizontal margins.
- Fixed related widget wrapper margin/padding with normal select and in inlines.
- Fixed tabular inlines horizontal scroll.
## [0.16.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.1) - 2021-04-07
- Fixed style of "Delete" and "Save" buttons in the delete confirmation page. #123
- Overridden dark-mode css variables introduced in `django 3.2`. #124
## [0.16.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.0) - 2021-03-30
- Added customizable colors for selected apps and models in dashboard. #122
- Added `responsive_rtl.css` stylesheet. #98
- Updated `vazir-font` version to `27.2.2`. #98
## [0.15.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.6) - 2021-03-26
- Fixed `show_change_link` related modal support. #120
- Fixed inline changelink style.
- Made globally available `presentRelatedObjectModal` and `presentRelatedObjectModalOnClickOn` js functions.
## [0.15.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.5) - 2021-03-02
- Fixed sticky submit and pagination `z-index` issue with related modal.
## [0.15.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.4) - 2021-03-01
- Fixed sticky submit and pagination `z-index` issue with sticky `list_filter` and `django-json-widget`.
## [0.15.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.3) - 2021-02-08
- Fixed sticky submit and pagination width when `admin.site.enable_nav_sidebar = False`. #113
## [0.15.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.2) - 2021-02-03
- Fixed body classes template rendering.
- Improved sticky submit and pagination backward compatibility.
## [0.15.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.1) - 2021-02-03
- Fixed and improved sticky form controls and pagination style.
## [0.15.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.15.0) - 2021-02-03
- Added sticky form controls and pagination options. #110
- Added support to 4-digit language code in language chooser. #111
- Added theme css variables for third-party libraries.
- Fixed app module section link hover color.
## [0.14.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.14.2) - 2021-01-04
- Fixed tabular inline scroll bar. #101
- Fixed module header selected link color. #102
- Fixed main content width when `admin.site.enable_nav_sidebar = False`. #105
## [0.14.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.14.1) - 2020-11-12
- Fixed sticky list-filter floating. #100
## [0.14.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.14.0) - 2020-10-15
- Added list filter sticky option (only for `django >= 3.1.2`).
- Enabled list filter dropdown by default.
- Fixed changelist searchbar style.
## [0.13.7](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.7) - 2020-10-14
- Improved responsive widgets style.
- Prevented body horizontal scroll.
- Fixed tabular inline horizontal scroll.
- Fixed changelist filter min-width.
- Fixed changelist and toolbar theme rounded corners.
- Fixed calendar and timelist buttons theme color.
- Fixed list filter select size.
- Fixed content max-width with `django >= 3.1`.
## [0.13.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.6) - 2020-10-14
- Added persian language. #98
- Fixed logo max-width on small screens.
- Fixed content max-width when nav-sidebar is collapsed.
- Fixed changelist max-width on medium screens.
## [0.13.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.5) - 2020-09-15
- Fixed loaddata error with initial_data.json fixture. #97
- Fixed tests warning (admin.W411).
- Fixed changelist thead links color.
- Fixed changelist filter links hover color.
## [0.13.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.4) - 2020-09-04
- Added conditional imports to avoid Django deprecation warnings. #92
- Changed admin header content vertical align to top.
## [0.13.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.3) - 2020-09-02
- Added `django-json-widget` theming support.
## [0.13.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.2) - 2020-08-21
- Fixed related modal not closing on edit save and create with django 3.1 - #96
## [0.13.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.1) - 2020-08-18
- Improved header and nav-sidebar style.
- Added `max-width` to logo.
- Added `requirements-dev.txt`
## [0.13.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.0) - 2020-08-05
- Improved nav-sidebar style (`django>=3.1` support).
- Improved header style.
## [0.12.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.3) - 2020-07-20
- Fixed unreadable text in autocomplete multi-selects. #83
## [0.12.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.2) - 2020-04-07
- Fixed popup javascript error when related modal is inactive. #76
- Fixed js self invoking anonymous function expression.
## [0.12.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.1) - 2020-02-21
- Updated `.travis` config.
- Fixed custom django admin header. #75
- Bumped `django-colorfield` version to `0.2.0`.
- Added `tr` language.
- Removed hard-coded favicon type.
- Improved code-quality.
## [0.12.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.0) - 2019-12-02
- Added `python 3.8` and `django 3.0` compatibility.
## [0.11.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.11.2) - 2019-09-27
- Fixed `select2` background color.
## [0.11.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.11.1) - 2019-09-04
- Added language chooser display option.
## [0.11.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.11.0) - 2019-09-03
- Added language chooser.
## [0.10.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.5) - 2019-05-09
- Fixed broken migration on postgres/windows. #52
## [0.10.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.4) - 2019-03-29
- Added `django 2.2` to `tox` and `travis`.
- Fixed admin duplicated count query.
- Added admin theme caching to remove duplicated queries. #19
- Added `django-dynamic-raw-id` support. #61
- Updated `it` localization.
## [0.10.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.3) - 2019-03-28
- Fixed idempotent deploy support. #40
## [0.10.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.2) - 2019-03-22
- Fixed `raw-id-field` whith `django-admin-interface`. #58
## [0.10.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.1) - 2019-03-20
- Updated `fr` localization.
## [0.10.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.10.0) - 2019-02-21
- Updated messages.
- Added related modal close button. #45
- Updated fields verbose names.
- Added environment options. #56
## [0.9.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.9.3) - 2019-02-06
- Enabled travis pip cache.
- Splitted tests to multiple files.
- Added env badge to favicon.
## [0.9.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.9.2) - 2019-01-11
- Fixed cancel button does not work. #53
- Fixed IntegrityError on postgres
## [0.9.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.9.1) - 2019-01-11
- Fixed missing migration. #51
## [0.9.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.9.0) - 2018-11-13
- Added French localization.
- Added Italian localization.
- Added Spanish localization.
- Added internationalization support.
## [0.8.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.8.2) - 2018-10-24
## [0.8.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.8.1) - 2018-10-11
## [0.8.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.8.0) - 2018-08-31
## [0.7.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.7.0) - 2018-02-06
## [0.6.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.6.3) - 2018-02-05
## [0.6.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.6.2) - 2018-02-01
## [0.6.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.6.1) - 2018-01-31
## [0.6.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.6.0) - 2017-11-23
## [0.5.9](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.9) - 2017-10-04
## [0.5.8](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.8) - 2017-09-29
## [0.5.7](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.7) - 2017-09-29
## [0.5.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.6) - 2017-09-29
## [0.5.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.5) - 2017-09-27
## [0.5.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.4) - 2017-09-27
## [0.5.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.3) - 2017-08-24
## [0.5.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.2) - 2017-07-13
## [0.5.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.1) - 2017-06-13
## [0.5.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.5.0) - 2017-06-09
## [0.4.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.6) - 2017-05-24
## [0.4.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.5) - 2017-05-19
## [0.4.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.4) - 2017-05-18
## [0.4.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.3) - 2017-05-16
## [0.4.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.2) - 2017-05-11
## [0.4.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.1) - 2017-05-04
## [0.4.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.4.0) - 2017-04-14
## [0.3.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.3.2) - 2017-03-29
## [0.3.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.3.1) - 2017-03-29
## [0.3.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.3.0) - 2017-02-09
## [0.2.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.2.1) - 2016-11-08
## [0.2.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.2.0) - 2016-09-10
## [0.1.9](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.9) - 2016-09-04
## [0.1.8](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.8) - 2016-08-05
## [0.1.7](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.7) - 2016-06-29
## [0.1.6](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.6) - 2016-04-13
## [0.1.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.5) - 2016-02-24
## [0.1.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.4) - 2016-02-15
## [0.1.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.3) - 2015-12-03
## [0.1.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.2) - 2015-11-25
## [0.1.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.1.1) - 2015-11-13
## [0.0.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.0.1) - 2015-11-13

128
CODE_OF_CONDUCT.md 100644
View File

@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
fabio.caccamo@gmail.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2016 Fabio Caccamo - fabio.caccamo@gmail.com
Copyright (c) 2016 - present, Fabio Caccamo - fabio.caccamo@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

331
README.md
View File

@ -1,46 +1,329 @@
#django-admin-interface
django-admin-interface is a modern **flat admin interface customizable by the admin itself**.
[![](https://img.shields.io/pypi/pyversions/django-admin-interface.svg?color=3776AB&logo=python&logoColor=white)](https://www.python.org/)
[![](https://img.shields.io/pypi/djversions/django-admin-interface?color=0C4B33&logo=django&logoColor=white&label=django)](https://www.djangoproject.com/)
You can use the builtin **django-theme** or create your own and **customize** **title, logo and colors**.
[![](https://img.shields.io/pypi/v/django-admin-interface.svg?color=blue&logo=pypi&logoColor=white)](https://pypi.org/project/django-admin-interface/)
[![](https://static.pepy.tech/badge/django-admin-interface/month)](https://pepy.tech/project/django-admin-interface)
[![](https://img.shields.io/github/stars/fabiocaccamo/django-admin-interface?logo=github&style=flat)](https://github.com/fabiocaccamo/django-admin-interface/stargazers)
[![](https://img.shields.io/pypi/l/django-admin-interface.svg?color=blue)](https://github.com/fabiocaccamo/django-admin-interface/blob/main/LICENSE.txt)
##Requirements
- Python 2.6, Python 2.7, Python 3.4
- Django 1.6.5 through Django 1.10
[![](https://results.pre-commit.ci/badge/github/fabiocaccamo/django-admin-interface/main.svg)](https://results.pre-commit.ci/latest/github/fabiocaccamo/django-admin-interface/main)
[![](https://img.shields.io/github/actions/workflow/status/fabiocaccamo/django-admin-interface/test-package.yml?branch=main&label=build&logo=github)](https://github.com/fabiocaccamo/django-admin-interface)
[![](https://img.shields.io/codecov/c/gh/fabiocaccamo/django-admin-interface?logo=codecov)](https://codecov.io/gh/fabiocaccamo/django-admin-interface)
[![](https://img.shields.io/codacy/grade/21cb657283c04e70b56fb935277a1ad1?logo=codacy)](https://www.codacy.com/app/fabiocaccamo/django-admin-interface)
[![](https://img.shields.io/codeclimate/maintainability/fabiocaccamo/django-admin-interface?logo=code-climate)](https://codeclimate.com/github/fabiocaccamo/django-admin-interface/)
[![](https://img.shields.io/badge/code%20style-black-000000.svg?logo=python&logoColor=black)](https://github.com/psf/black)
[![](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
##Installation
# django-admin-interface
django-admin-interface is a modern **responsive flat admin interface customizable by the admin itself**.
![django-admin-interface-preview](https://user-images.githubusercontent.com/1035294/35631521-64b0cab8-06a4-11e8-8f57-c04fdfbb7e8b.gif)
## Features
- Beautiful default **django-theme**
- Themes management and customization *(you can **customize admin title, logo and colors**)*
- Responsive
- Related modal *(instead of the old popup window)*
- Environment name/marker
- Language chooser
- Foldable apps *(accordions in the navigation bar)*
- [Collapsible fieldsets](https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.fieldsets) can have their initial state expanded instead of collapsed
- `NEW` Collapsible inlines
- `NEW` Tabbed fieldsets and inlines
- `NEW` List filter removal links
- `NEW` List filter highlight selected options
- List filter dropdown
- List filter sticky
- Form controls sticky *(pagination and save/delete buttons)*
- Compatibility / style optimizations for:
- `django-ckeditor`
- `django-dynamic-raw-id`
- `django-json-widget`
- `django-modeltranslation`
- `django-rangefilter`
- `django-streamfield`
- `django-tabbed-admin`
- `sorl-thumbnail`
- Translated in many languages: `de`, `es`, `fa`, `fr`, `it`, `pl`, `pt_BR`, `ru`, `tr`
## Installation
- Run `pip install django-admin-interface`
- Add `admin_interface`, `flat` and `colorfield` to `settings.INSTALLED_APPS` **before** `django.contrib.admin`
- Add `admin_interface` and `colorfield` to `settings.INSTALLED_APPS` **before** `django.contrib.admin`
```python
INSTALLED_APPS = (
#...
'admin_interface',
'flat',
'colorfield',
"admin_interface",
"colorfield",
#...
'django.contrib.admin',
"django.contrib.admin",
#...
)
X_FRAME_OPTIONS = "SAMEORIGIN"
SILENCED_SYSTEM_CHECKS = ["security.W019"]
```
- Run ``python manage.py migrate`` *(add ``--fake-initial`` if you are upgrading from 0.1.0 version)*
- Run ``python manage.py collectstatic``
- Run `python manage.py migrate`
- Run `python manage.py collectstatic --clear`
- Restart your application server
##Screenshots
######Admin login
> [!WARNING]
> if you want use modals instead of popup windows, ensure to add `X_FRAME_OPTIONS = "SAMEORIGIN"` setting.
### Optional features
To make a fieldset start expanded with a `Hide` button to collapse, add the class `"expanded"` to its classes:
```python
class MyModelAdmin(admin.ModelAdmin):
# ...
fieldsets = [
("Section title", {
"classes": ("collapse", "expanded"),
"fields": (...),
}),
]
# ...
```
## Optional themes
This package ships with optional themes as fixtures, they can be installed using the [loaddata admin command](https://docs.djangoproject.com/en/1.11/ref/django-admin/#django-admin-loaddata). Optional themes are activated on installation.
##### [Django](https://www.djangoproject.com/) theme (default):
Run `python manage.py loaddata admin_interface_theme_django.json`
##### [Bootstrap](http://getbootstrap.com/) theme:
Run `python manage.py loaddata admin_interface_theme_bootstrap.json`
##### [Foundation](http://foundation.zurb.com/) theme:
Run `python manage.py loaddata admin_interface_theme_foundation.json`
##### [U.S. Web Design Standards](https://standards.usa.gov/) theme:
Run `python manage.py loaddata admin_interface_theme_uswds.json`
### Add more themes
You can add a theme you've created through the admin to this repository by [sending us a PR](http://makeapullrequest.com/). Here are the steps to follow to add:
1. Export your exact theme as fixture using the `dumpdata` admin command:
`python manage.py dumpdata admin_interface.Theme --indent 4 -o admin_interface_theme_{{name}}.json --pks=N`
2. Copy the generated json file into the fixtures folder *(making sure its name starts with* `admin_interface_theme_` *to avoid clashes with fixtures that might be provided by other third party apps)*.
3. Remove the `pk` from the fixture and make sure the `active` field is set to `true` *(in this way a theme is automatically activated when installed)*.
4. Edit the section above to document your theme.
### Add theme support to third-party libraries
You can add **theme support to existing third-party libraries** using the following **CSS variables**:
#### Header
- `--admin-interface-header-background-color`
- `--admin-interface-header-text-color`
- `--admin-interface-header-link-color`
- `--admin-interface-header-link_hover-color`
- `--admin-interface-title-color`
- `--admin-interface-env-color`
#### Logo
- `--admin-interface-logo-color`
- `--admin-interface-logo-default-background-image`
- `--admin-interface-logo-max-width`
- `--admin-interface-logo-max-height`
#### Modules / Links
- `--admin-interface-module-background-color`
- `--admin-interface-module-background-selected-color`
- `--admin-interface-module-border-radius`
- `--admin-interface-module-text-color`
- `--admin-interface-module-link-color`
- `--admin-interface-module-link-selected-color`
- `--admin-interface-module-link-hover-color`
- `--admin-interface-generic-link-color`
- `--admin-interface-generic-link-hover-color`
- `--admin-interface-generic-link-active-color`
#### Buttons
- `--admin-interface-save-button-background-color`
- `--admin-interface-save-button-background-hover-color`
- `--admin-interface-save-button-text-color`
- `--admin-interface-delete-button-background-color`
- `--admin-interface-delete-button-background-hover-color`
- `--admin-interface-delete-button-text-color`
#### Related Modal
- `--admin-interface-related-modal-background-color`
- `--admin-interface-related-modal-background-opacity`
- `--admin-interface-related-modal-border-radius`
- `--admin-interface-related-modal-close-button-display`
## Screenshots
###### Admin login
![django-admin-interface_login](https://cloud.githubusercontent.com/assets/1035294/11240233/55c8d4ba-8df1-11e5-9568-00fdc987ede8.gif)
---
######Admin dashboard
###### Admin dashboard
![django-admin-interface_dashboard](https://cloud.githubusercontent.com/assets/1035294/11240239/627c0362-8df1-11e5-81fa-216366a5d8da.gif)
---
######Admin themes management
###### Admin themes management
![django-admin-interface_themes_management](https://cloud.githubusercontent.com/assets/1035294/11240245/6cd1c342-8df1-11e5-928b-f22217474d3d.gif)
---
######Admin theme customization
###### Admin theme customization
![django-admin-interface_theme_customization](https://cloud.githubusercontent.com/assets/1035294/11240250/7350d942-8df1-11e5-9b28-f2f54c333cdc.gif)
####Thanks
- [django-flat-theme](https://github.com/elky/django-flat-theme/)
- [django-colorfield](https://github.com/jaredly/django-colorfield/)
## Localization
At the moment, this package has been translated into the following languages: `de`, `es`, `fa`, `fr`, `it`, `pl`, `pt_BR`, `tr`.
##License
Released under [MIT License](LICENSE).
### Translate into another language
- Run `python -m django makemessages --ignore ".tox" --ignore "venv" --add-location "file" --extension "html,py" --locale "it"` *(example for Italian localization)*
- Update translations in `admin_interface/locale/it/LC_MESSAGES/django.po`
- Run `python -m django compilemessages --ignore ".tox" --ignore "venv"`
### Update translations
If you do some changes to the project, remember to update translations, because if the translations files are not up-to-date, the `lint` step in the CI will fail:
- Run `tox -e translations`
## Caching
This package uses caching to improve theme load time and overall performance.
You can customise the app caching options using `settings.CACHES["admin_interface"]` setting, otherwise the `"default"` cache will be used:
```python
CACHES = {
# ...
"admin_interface": {
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
"TIMEOUT": 60 * 5,
},
# ...
}
```
> [!WARNING]
> There is a [known compatibility issue](https://github.com/fabiocaccamo/django-admin-interface/issues/356) when using this package with `django-redis`, more specifically, using the `JSONSerializer` the following error is raised: `TypeError: Object of type Theme is not JSON serializable`, to mitigate this problem, simply use a specific cache for this app that does not use any `json` serializer.
## FAQ
### Custom `base-site.html`
> I already have a custom `base_site.html`, how can I make it work?
You can use [django-apptemplates](https://github.com/bittner/django-apptemplates), then add `{% extends "admin_interface:admin/base_site.html" %}` to your `base_site.html`
### Custom `LocaleMiddleware` warning
> I'm using a `django.middleware.locale.LocaleMiddleware` subclass, but I see an unnecessary warning for missing `django.middleware.locale.LocaleMiddleware`, what can I do?
You can simply ignore the warning (this has been discussed [here](https://github.com/fabiocaccamo/django-admin-interface/issues/354))
```python
import warnings
warnings.filterwarnings("ignore", module="admin_interface.templatetags.admin_interface_tags")
```
### Language Chooser not showing
> I have enabled the **Language Chooser**, but it is not visible in the admin, what should I do?
You must configure multilanguage `settings` and `urls` correctly:
```python
LANGUAGES = (
("en", _("English")),
("it", _("Italiano")),
("fr", _("Français")),
# more than one language is expected here
)
LANGUAGE_CODE = "en"
USE_I18N = True
MIDDLEWARE = [
# ...
"django.middleware.locale.LocaleMiddleware",
# ...
]
```
```python
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.urls import include, path
# ...
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
]
urlpatterns += i18n_patterns(path("admin/", admin.site.urls))
```
### Open any url in modal window
> I have an application with some cross-links in the admin and I would like to open them in modal windows instead of same/new window, how can I do?
You just need to add `_popup=1` query-string parameter to the urls:
```python
url = reverse(f"admin:myapp_mymodel_change", args=[mymodel_instance.pk])
url = f"{url}?_popup=1"
```
## Testing
```bash
# clone repository
git clone https://github.com/fabiocaccamo/django-admin-interface.git && cd django-admin-interface
# create virtualenv and activate it
python -m venv venv && . venv/bin/activate
# upgrade pip
python -m pip install --upgrade pip
# install requirements
pip install -r requirements.txt -r requirements-test.txt
# install pre-commit to run formatters and linters
pre-commit install --install-hooks
# run tests
tox
# or
python runtests.py
# or
python -m django test --settings "tests.settings"
```
## Contributing
Contributions are always welcome, please follow these steps for submitting good quality PRs:
- :exclamation: **Open an issue**, please don't submit any PR that doesn't refer to an existing issue.
- :computer: **Work on changes**, changes should *preferably* be covered by tests to avoid regressions in the future.
- :globe_with_meridians: **Update the translations** files.
- :test_tube: **Run tests** ensuring that there are no errors.
- :inbox_tray: **Submit a pull-request** and mark it as **"Ready for review"** only if it passes the `CI`.
## License
Released under [MIT License](LICENSE.txt).
---
## Supporting
- :star: Star this project on [GitHub](https://github.com/fabiocaccamo/django-admin-interface)
- :octocat: Follow me on [GitHub](https://github.com/fabiocaccamo)
- :blue_heart: Follow me on [Twitter](https://twitter.com/fabiocaccamo)
- :moneybag: Sponsor me on [Github](https://github.com/sponsors/fabiocaccamo)
## See also
- [`django-colorfield`](https://github.com/fabiocaccamo/django-colorfield) - simple color field for models with a nice color-picker in the admin. 🎨
- [`django-extra-settings`](https://github.com/fabiocaccamo/django-extra-settings) - config and manage typed extra settings using just the django admin. ⚙️
- [`django-maintenance-mode`](https://github.com/fabiocaccamo/django-maintenance-mode) - shows a 503 error page when maintenance-mode is on. 🚧 🛠️
- [`django-redirects`](https://github.com/fabiocaccamo/django-redirects) - redirects with full control. ↪️
- [`django-treenode`](https://github.com/fabiocaccamo/django-treenode) - probably the best abstract model / admin for your tree based stuff. 🌳
- [`python-benedict`](https://github.com/fabiocaccamo/python-benedict) - dict subclass with keylist/keypath support, I/O shortcuts (base64, csv, json, pickle, plist, query-string, toml, xml, yaml) and many utilities. 📘
- [`python-codicefiscale`](https://github.com/fabiocaccamo/python-codicefiscale) - encode/decode Italian fiscal codes - codifica/decodifica del Codice Fiscale. 🇮🇹 💳
- [`python-fontbro`](https://github.com/fabiocaccamo/python-fontbro) - friendly font operations. 🧢
- [`python-fsutil`](https://github.com/fabiocaccamo/python-fsutil) - file-system utilities for lazy devs. 🧟‍♂️

14
SECURITY.md 100644
View File

@ -0,0 +1,14 @@
# Security Policy
## Supported Versions
Keep this library updated to the latest version.
| Version | Supported |
| ------- | ------------------ |
| latest | :white_check_mark: |
| oldest | :x: |
## Reporting a Vulnerability
Open an issue.

View File

@ -1,6 +1,17 @@
# -*- coding: utf-8 -*-
from admin_interface.version import __version__
default_app_config = 'admin_interface.apps.AdminInterfaceConfig'
from admin_interface.metadata import (
__author__,
__copyright__,
__description__,
__license__,
__title__,
__version__,
)
__all__ = [
"__author__",
"__copyright__",
"__description__",
"__license__",
"__title__",
"__version__",
]

View File

@ -1,55 +1,224 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from admin_interface.models import Theme
from admin_interface.models import Theme, UserTheme
# from .import_tema.admin import ImportMixin
class UserInline(admin.TabularInline):
model = UserTheme
extra = 0
autocomplete_fields = ('user', )
@admin.register(Theme)
#class ThemeAdmin(ImportMixin, admin.ModelAdmin):
class ThemeAdmin(admin.ModelAdmin):
inlines = [UserInline, ]
list_display = ('name', 'active', )
list_editable = ('active', )
list_display = (
"name",
"active",
"demo",
"default",
)
list_editable = ("active",)
list_per_page = 100
show_full_result_count = False
fieldsets = (
(None, {
'classes': ('wide', ),
'fields': ('name', 'active', )
}),
('Logo', {
'classes': ('wide', ),
'fields': ('logo', 'logo_visible', )
}),
('Title', {
'classes': ('wide', ),
'fields': ('title', 'title_visible', )
}),
('Header', {
'classes': ('wide', ),
'fields': ('css_header_background_color', 'css_header_title_color', 'css_header_text_color', 'css_header_link_color', 'css_header_link_hover_color', )
}),
('Breadcrumbs / Module headers', {
'classes': ('wide', ),
'fields': ('css_module_background_color', 'css_module_text_color', 'css_module_link_color', 'css_module_link_hover_color', 'css_module_rounded_corners', )
}),
('Generic Links', {
'classes': ('wide', ),
'fields': ('css_generic_link_color', 'css_generic_link_hover_color', )
}),
('Save Buttons', {
'classes': ('wide', ),
'fields': ('css_save_button_background_color', 'css_save_button_background_hover_color', 'css_save_button_text_color', )
}),
('Delete Buttons', {
'classes': ('wide', ),
'fields': ('css_delete_button_background_color', 'css_delete_button_background_hover_color', 'css_delete_button_text_color', )
}),
('Extras', {
'classes': ('wide', ),
'fields': ('list_filter_dropdown', )
}),
(
None,
{
"classes": ("wide",),
"fields": (
"name",
"active",
"demo",
"default",
),
},
),
(
_("Environment"),
{
"classes": ("wide",),
"fields": (
"env_name",
"env_color",
"env_visible_in_header",
"env_visible_in_favicon",
),
},
),
(
_("Language chooser"),
{
"classes": ("wide",),
"fields": (
"language_chooser_active",
"language_chooser_control",
"language_chooser_display",
),
},
),
(
_("Logo"),
{
"classes": ("wide",),
"fields": (
"logo",
"logo_max_width",
"logo_max_height",
"logo_color",
"logo_visible",
),
},
),
(_("Favicon"), {"classes": ("wide",), "fields": ("favicon",)}),
(
_("Title"),
{
"classes": ("wide",),
"fields": (
"title",
"title_color",
"title_visible",
),
},
),
(
_("Header"),
{
"classes": ("wide",),
"fields": (
"css_header_background_color",
"css_header_text_color",
"css_header_link_color",
"css_header_link_hover_color",
),
},
),
(
_("Breadcrumbs / Module headers"),
{
"classes": ("wide",),
"fields": (
"css_module_background_color",
"css_module_background_selected_color",
"css_module_text_color",
"css_module_link_color",
"css_module_link_selected_color",
"css_module_link_hover_color",
"css_module_rounded_corners",
),
},
),
(
_("Generic Links"),
{
"classes": ("wide",),
"fields": (
"css_generic_link_color",
"css_generic_link_hover_color",
"css_generic_link_active_color",
),
},
),
(
_("Save Buttons"),
{
"classes": ("wide",),
"fields": (
"css_save_button_background_color",
"css_save_button_background_hover_color",
"css_save_button_text_color",
),
},
),
(
_("Delete Buttons"),
{
"classes": ("wide",),
"fields": (
"css_delete_button_background_color",
"css_delete_button_background_hover_color",
"css_delete_button_text_color",
),
},
),
(
_("Navigation Bar"),
{
"classes": ("wide",),
"fields": ("foldable_apps",),
},
),
(
_("Related Modal"),
{
"classes": ("wide",),
"fields": (
"related_modal_active",
"related_modal_background_color",
"related_modal_background_opacity",
"related_modal_rounded_corners",
"related_modal_close_button_visible",
),
},
),
(
_("Form Controls"),
{
"classes": ("wide",),
"fields": (
"form_submit_sticky",
"form_pagination_sticky",
),
},
),
(
_("List Filter"),
{
"classes": ("wide",),
"fields": (
"list_filter_highlight",
"list_filter_dropdown",
"list_filter_sticky",
"list_filter_removal_links",
),
},
),
(
_("Change Form"),
{
"classes": ("wide",),
"fields": (
"show_fieldsets_as_tabs",
"show_inlines_as_tabs",
),
},
),
(
_("Inlines"),
{
"classes": ("wide",),
"fields": (
"collapsible_stacked_inlines",
"collapsible_stacked_inlines_collapsed",
"collapsible_tabular_inlines",
"collapsible_tabular_inlines_collapsed",
),
},
),
(
_("Recent Actions"),
{
"classes": ("wide",),
"fields": ("recent_actions_visible",),
},
),
)
save_on_top = True
admin.site.register(Theme, ThemeAdmin)

View File

@ -1,16 +1,13 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig
from django.db.models.signals import post_migrate
from django.utils.translation import gettext_lazy as _
class AdminInterfaceConfig(AppConfig):
name = 'admin_interface'
verbose_name = 'Admin Interface'
name = "admin_interface"
verbose_name = _("Admin Interface")
default_auto_field = "django.db.models.AutoField"
def ready(self):
from admin_interface import settings
from admin_interface.models import Theme
post_migrate.connect(Theme.post_migrate_handler, sender = self)
settings.check_installed_apps()

View File

@ -0,0 +1,18 @@
from django.conf import settings
from django.core.cache import cache, caches
def app_cache():
return caches["admin_interface"] if "admin_interface" in settings.CACHES else cache
def del_cached_active_theme():
app_cache().delete("admin_interface_theme")
def get_cached_active_theme():
return app_cache().get("admin_interface_theme", None)
def set_cached_active_theme(theme):
app_cache().set("admin_interface_theme", theme)

View File

@ -0,0 +1,35 @@
from .models import Theme, UserTheme
def get_active_theme(request):
objs_manager = Theme.objects
user_theme_manager = UserTheme.objects
objs_active_qs = objs_manager.filter(active=True)
objs_active_ls = list(objs_active_qs)
objs_active_count = len(objs_active_ls)
if objs_active_count == 0:
obj = objs_manager.first()
if obj:
obj.set_active()
# else:
# obj = objs_manager.create()
elif objs_active_count == 1:
obj = objs_active_ls[0]
elif objs_active_count > 1:
user = request.user
try:
obj = user_theme_manager.filter(user=user, theme__active=True).first().theme
except:
objs_default_qs = objs_active_qs.filter(default=True)
if len(objs_default_qs) == 0:
obj = objs_active_qs.first()
if obj:
obj.set_default()
else:
obj = objs_default_qs.first()
return {
'theme': obj,
}

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="104px" height="36px" viewBox="0 0 104 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
<title>logo-django</title>
<description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
<g id="logo-django" sketch:type="MSArtboardGroup" transform="translate(-8.000000, -5.000000)" fill="#FFFFFF">
<path d="M20.2602817,5 L25.9509859,5 L25.9509859,31.0824248 C23.0360563,31.6338042 20.8901408,31.8507285 18.5684507,31.8507285 C11.6180282,31.8434735 8,28.7383366 8,22.7747325 C8,17.0287781 11.8377465,13.2997118 17.7847887,13.2997118 C18.7076056,13.2997118 19.4107042,13.3722617 20.2602817,13.5899115 L20.2602817,5 L20.2602817,5 Z M20.2602817,18.1242821 C19.5938028,17.9066323 19.044507,17.8340823 18.3414085,17.8340823 C15.4630986,17.8340823 13.8005634,19.5897906 13.8005634,22.6666331 C13.8005634,25.6622196 15.3898592,27.316358 18.3047887,27.316358 C18.9346479,27.316358 19.4473239,27.2808085 20.2602817,27.1719836 L20.2602817,18.1242821 L20.2602817,18.1242821 Z M34.9960563,13.6987364 L34.9960563,26.7577235 C34.9960563,31.2550936 34.6591549,33.417807 33.6704225,35.2823401 C32.7476056,37.0750489 31.531831,38.2053768 29.0197183,39.453961 L23.7391549,36.9654985 C26.2512676,35.7981701 27.4670423,34.7665101 28.2433803,33.1921767 C29.056338,31.5822938 29.3126761,29.7177606 29.3126761,24.8133855 L29.3126761,13.6987364 L34.9960563,13.6987364 Z M29.3126761,5.02901997 L35.0033803,5.02901997 L35.0033803,10.8112493 L29.3126761,10.8112493 L29.3126761,5.02901997 Z M38.4302535,14.9828702 C40.9430986,13.8148163 43.3453521,13.2997118 45.9673239,13.2997118 C48.8895775,13.2997118 50.8077183,14.0687411 51.6580282,15.5705246 C52.1340845,16.4121037 52.2878873,17.5076077 52.2878873,19.8509704 L52.2878873,31.2993491 C49.7398873,31.6620987 46.5239437,31.922553 44.1649014,31.922553 C39.3970141,31.922553 37.2584225,30.2756696 37.2584225,26.6198787 C37.2584225,22.6659076 40.1008451,20.8376494 47.079831,20.2565245 L47.079831,19.0159207 C47.079831,17.9929667 46.559831,17.6229621 45.124338,17.6229621 C43.0223662,17.6229621 40.6567324,18.2106165 38.4375775,19.3423954 L38.4302535,14.9828702 Z M47.336169,23.9420608 C43.571662,24.3048105 42.3485634,24.8931904 42.3485634,26.3579734 C42.3485634,27.4549284 43.051662,27.9693073 44.604338,27.9693073 C45.4539155,27.9693073 46.2302535,27.8967574 47.3354366,27.7153826 L47.3354366,23.9420608 L47.336169,23.9420608 Z M55.056338,14.5765906 C58.4180282,13.6987364 61.1857465,13.2997118 63.9908169,13.2997118 C66.9057465,13.2997118 69.0157746,13.9599162 70.2674366,15.2367949 C71.4458592,16.4411237 71.8208451,17.7615324 71.8208451,20.5764696 L71.8208451,31.6258237 L66.1294085,31.6258237 L66.1294085,20.8013744 C66.1294085,18.6393866 65.3896901,17.8340823 63.3616901,17.8340823 C62.5846197,17.8340823 61.8822535,17.9066323 60.7397183,18.2403619 L60.7397183,31.6265492 L55.056338,31.6265492 L55.056338,14.5765906 Z M74.0326761,34.7012152 C76.0240563,35.7241692 78.0169014,36.1964692 80.1261972,36.1964692 C83.8540845,36.1964692 85.4433803,34.6946857 85.4433803,31.1107193 L85.4433803,31.0018944 C84.3374648,31.5460188 83.223493,31.7716491 81.7513803,31.7716491 C76.764507,31.7716491 73.5932394,28.5141573 73.5932394,23.3558574 C73.5932394,16.9496987 78.2878873,13.3294573 86.5932394,13.3294573 C89.0321127,13.3294573 91.2878873,13.583382 94.0189859,14.1347615 L92.0708169,18.1975575 C90.5562254,17.9073578 91.9463099,18.1540275 90.804507,18.0452026 L90.804507,18.6328571 L90.8777465,21.0124947 L90.9136338,24.0886117 C90.9509859,24.8583664 90.9509859,25.6259447 90.988338,26.3956994 L90.988338,27.9330324 C90.988338,32.7648576 90.5774648,35.0291409 89.3616901,36.900929 C87.5892958,39.6425908 84.5212958,41 80.1620845,41 C77.943662,41 76.0240563,40.6727998 74.0326761,39.9030451 L74.0326761,34.7012152 L74.0326761,34.7012152 Z M85.3335211,17.8703573 L85.1504225,17.8703573 L84.7395493,17.8703573 C83.6336338,17.8340823 82.3380282,18.1242821 81.4510986,18.6756615 C80.0895775,19.4446908 79.3872113,20.8376494 79.3872113,22.8110074 C79.3872113,25.6252192 80.7934085,27.2365531 83.3055211,27.2365531 C84.0811268,27.2365531 84.7117183,27.0921787 85.4441127,26.8738034 L85.4441127,26.4667983 L85.4441127,24.9294653 C85.4441127,24.269261 85.4067606,23.5365067 85.4067606,22.7674775 L85.3708732,20.17019 L85.3335211,18.3056569 L85.3335211,17.8703573 Z M102.84507,13.2271619 C108.528451,13.2271619 112,16.7748534 112,22.5208077 C112,28.4118619 108.382704,32.1039278 102.617296,32.1039278 C96.9265915,32.1039278 93.4176901,28.5569618 93.4176901,22.8480079 C93.4272113,16.9199532 97.044507,13.2271619 102.84507,13.2271619 Z M102.727887,27.5623023 C104.910423,27.5623023 106.199437,25.7710445 106.199437,22.6586526 C106.199437,19.5825356 104.94631,17.7542774 102.765239,17.7542774 C100.509465,17.7542774 99.2189859,19.5462607 99.2189859,22.6586526 C99.2189859,25.7710445 100.516056,27.5623023 102.727887,27.5623023 L102.727887,27.5623023 Z M102.727887,27.5623023" id="Shape" sketch:type="MSShapeGroup"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,38 @@
[
{
"model": "admin_interface.theme",
"fields": {
"name": "Bootstrap",
"active": true,
"title": "Django administration",
"title_color": "#503873",
"title_visible": false,
"logo": "",
"logo_color": "#503873",
"logo_visible": true,
"css_header_background_color": "#FFFFFF",
"css_header_text_color": "#463265",
"css_header_link_color": "#463265",
"css_header_link_hover_color": "#7351A6",
"css_module_background_color": "#7351A6",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#CDBFE3",
"css_module_link_hover_color": "#FFFFFF",
"css_module_rounded_corners": true,
"css_generic_link_color": "#463265",
"css_generic_link_hover_color": "#7351A6",
"css_save_button_background_color": "#5CB85C",
"css_save_button_background_hover_color": "#449D44",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#D9534F",
"css_delete_button_background_hover_color": "#C9302C",
"css_delete_button_text_color": "#FFFFFF",
"related_modal_active": true,
"related_modal_background_color": "#503873",
"related_modal_background_opacity": 0.2,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]

View File

@ -0,0 +1,38 @@
[
{
"model": "admin_interface.theme",
"fields": {
"name": "Django",
"active": true,
"title": "Django administration",
"title_color": "#F5DD5D",
"title_visible": true,
"logo": "",
"logo_color": "#FFFFFF",
"logo_visible": true,
"css_header_background_color": "#0C4B33",
"css_header_text_color": "#44B78B",
"css_header_link_color": "#FFFFFF",
"css_header_link_hover_color": "#C9F0DD",
"css_module_background_color": "#44B78B",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#FFFFFF",
"css_module_link_hover_color": "#C9F0DD",
"css_module_rounded_corners": true,
"css_generic_link_color": "#0C3C26",
"css_generic_link_hover_color": "#156641",
"css_save_button_background_color": "#0C4B33",
"css_save_button_background_hover_color": "#0C3C26",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#BA2121",
"css_delete_button_background_hover_color": "#A41515",
"css_delete_button_text_color": "#FFFFFF",
"related_modal_active": true,
"related_modal_background_color": "#000000",
"related_modal_background_opacity": 0.2,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]

View File

@ -0,0 +1,38 @@
[
{
"model": "admin_interface.theme",
"fields": {
"name": "Foundation",
"active": true,
"title": "Django administration",
"title_color": "#DDDDDD",
"title_visible": false,
"logo": "",
"logo_color": "#CCCCCC",
"logo_visible": true,
"css_header_background_color": "#2C3840",
"css_header_text_color": "#FFFFFF",
"css_header_link_color": "#FFFFFF",
"css_header_link_hover_color": "#DDDDDD",
"css_module_background_color": "#074E68",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#FFFFFF",
"css_module_link_hover_color": "#DDDDDD",
"css_module_rounded_corners": true,
"css_generic_link_color": "#000000",
"css_generic_link_hover_color": "#074E68",
"css_save_button_background_color": "#2199E8",
"css_save_button_background_hover_color": "#1585CF",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#CC4B37",
"css_delete_button_background_hover_color": "#BF4634",
"css_delete_button_text_color": "#FFFFFF",
"related_modal_active": true,
"related_modal_background_color": "#000000",
"related_modal_background_opacity": 0.2,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]

View File

@ -0,0 +1,38 @@
[
{
"model": "admin_interface.theme",
"fields": {
"name": "USWDS",
"active": true,
"title": "Django administration",
"title_color": "#FFFFFF",
"title_visible": false,
"logo": "",
"logo_color": "#FFFFFF",
"logo_visible": true,
"css_header_background_color": "#112E51",
"css_header_text_color": "#FFFFFF",
"css_header_link_color": "#FFFFFF",
"css_header_link_hover_color": "#E1F3F8",
"css_module_background_color": "#205493",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#FFFFFF",
"css_module_link_hover_color": "#E1F3F8",
"css_module_rounded_corners": true,
"css_generic_link_color": "#205493",
"css_generic_link_hover_color": "#0071BC",
"css_save_button_background_color": "#205493",
"css_save_button_background_hover_color": "#112E51",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#CD2026",
"css_delete_button_background_hover_color": "#981B1E",
"css_delete_button_text_color": "#FFFFFF",
"related_modal_active": true,
"related_modal_background_color": "#000000",
"related_modal_background_opacity": 0.8,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]

View File

@ -1 +1,38 @@
[{"fields": {"css_save_button_text_color": "#FFFFFF", "css_module_link_hover_color": "#C9F0DD", "css_delete_button_text_color": "#FFFFFF", "list_filter_dropdown": false, "css_save_button_background_hover_color": "#0C3C26", "css_module_rounded_corners": true, "logo": "", "css_module_background_color": "#44B78B", "title": "Django administration", "css_header_link_color": "#FFFFFF", "css_delete_button_background_hover_color": "#A41515", "css": "", "css_module_link_color": "#FFFFFF", "css_module_text_color": "#FFFFFF", "css_generic_link_hover_color": "#156641", "css_save_button_background_color": "#0C4B33", "logo_visible": true, "active": false, "css_header_background_color": "#0C4B33", "name": "Django", "css_generic_link_color": "#0C3C26", "css_delete_button_background_color": "#BA2121", "css_header_text_color": "#44B78B", "css_header_link_hover_color": "#C9F0DD", "css_header_title_color": "#F5DD5D", "title_visible": true}, "model": "admin_interface.theme", "pk": 1}]
[
{
"model": "admin_interface.theme",
"fields": {
"name": "Django",
"active": true,
"title": "Django administration",
"title_color": "#F5DD5D",
"title_visible": true,
"logo": "",
"logo_color": "#FFFFFF",
"logo_visible": true,
"css_header_background_color": "#0C4B33",
"css_header_text_color": "#44B78B",
"css_header_link_color": "#FFFFFF",
"css_header_link_hover_color": "#C9F0DD",
"css_module_background_color": "#44B78B",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#FFFFFF",
"css_module_link_hover_color": "#C9F0DD",
"css_module_rounded_corners": true,
"css_generic_link_color": "#0C3C26",
"css_generic_link_hover_color": "#156641",
"css_save_button_background_color": "#0C4B33",
"css_save_button_background_hover_color": "#0C3C26",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#BA2121",
"css_delete_button_background_hover_color": "#A41515",
"css_delete_button_text_color": "#FFFFFF",
"related_modal_active": true,
"related_modal_background_color": "#000000",
"related_modal_background_opacity": 0.2,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]

View File

@ -0,0 +1,156 @@
import json
import os
import tempfile
import zipfile
import django
from django import forms
from django.conf import settings
from django.contrib import admin, messages
from django.contrib.auth import get_permission_codename
from django.core.exceptions import PermissionDenied
from django.core.files.storage import default_storage
from django.http import HttpResponseRedirect
from django.template.response import TemplateResponse
from django.urls import path, reverse
from django.utils.translation import gettext_lazy as _
from .. import models
from .forms import ImportForm
class ImportMixin(admin.ModelAdmin):
"""
Import mixin.
This is intended to be mixed with django.contrib.admin.ModelAdmin
https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#modeladmin-objects
"""
#: template for change_list view
change_list_template = 'admin/import_export/change_list_import.html'
#: template for import view
import_template_name = 'admin/import_export/import.html'
def get_model_info(self):
app_label = self.model._meta.app_label
return (self.model._meta.app_label, self.model._meta.model_name)
def has_import_permission(self, request):
"""
Returns whether a request has import permission.
"""
IMPORT_PERMISSION_CODE = getattr(settings, 'IMPORT_EXPORT_IMPORT_PERMISSION_CODE', None)
if IMPORT_PERMISSION_CODE is None:
return True
opts = self.opts
codename = get_permission_codename(IMPORT_PERMISSION_CODE, opts)
return request.user.has_perm("%s.%s" % (opts.app_label, codename))
def get_urls(self):
urls = super().get_urls()
info = self.get_model_info()
my_urls = [
path('import/',
self.admin_site.admin_view(self.import_action),
name='%s_%s_import' % info),
]
return my_urls + urls
def get_import_context_data(self, **kwargs):
return self.get_context_data(**kwargs)
def get_context_data(self, **kwargs):
return {}
def get_form_kwargs(self, form, *args, **kwargs):
"""
Prepare/returns kwargs for the import form.
To distinguish between import and confirm import forms,
the following approach may be used:
if isinstance(form, ImportForm):
# your code here for the import form kwargs
# e.g. update.kwargs({...})
elif isinstance(form, ConfirmImportForm):
# your code here for the confirm import form kwargs
# e.g. update.kwargs({...})
...
"""
return kwargs
def import_action(self, request, *args, **kwargs):
"""
Perform a dry_run of the import to make sure the import will not
result in errors. If there where no error, save the user
uploaded file to a local temp file that will be used by
'process_import' for the actual import.
"""
if not self.has_import_permission(request):
raise PermissionDenied
context = self.get_import_context_data()
form_type = ImportForm
form_kwargs = self.get_form_kwargs(form_type, *args, **kwargs)
form = form_type(request.POST or None,
request.FILES or None,
**form_kwargs)
if request.POST and form.is_valid():
import_file_tema = form.cleaned_data['tema']
if zipfile.is_zipfile(import_file_tema):
with zipfile.ZipFile(import_file_tema, 'r') as zip_ref:
with tempfile.TemporaryDirectory() as tempdir:
zip_ref.extractall(tempdir)
lst = os.listdir(tempdir)
allowed_extensions=[".gif", ".jpg", ".jpeg", ".png", ".svg"]
try:
tema_json = [s for s in os.listdir(f'{tempdir}/{lst[0]}') if '.json' in s][0]
logo = [s for s in os.listdir(f'{tempdir}/{lst[0]}/logo') if any(ele in s for ele in allowed_extensions)][0]
favicon = [s for s in os.listdir(f'{tempdir}/{lst[0]}/favicon') if any(ele in s for ele in allowed_extensions)][0]
with open(f'{tempdir}/{lst[0]}/{tema_json}', 'r') as temporary_file:
result = json.loads(temporary_file.read())
with open(f'{tempdir}/{lst[0]}/logo/{logo}', 'rb') as temporary_file:
default_storage.save(f"admin-interface/logo/{temporary_file.name.split('/')[-1]}", temporary_file)
with open(f'{tempdir}/{lst[0]}/favicon/{favicon}', 'rb') as temporary_file:
default_storage.save(f"admin-interface/favicon/{temporary_file.name.split('/')[-1]}", temporary_file)
skip_result = False
except FileNotFoundError as e:
messages.error(request, 'Struttura del file .zip errata.')
skip_result = True
if not skip_result:
try:
new_theme = models.Theme(
**result[0]['fields']
)
new_theme.save()
messages.success(request, _('Import finished'))
except:
messages.error(request, 'Struttura del file .json errata.')
else:
messages.error(request, 'È richiesto un file .zip')
url = reverse('admin:%s_%s_changelist' % self.get_model_info(),
current_app=self.admin_site.name)
return HttpResponseRedirect(url)
else:
context.update(self.admin_site.each_context(request))
context['title'] = _("Import")
context['form'] = form
context['opts'] = self.model._meta
request.current_app = self.admin_site.name
return TemplateResponse(request, [self.import_template_name],
context)
def changelist_view(self, request, extra_context=None):
if extra_context is None:
extra_context = {}
extra_context['has_import_permission'] = self.has_import_permission(request)
return super().changelist_view(request, extra_context)

View File

@ -0,0 +1,11 @@
import os.path
from django import forms
from django.contrib.admin.helpers import ActionForm
from django.utils.translation import gettext_lazy as _
class ImportForm(forms.Form):
tema = forms.FileField(
label='Zip'
)

View File

@ -0,0 +1,139 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Christian Galeffi <chri@gallochri.com>, 2015.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-04 09:27+0200\n"
"PO-Revision-Date: 2015-08-30 20:32+0100\n"
"Last-Translator: Christian Galeffi <chri@gallochri.com>\n"
"Language-Team: Italian <kde-i18n-it@kde.org>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"
#: admin.py:194
#, python-format
msgid "%s through import_export"
msgstr ""
#: admin.py:200
msgid "Import finished, with {} new and {} updated {}."
msgstr ""
#: admin.py:298
#, python-format
msgid "<h1>Imported file has a wrong encoding: %s</h1>"
msgstr ""
#: admin.py:300
#, python-format
msgid "<h1>%s encountered while trying to read file: %s</h1>"
msgstr ""
#: admin.py:331 templates/admin/import_export/change_list_import_item.html:5
#: templates/admin/import_export/import.html:10
msgid "Import"
msgstr "Importare"
#: admin.py:496 templates/admin/import_export/change_list_export_item.html:5
#: templates/admin/import_export/export.html:7
msgid "Export"
msgstr "Esportare"
#: admin.py:554
msgid "You must select an export format."
msgstr "Devi selezionare un formato di esportazione."
#: admin.py:567
#, python-format
msgid "Export selected %(verbose_name_plural)s"
msgstr "Esporta selezionati %(verbose_name_plural)s"
#: forms.py:10
msgid "File to import"
msgstr "File da importare"
#: forms.py:13 forms.py:41 forms.py:66
msgid "Format"
msgstr "Formato"
#: templates/admin/import_export/base.html:11
msgid "Home"
msgstr "Home"
#: templates/admin/import_export/export.html:31
#: templates/admin/import_export/import.html:52
msgid "Submit"
msgstr "Inviare"
#: templates/admin/import_export/import.html:20
msgid ""
"Below is a preview of data to be imported. If you are satisfied with the "
"results, click 'Confirm import'"
msgstr ""
"Questa è un'anteprima dei dati che saranno importati. Se il risultato è "
"soddisfacente, premi 'Conferma importazione'"
#: templates/admin/import_export/import.html:23
msgid "Confirm import"
msgstr "Conferma importazione"
#: templates/admin/import_export/import.html:31
msgid "This importer will import the following fields: "
msgstr "Verranno importati i seguenti campi:"
#: templates/admin/import_export/import.html:61
#: templates/admin/import_export/import.html:90
msgid "Errors"
msgstr "Errori"
#: templates/admin/import_export/import.html:72
msgid "Line number"
msgstr "Numero linea"
#: templates/admin/import_export/import.html:82
msgid "Some rows failed to validate"
msgstr ""
#: templates/admin/import_export/import.html:84
msgid ""
"Please correct these errors in your data where possible, then reupload it "
"using the form above."
msgstr ""
#: templates/admin/import_export/import.html:89
msgid "Row"
msgstr ""
#: templates/admin/import_export/import.html:116
msgid "Non field specific"
msgstr ""
#: templates/admin/import_export/import.html:137
msgid "Preview"
msgstr "Anteprima"
#: templates/admin/import_export/import.html:152
msgid "New"
msgstr "Nuovo"
#: templates/admin/import_export/import.html:154
msgid "Skipped"
msgstr "Salta"
#: templates/admin/import_export/import.html:156
msgid "Delete"
msgstr "Cancella"
#: templates/admin/import_export/import.html:158
msgid "Update"
msgstr "Aggiorna"
#~ msgid "Import finished"
#~ msgstr "Importazione terminata"

View File

@ -0,0 +1,81 @@
.import-preview .errors {
position: relative;
}
.validation-error-count {
display: inline-block;
background-color: #e40000;
border-radius: 6px;
color: white;
font-size: 0.9em;
position: relative;
font-weight: bold;
margin-top: -2px;
padding: 0.2em 0.4em;
}
.validation-error-container {
position: absolute;
opacity: 0;
pointer-events: none;
background-color: #ffc1c1;
padding: 14px 15px 10px;
top: 25px;
margin: 0 0 20px 0;
width: 200px;
z-index: 2;
}
table.import-preview tr.skip {
background-color: #d2d2d2;
}
table.import-preview tr.new {
background-color: #bdd8b2;
}
table.import-preview tr.delete {
background-color: #f9bebf;
}
table.import-preview tr.update {
background-color: #fdfdcf;
}
.import-preview td:hover .validation-error-count {
z-index: 3;
}
.import-preview td:hover .validation-error-container {
opacity: 1;
pointer-events: auto;
}
.validation-error-list {
margin: 0;
padding: 0;
}
.validation-error-list li {
list-style: none;
margin: 0;
}
.validation-error-list > li > ul {
margin: 8px 0;
padding: 0;
}
.validation-error-list > li > ul > li {
padding: 0;
margin: 0 0 10px;
line-height: 1.28em;
}
.validation-error-field-label {
display: block;
border-bottom: 1px solid #e40000;
color: #e40000;
text-transform: uppercase;
font-weight: bold;
font-size: 0.85em;
}

View File

@ -0,0 +1,17 @@
{% extends "admin/base_site.html" %}
{% load i18n admin_modify %}
{% load admin_urls %}
{% load static %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/forms.css" %}" />{% endblock %}
{% block bodyclass %}{{ block.super }} {{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
{% if not is_popup %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
&rsaquo; {% block breadcrumbs_last %}{% endblock %}
</div>
{% endblock %}
{% endif %}

View File

@ -0,0 +1,13 @@
{% extends "admin/change_list.html" %}
{# Original template renders object-tools only when has_add_permission is True. #}
{# This hack allows sub templates to add to object-tools #}
{% block object-tools %}
<ul class="object-tools">
{% block object-tools-items %}
{% if has_add_permission %}
{{ block.super }}
{% endif %}
{% endblock %}
</ul>
{% endblock %}

View File

@ -0,0 +1,6 @@
{% extends "admin/import_export/change_list.html" %}
{% block object-tools-items %}
{% include "admin/import_export/change_list_import_item.html" %}
{{ block.super }}
{% endblock %}

View File

@ -0,0 +1,171 @@
{% extends "admin/import_export/base.html" %}
{% load i18n %}
{% load admin_urls %}
{% load import_export_tags %}
{% load static %}
{% block extrastyle %}{{ block.super }}<link rel="stylesheet" type="text/css" href="{% static "import_export/import.css" %}" />{% endblock %}
{% block breadcrumbs_last %}
{% trans "Import" %}
{% endblock %}
{% block content %}
{% if confirm_form %}
<form action="{% url opts|admin_urlname:"process_import" %}" method="POST">
{% csrf_token %}
{{ confirm_form.as_p }}
<p>
{% trans "Below is a preview of data to be imported. If you are satisfied with the results, click 'Confirm import'" %}
</p>
<div class="submit-row">
<input type="submit" class="default" name="confirm" value="{% trans "Confirm import" %}">
</div>
</form>
{% else %}
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>
{% trans "This importer will import the following fields: " %}
<code>{{ fields|join:", " }}</code>
</p>
<fieldset class="module aligned">
{% for field in form %}
<div class="form-row">
{{ field.errors }}
{{ field.label_tag }}
{{ field }}
{% if field.field.help_text %}
<p class="help">{{ field.field.help_text|safe }}</p>
{% endif %}
</div>
{% endfor %}
</fieldset>
<div class="submit-row">
<input type="submit" class="default" value="{% trans "Submit" %}">
</div>
</form>
{% endif %}
{% if result %}
{% if result.has_errors %}
<h2>{% trans "Errors" %}</h2>
<ul>
{% for error in result.base_errors %}
<li>
{{ error.error }}
<div class="traceback">{{ error.traceback|linebreaks }}</div>
</li>
{% endfor %}
{% for line, errors in result.row_errors %}
{% for error in errors %}
<li>
{% trans "Line number" %}: {{ line }} - {{ error.error }}
<div><code>{{ error.row.values|join:", " }}</code></div>
<div class="traceback">{{ error.traceback|linebreaks }}</div>
</li>
{% endfor %}
{% endfor %}
</ul>
{% elif result.has_validation_errors %}
<h2>{% trans "Some rows failed to validate" %}</h2>
<p>{% trans "Please correct these errors in your data where possible, then reupload it using the form above." %}</p>
<table class="import-preview">
<thead>
<tr>
<th>{% trans "Row" %}</th>
<th>{% trans "Errors" %}</th>
{% for field in result.diff_headers %}
<th>{{ field }}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in result.invalid_rows %}
<tr>
<td>{{ row.number }} </td>
<td class="errors">
<span class="validation-error-count">{{ row.error_count }}</span>
<div class="validation-error-container">
<ul class="validation-error-list">
{% for field_name, error_list in row.field_specific_errors.items %}
<li>
<span class="validation-error-field-label">{{ field_name }}</span>
<ul>
{% for error in error_list %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
{% if row.non_field_specific_errors %}
<li>
<span class="validation-error-field-label">{% trans "Non field specific" %}</span>
<ul>
{% for error in row.non_field_specific_errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
</li>
{% endif %}
</ul>
</div>
</td>
{% for field in row.values %}
<td>{{ field }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<h2>{% trans "Preview" %}</h2>
<table class="import-preview">
<thead>
<tr>
<th></th>
{% for field in result.diff_headers %}
<th>{{ field }}</th>
{% endfor %}
</tr>
</thead>
{% for row in result.valid_rows %}
<tr class="{{ row.import_type }}">
<td class="import-type">
{% if row.import_type == 'new' %}
{% trans "New" %}
{% elif row.import_type == 'skip' %}
{% trans "Skipped" %}
{% elif row.import_type == 'delete' %}
{% trans "Delete" %}
{% elif row.import_type == 'update' %}
{% trans "Update" %}
{% endif %}
</td>
{% for field in row.diff %}
<td>{{ field }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endif %}
{% endif %}
{% endblock %}

View File

@ -0,0 +1,316 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Umgebung"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Sprachauswahl"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Titel"
#: admin_interface/admin.py
msgid "Header"
msgstr "Header"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Modul-Header"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Generische Links"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Speichern-Buttons"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Löschen-Buttons"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Navigationsleiste"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Modal für verwandte Objekte"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Formularsteuerung"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Filteranzeige"
#: admin_interface/admin.py
msgid "Change Form"
msgstr "Änderungsformular"
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Neueste Aktionen"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Admin-Oberfläche"
#: admin_interface/models.py
msgid "name"
msgstr "Name"
#: admin_interface/models.py
msgid "active"
msgstr "aktiv"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Django-Administration"
#: admin_interface/models.py
msgid "title"
msgstr "Titel"
#: admin_interface/models.py
msgid "color"
msgstr "Farbe"
#: admin_interface/models.py
msgid "visible"
msgstr "sichtbar"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Dieses Feld leer lassen um das Django Standard Logo zu benutzen"
#: admin_interface/models.py
msgid "logo"
msgstr "Logo"
#: admin_interface/models.py
msgid "max width"
msgstr "maximale Breite"
#: admin_interface/models.py
msgid "max height"
msgstr "maximale Höhe"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(.ico|.png|.gif - 16x16|32x32 px)"
#: admin_interface/models.py
msgid "favicon"
msgstr "Favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(rot: #E74C3C, orange: #E67E22, gelb: #F1C40F, grün: #2ECC71, blau: #3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "sichtbar im Header (Marker und Name)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "sichtbar im Favicon (Marker)"
#: admin_interface/models.py
msgid "Default Select"
msgstr "normale Auswahl"
#: admin_interface/models.py
msgid "Minimal Select"
msgstr "minimale Auswahl"
#: admin_interface/models.py
msgid "control"
msgstr "Regler"
#: admin_interface/models.py
msgid "code"
msgstr "Code"
#: admin_interface/models.py
msgid "display"
msgstr "Anzeige"
#: admin_interface/models.py
msgid "background color"
msgstr "Hintergrundfarbe"
#: admin_interface/models.py
msgid "text color"
msgstr "Textfarbe"
#: admin_interface/models.py
msgid "link color"
msgstr "Linkfarbe"
#: admin_interface/models.py
msgid "link hover color"
msgstr "Linkfarbe beim Überfahren"
#: admin_interface/models.py
msgid "background selected color"
msgstr "Hintergrundfarbe bei Auswahl"
#: admin_interface/models.py
msgid "link selected color"
msgstr "Linkfarbe bei Auswahl"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "abgerundete Ecken"
#: admin_interface/models.py
msgid "link active color"
msgstr "Linkfarbe beim aktiv"
#: admin_interface/models.py
msgid "background hover color"
msgstr "Hintergrundfarbe beim Überfahren"
#: admin_interface/models.py
msgid "background opacity"
msgstr "Deckkraft des Hintergrunds"
#: admin_interface/models.py
msgid "close button visible"
msgstr "Schließen-Schalter sichtbar"
#: admin_interface/models.py
msgid "highlight active"
msgstr "Aktiv hervorheben"
#: admin_interface/models.py
msgid "use dropdown"
msgstr "Dropdown-Liste nutzen"
#: admin_interface/models.py
msgid "sticky position"
msgstr "angeheftete Position"
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr "Schnellentfernung für aktive Filter oben in der Seitenleiste"
#: admin_interface/models.py
msgid "foldable apps"
msgstr "einklappbare Apps"
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr "Fieldsets als Tabs"
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr "Inlines als Tabs"
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr "angeheftete Schaltfläche"
#: admin_interface/models.py
msgid "sticky pagination"
msgstr "angeheftete Seitennummerierung"
#: admin_interface/models.py
msgid "Theme"
msgstr "Thema"
#: admin_interface/models.py
msgid "Themes"
msgstr "Themen"
#: admin_interface/templates/admin/change_list.html
msgid "Filter"
msgstr ""
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr ""
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Popup schließen..."

View File

@ -0,0 +1,323 @@
# This file is distributed under the same license as the
# django-admin-interface package.
#
# Translators:
# Martin Vuelta <martin.vuelta@softbutterfly.io>, 2018
# Santiago Muñoz <smunoz@mythologylabs.com.uy>, 2023
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: 2023-08-04 11:52-0300\n"
"Last-Translator: Santiago Muñoz <smunoz@mythologylabs.com.uy>\n"
"Language-Team: Spanish <dev@softbutterfly.io>\n"
"Language: Spanish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Ambiente"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Selección de idioma"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Título"
#: admin_interface/admin.py
msgid "Header"
msgstr "Encabezado"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Encabezados de módulos"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Enlaces genéricos"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Botones de guardar"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Botones de borrar"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Barra de navegación"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Modal para objetos relacionados"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Controles del formulario"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Lista de filtros"
#: admin_interface/admin.py
msgid "Change Form"
msgstr "Cambiar Formulario"
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Acciones recientes"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Interfaz de administración"
#: admin_interface/models.py
msgid "name"
msgstr "nombre"
#: admin_interface/models.py
msgid "active"
msgstr "activo"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Administración de Django"
#: admin_interface/models.py
msgid "title"
msgstr "Título"
#: admin_interface/models.py
msgid "color"
msgstr "color"
#: admin_interface/models.py
msgid "visible"
msgstr "visible"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Dejar en blanco para usar el logo por defecto de Django"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr "ancho máximo"
#: admin_interface/models.py
msgid "max height"
msgstr "altura máxima"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "Formatos ico, png o gif. Tamaños de 16x16 o 32x32 pixeles"
#: admin_interface/models.py
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "visible en el encabezado (marcador y nombre)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "visible en el favicon (marcador)"
#: admin_interface/models.py
msgid "Default Select"
msgstr "Selección por defecto"
#: admin_interface/models.py
msgid "Minimal Select"
msgstr "Selección mínima"
#: admin_interface/models.py
msgid "control"
msgstr "control"
#: admin_interface/models.py
msgid "code"
msgstr "código"
#: admin_interface/models.py
msgid "display"
msgstr "mostrar"
#: admin_interface/models.py
msgid "background color"
msgstr "color de fondo"
#: admin_interface/models.py
msgid "text color"
msgstr "color de texto"
#: admin_interface/models.py
msgid "link color"
msgstr "color de enlace"
#: admin_interface/models.py
msgid "link hover color"
msgstr "color de enlace (hover)"
#: admin_interface/models.py
#, fuzzy
#| msgid "background color"
msgid "background selected color"
msgstr "color de fondo"
#: admin_interface/models.py
#, fuzzy
#| msgid "link color"
msgid "link selected color"
msgstr "color de enlace"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "esquinas redondas"
#: admin_interface/models.py
msgid "link active color"
msgstr "color de enlace (active)"
#: admin_interface/models.py
msgid "background hover color"
msgstr "color de fondo (hover)"
#: admin_interface/models.py
msgid "background opacity"
msgstr "opacidad de fondo"
#: admin_interface/models.py
msgid "close button visible"
msgstr "mostrar botón de cerrar"
#: admin_interface/models.py
msgid "highlight active"
msgstr "destacar activo"
#: admin_interface/models.py
msgid "use dropdown"
msgstr "Usar lista desplegable"
#: admin_interface/models.py
msgid "sticky position"
msgstr "anclar posición"
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr "remover enlaces para filtros activos en la parte superior de la barra lateral"
#: admin_interface/models.py
msgid "foldable apps"
msgstr "aplicaciones plegables"
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr "campos como pestañas"
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr "inlines como pestañas"
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr "inlines apilados plegables"
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr "inlines apilados plegables colapsados"
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr "inlines tabulares plegables"
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr "inlines tabulares plegables colapsados"
#: admin_interface/models.py
msgid "sticky submit"
msgstr "anclar botón de guardar"
#: admin_interface/models.py
msgid "sticky pagination"
msgstr "anclar paginación"
#: admin_interface/models.py
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py
msgid "Themes"
msgstr "Temas"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "Lista de filtros"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " Por %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Cerando popup..."

View File

@ -0,0 +1,321 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Amir Ajorloo <amirajorloo@gmail.com>, 2020.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Amir Ajorloo <amirajorloo@gmail.com>\n"
"Language-Team: Farsi <LL@li.org>\n"
"Language: FarsiMIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "محیط"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "انتخاب زبان"
#: admin_interface/admin.py
msgid "Logo"
msgstr "لوگو"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "آیکون تب"
#: admin_interface/admin.py
msgid "Title"
msgstr "عنوان"
#: admin_interface/admin.py
msgid "Header"
msgstr "هدر"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "مسیر صفحه"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "لینکهای عمومی"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "دکمههای ذخیره"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "دکمههای حذف"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr ""
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "مدلهای مرتبط"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr ""
#: admin_interface/admin.py
msgid "List Filter"
msgstr "فیلترهای لیست"
#: admin_interface/admin.py
msgid "Change Form"
msgstr ""
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "فعالیتهای اخیر"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "ظاهر ادمین"
#: admin_interface/models.py
msgid "name"
msgstr "نام"
#: admin_interface/models.py
msgid "active"
msgstr "فعال"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "مدیریت جنگو"
#: admin_interface/models.py
msgid "title"
msgstr "عنوان"
#: admin_interface/models.py
msgid "color"
msgstr "رنگ"
#: admin_interface/models.py
msgid "visible"
msgstr "نمایان"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "برای نمایش لوگوی پیش فرض، خالی بگذارید."
#: admin_interface/models.py
msgid "logo"
msgstr "لوگو"
#: admin_interface/models.py
msgid "max width"
msgstr ""
#: admin_interface/models.py
msgid "max height"
msgstr ""
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(.ico|.png|.gif - 16x16|32x32 px)"
#: admin_interface/models.py
msgid "favicon"
msgstr "آیکون تب"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(قرمز: #E74C3C, نارنجی: #E67E22, زرد: #F1C40F, سبز: #2ECC71, آبی: #3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "نمایان در هدر"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "نمایان در آیکون تب"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
msgid "control"
msgstr ""
#: admin_interface/models.py
msgid "code"
msgstr "کد"
#: admin_interface/models.py
msgid "display"
msgstr "نمایش"
#: admin_interface/models.py
msgid "background color"
msgstr "رنگ پسزمینه"
#: admin_interface/models.py
msgid "text color"
msgstr "رنگ متن"
#: admin_interface/models.py
msgid "link color"
msgstr "رنگ لینک"
#: admin_interface/models.py
msgid "link hover color"
msgstr "رنگ لینک در حالت هاور"
#: admin_interface/models.py
#, fuzzy
#| msgid "background color"
msgid "background selected color"
msgstr "رنگ پسزمینه"
#: admin_interface/models.py
#, fuzzy
#| msgid "link color"
msgid "link selected color"
msgstr "رنگ لینک"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "گوشههای خمیده"
#: admin_interface/models.py
msgid "link active color"
msgstr "رنگ فعال پیوند"
#: admin_interface/models.py
msgid "background hover color"
msgstr "رنگ پسزمینه در حالت هاور"
#: admin_interface/models.py
msgid "background opacity"
msgstr "شفافیت بکگراند"
#: admin_interface/models.py
msgid "close button visible"
msgstr "دکمه بستن نمایان باشد"
#: admin_interface/models.py
msgid "highlight active"
msgstr ""
#: admin_interface/models.py
msgid "use dropdown"
msgstr "استفاده از دراپ داون"
#: admin_interface/models.py
msgid "sticky position"
msgstr ""
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr ""
#: admin_interface/models.py
msgid "foldable apps"
msgstr ""
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr ""
#: admin_interface/models.py
msgid "sticky pagination"
msgstr ""
#: admin_interface/models.py
msgid "Theme"
msgstr "تم"
#: admin_interface/models.py
msgid "Themes"
msgstr "تمها"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "فیلترهای لیست"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " توسط %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "پاپ آپ در حال بسته شدن..."

View File

@ -0,0 +1,318 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Environnement"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Sélecteur de langue"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Titre"
#: admin_interface/admin.py
msgid "Header"
msgstr "Bannière"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Fil d'ariane / en-têtes de module"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Liens génériques"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Boutons sauvegarder"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Boutons supprimer"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Barre de navigation"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Modale pour objet reliés"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Contrôles de formulaires"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Filtre de liste"
#: admin_interface/admin.py
msgid "Change Form"
msgstr ""
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Actions récentes"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Interface Admin"
#: admin_interface/models.py
msgid "name"
msgstr "nom"
#: admin_interface/models.py
msgid "active"
msgstr "actif"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Administration Django"
#: admin_interface/models.py
msgid "title"
msgstr "titre"
#: admin_interface/models.py
msgid "color"
msgstr "couleur"
#: admin_interface/models.py
msgid "visible"
msgstr "visible"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Laisser vide pour utiliser le logo Django par défaut"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr "largeur max"
#: admin_interface/models.py
msgid "max height"
msgstr "hauteur max"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(.ico|.png|.gif - 16x16|32x32 px)"
#: admin_interface/models.py
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(rouge: #E74C3C, orange: #E67E22, jaune: #F1C40F, vert: #2ECC71, bleu: "
"#3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "visible dans len-tête (marqueur et nom)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "visible dans la favicon (marqueur)"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
msgid "control"
msgstr "contrôle"
#: admin_interface/models.py
msgid "code"
msgstr "code"
#: admin_interface/models.py
msgid "display"
msgstr "affichage"
#: admin_interface/models.py
msgid "background color"
msgstr "couleur d'arrière-plan"
#: admin_interface/models.py
msgid "text color"
msgstr "couleur du texte"
#: admin_interface/models.py
msgid "link color"
msgstr "couleur de lien"
#: admin_interface/models.py
msgid "link hover color"
msgstr "couleur de lien au survol"
#: admin_interface/models.py
msgid "background selected color"
msgstr "couleur d'arrière-plan choisi"
#: admin_interface/models.py
msgid "link selected color"
msgstr "couleur de lien choisi"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "coins arrondis"
#: admin_interface/models.py
msgid "link active color"
msgstr "couleur de lien actif"
#: admin_interface/models.py
msgid "background hover color"
msgstr "couleur de fond au survol"
#: admin_interface/models.py
msgid "background opacity"
msgstr "opacité de l'arrière-plan"
#: admin_interface/models.py
msgid "close button visible"
msgstr "bouton fermer visible"
#: admin_interface/models.py
msgid "highlight active"
msgstr "mise en valeur active"
#: admin_interface/models.py
msgid "use dropdown"
msgstr "utiliser un menu déroulant"
#: admin_interface/models.py
msgid "sticky position"
msgstr "position adhérente (sticky)"
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr ""
"liens de suppression pour les filtres actifs en haut de la barre latérale"
#: admin_interface/models.py
msgid "foldable apps"
msgstr "apps repliables"
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr "envoi adhérent (sticky)"
#: admin_interface/models.py
msgid "sticky pagination"
msgstr "pagination adhérente (sticky)"
#: admin_interface/models.py
msgid "Theme"
msgstr "Thème"
#: admin_interface/models.py
msgid "Themes"
msgstr "Thèmes"
#: admin_interface/templates/admin/change_list.html
msgid "Filter"
msgstr "Filtre"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " Par %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Fermeture de la modale..."

View File

@ -0,0 +1,324 @@
# This file is distributed under the same license as the
# django-admin-interface package.
#
# Translators:
# Fabio Caccamo <fabio.caccamo@gmail.com>, 2018
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: 2018-12-30 19:13-0500\n"
"Last-Translator: Fabio Caccamo <fabio.caccamo@gmail.com>\n"
"Language-Team: Italian <LL@li.org>\n"
"Language: Italian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Ambiente"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Selettore di lingua"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Titolo"
#: admin_interface/admin.py
msgid "Header"
msgstr "Header"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Breadcrumbs / Header dei moduli"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Link generici"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Pulsanti per salvare"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Pulsanti per eliminare"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Barra di Navigazione"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Modale per gli oggetti correlati"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Controlli dei form"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Filtro listato"
#: admin_interface/admin.py
msgid "Change Form"
msgstr "Form di modifica"
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Azioni recenti"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Interfaccia di amministrazione"
#: admin_interface/models.py
msgid "name"
msgstr "nome"
#: admin_interface/models.py
msgid "active"
msgstr "attivo"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Amministrazione di Django"
#: admin_interface/models.py
msgid "title"
msgstr "titolo"
#: admin_interface/models.py
msgid "color"
msgstr "colore"
#: admin_interface/models.py
msgid "visible"
msgstr "visibile"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Lasciare vuoto per usare il logo Django di default"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr "larghezza massima"
#: admin_interface/models.py
msgid "max height"
msgstr "altezza massima"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(formato ico, png o gif - dimensioni 16x16 o 32x32 px)"
#: admin_interface/models.py
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(rosso: #E74C3C, arancione: #E67E22, giallo: #F1C40F, verde: #2ECC71, blu: "
"#3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "visibile nell'header (marker e nome)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "visibile nella favicon (marker)"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
msgid "control"
msgstr ""
#: admin_interface/models.py
msgid "code"
msgstr "codice"
#: admin_interface/models.py
msgid "display"
msgstr "visualizzazione"
#: admin_interface/models.py
msgid "background color"
msgstr "colore di sfondo"
#: admin_interface/models.py
msgid "text color"
msgstr "colore del testo"
#: admin_interface/models.py
msgid "link color"
msgstr "colore dei link"
#: admin_interface/models.py
msgid "link hover color"
msgstr "colore dei link in hover"
#: admin_interface/models.py
#, fuzzy
#| msgid "background color"
msgid "background selected color"
msgstr "colore di sfondo"
#: admin_interface/models.py
#, fuzzy
#| msgid "link color"
msgid "link selected color"
msgstr "colore dei link"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "bordi arrotondati"
#: admin_interface/models.py
msgid "link active color"
msgstr "colore dei link attivi"
#: admin_interface/models.py
msgid "background hover color"
msgstr "colore di sfondo in hover"
#: admin_interface/models.py
msgid "background opacity"
msgstr "opacità dello sfondo"
#: admin_interface/models.py
msgid "close button visible"
msgstr "pulsante chiudi visibile"
#: admin_interface/models.py
msgid "highlight active"
msgstr ""
#: admin_interface/models.py
msgid "use dropdown"
msgstr "usa dropdown"
#: admin_interface/models.py
msgid "sticky position"
msgstr ""
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr "links di rimozione rapida dei filtri attivi in alto nella sidebar"
#: admin_interface/models.py
msgid "foldable apps"
msgstr ""
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr ""
#: admin_interface/models.py
msgid "sticky pagination"
msgstr ""
#: admin_interface/models.py
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py
msgid "Themes"
msgstr "Temi"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "Filtro listato"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr "Cancella tutti i filtri"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr "Modifica"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr "Visualizza"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr "Visualizza sul sito"
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr "Eliminare?"
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " Per %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Chiusura popup..."

View File

@ -0,0 +1,324 @@
# This file is distributed under the same license as the
# django-admin-interface package.
#
# Translators:
# Kamil Paduszyński <kpaduszy@gmail.com>, 2022
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: 2022-02-04 19:13-0500\n"
"Last-Translator: Kamil Paduszyński <kpaduszy@gmail.com>\n"
"Language-Team: Polish <LL@li.org>\n"
"Language: Polish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Środowisko"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Wybór wersji językowej"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Ikonka"
#: admin_interface/admin.py
msgid "Title"
msgstr "Tytuł"
#: admin_interface/admin.py
msgid "Header"
msgstr "Nagłówek"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Pasek nawigacyjny / nagłówki modułów"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Zwykłe linki"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Przyciski zapisywania"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Przyciski usuwania"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr ""
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Okno dialogowe"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr ""
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Filtry"
#: admin_interface/admin.py
msgid "Change Form"
msgstr ""
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Ostatnie działania"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Wygląd panelu administracyjnego"
#: admin_interface/models.py
msgid "name"
msgstr "nazwa"
#: admin_interface/models.py
msgid "active"
msgstr "aktywny"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Administracja Django"
#: admin_interface/models.py
msgid "title"
msgstr "tytuł"
#: admin_interface/models.py
msgid "color"
msgstr "kolor"
#: admin_interface/models.py
msgid "visible"
msgstr "widoczny"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Puste ustawia domyślne logo Django"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr ""
#: admin_interface/models.py
msgid "max height"
msgstr ""
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(Format pliku: .ico, .png, .gif; wymiary: 16 x 16 lub 32 x 32 px)."
#: admin_interface/models.py
msgid "favicon"
msgstr "ikonka"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(czerwony: #E74C3C, pomarańczowy: #E67E22, żółty: #F1C40F, zielony: #2ECC71, "
"niebieski: #3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "widoczne w nagłówku (znacznik i nazwa)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "widoczne przy ikonce (znacznik)"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
msgid "control"
msgstr ""
#: admin_interface/models.py
msgid "code"
msgstr "kod"
#: admin_interface/models.py
msgid "display"
msgstr "wyświetlaj"
#: admin_interface/models.py
msgid "background color"
msgstr "kolor tła"
#: admin_interface/models.py
msgid "text color"
msgstr "kolor tekstu"
#: admin_interface/models.py
msgid "link color"
msgstr "kolor linku"
#: admin_interface/models.py
msgid "link hover color"
msgstr "kolor wskazywanego linku"
#: admin_interface/models.py
#, fuzzy
#| msgid "background color"
msgid "background selected color"
msgstr "kolor tła"
#: admin_interface/models.py
#, fuzzy
#| msgid "link color"
msgid "link selected color"
msgstr "kolor linku"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "zaokrąglenie narożników"
#: admin_interface/models.py
msgid "link active color"
msgstr "kolor aktywny linku"
#: admin_interface/models.py
msgid "background hover color"
msgstr "kolor tła wskazywanego przycisku"
#: admin_interface/models.py
msgid "background opacity"
msgstr "przeźroczystość tła"
#: admin_interface/models.py
msgid "close button visible"
msgstr "pokaż przycisk zamykania"
#: admin_interface/models.py
msgid "highlight active"
msgstr ""
#: admin_interface/models.py
msgid "use dropdown"
msgstr "zastosuj listy rozwijane"
#: admin_interface/models.py
msgid "sticky position"
msgstr ""
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr ""
#: admin_interface/models.py
msgid "foldable apps"
msgstr ""
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr ""
#: admin_interface/models.py
msgid "sticky pagination"
msgstr ""
#: admin_interface/models.py
msgid "Theme"
msgstr "Schemat"
#: admin_interface/models.py
msgid "Themes"
msgstr "Schematy"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "Filtry"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " po %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Zamykanie..."

View File

@ -0,0 +1,321 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Ambiente"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Seletor de idioma"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Título"
#: admin_interface/admin.py
msgid "Header"
msgstr "Cabeçalho"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Cabeçalhos de módulo"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Links Genéricos"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Botões Salvar"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Botões Deletar"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Barra de Navegação"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Modal Relacionado"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Controles de Formulário"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Filtro de lista"
#: admin_interface/admin.py
msgid "Change Form"
msgstr ""
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Ações recentes"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Interface do administrador"
#: admin_interface/models.py
msgid "name"
msgstr "nome"
#: admin_interface/models.py
msgid "active"
msgstr "ativo"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Administração do Django"
#: admin_interface/models.py
msgid "title"
msgstr "título"
#: admin_interface/models.py
msgid "color"
msgstr "cor"
#: admin_interface/models.py
msgid "visible"
msgstr "visível"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Deixe em branco para usar o logotipo padrão do Django"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr "largura máxima"
#: admin_interface/models.py
msgid "max height"
msgstr "altura máxima"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr "(.ico|.png|.gif - 16x16|32x32 px)"
#: admin_interface/models.py
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(vermelho: #E74C3C, laranja: #E67E22, amarelo: #F1C40F, verde: #2ECC71, "
"azul: #3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "visível no cabeçalho (marcador e nome)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "visível no favicon (marcador)"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
#, fuzzy
#| msgid "Form Controls"
msgid "control"
msgstr "Controles de Formulário"
#: admin_interface/models.py
msgid "code"
msgstr "código"
#: admin_interface/models.py
msgid "display"
msgstr "exibição"
#: admin_interface/models.py
msgid "background color"
msgstr "cor de fundo"
#: admin_interface/models.py
msgid "text color"
msgstr "cor do texto"
#: admin_interface/models.py
msgid "link color"
msgstr "cor do link"
#: admin_interface/models.py
msgid "link hover color"
msgstr "cor de foco do link"
#: admin_interface/models.py
msgid "background selected color"
msgstr "cor de fundo selecionada"
#: admin_interface/models.py
msgid "link selected color"
msgstr "link cor selecionada"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "cantos arredondados"
#: admin_interface/models.py
msgid "link active color"
msgstr "cor de ativação do link"
#: admin_interface/models.py
msgid "background hover color"
msgstr "cor de fundo do foco"
#: admin_interface/models.py
msgid "background opacity"
msgstr "opacidade de fundo"
#: admin_interface/models.py
msgid "close button visible"
msgstr "botão fechar visível"
#: admin_interface/models.py
msgid "highlight active"
msgstr ""
#: admin_interface/models.py
msgid "use dropdown"
msgstr "usar menu suspenso"
#: admin_interface/models.py
msgid "sticky position"
msgstr "posição sticky"
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr ""
#: admin_interface/models.py
msgid "foldable apps"
msgstr "aplicativos dobráveis"
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr "envio fixo"
#: admin_interface/models.py
msgid "sticky pagination"
msgstr "paginação fixa"
#: admin_interface/models.py
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py
msgid "Themes"
msgstr "Temas"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "Filtro de lista"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " por %(filter_title)s "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Pop-up fechando..."

View File

@ -0,0 +1,320 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-06-23 16:28-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
"(n%100>=11 && n%100<=14)? 2 : 3);\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Окружение"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Вид выбора языка"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Логотип"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Иконка адресной строки"
#: admin_interface/admin.py
msgid "Title"
msgstr "Заголовок"
#: admin_interface/admin.py
msgid "Header"
msgstr "Шапка"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Шапки модулей"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Общие ссылки"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Кнопки сохранения"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Кнопки удаления"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr "Строка навигации"
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "Модаль для связанных объектов"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr "Управление формами"
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Вид списка фильтров"
#: admin_interface/admin.py
msgid "Change Form"
msgstr "Вид формы изменения"
#: admin_interface/admin.py
msgid "Inlines"
msgstr "Вид вставок"
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Недавние действия"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Интерфейс администрирования"
#: admin_interface/models.py
msgid "name"
msgstr "название"
#: admin_interface/models.py
msgid "active"
msgstr "активный"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Администрирование Django"
#: admin_interface/models.py
msgid "title"
msgstr "заголовок"
#: admin_interface/models.py
msgid "color"
msgstr "цвет"
#: admin_interface/models.py
msgid "visible"
msgstr "видимый"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Оставьте пустым, чтобы по умолчанию использовать логотип Django"
#: admin_interface/models.py
msgid "logo"
msgstr "логотип"
#: admin_interface/models.py
msgid "max width"
msgstr "максимальная ширина"
#: admin_interface/models.py
msgid "max height"
msgstr "максимальная высота"
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr ""
#: admin_interface/models.py
msgid "favicon"
msgstr "иконка в адресной строке"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(красный: #E74C3C, оранжевый: #E67E22, желтый: #F1C40F, зеленый: #2ECC71, "
"синий: #3498DB"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "видимый в шапке (метка и название)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "видимый в иконке адресной строки (метка)"
#: admin_interface/models.py
msgid "Default Select"
msgstr "Выбор по умолчанию"
#: admin_interface/models.py
msgid "Minimal Select"
msgstr "Минимальный выбор"
#: admin_interface/models.py
msgid "control"
msgstr "контроль"
#: admin_interface/models.py
msgid "code"
msgstr "код"
#: admin_interface/models.py
msgid "display"
msgstr "отображение"
#: admin_interface/models.py
msgid "background color"
msgstr "цвет заднего фона"
#: admin_interface/models.py
msgid "text color"
msgstr "цвет текста"
#: admin_interface/models.py
msgid "link color"
msgstr "цвет ссылки"
#: admin_interface/models.py
msgid "link hover color"
msgstr "цвет ссылки при наведении"
#: admin_interface/models.py
msgid "background selected color"
msgstr "цвет заднего фона выбранного объекта"
#: admin_interface/models.py
msgid "link selected color"
msgstr "цвет ссылки выбранного объекта"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "закругленные края"
#: admin_interface/models.py
msgid "link active color"
msgstr "цвет активной ссылки"
#: admin_interface/models.py
msgid "background hover color"
msgstr "цвет заднего фона при наведении"
#: admin_interface/models.py
msgid "background opacity"
msgstr "прозрачность заднего фона"
#: admin_interface/models.py
msgid "close button visible"
msgstr "видимость кнопки закрытия"
#: admin_interface/models.py
msgid "highlight active"
msgstr "подсвечивать активное"
#: admin_interface/models.py
msgid "use dropdown"
msgstr "использовать выпадающий список"
#: admin_interface/models.py
msgid "sticky position"
msgstr "устойчивое положение"
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr "быстро удалять ссылки для активных фильтров сверху боковой панели"
#: admin_interface/models.py
msgid "foldable apps"
msgstr "складные приложения"
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr "набор полей в виде вкладок"
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr "вставки как вкладки"
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr "разборные уложенные вставки"
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr "сворачивающиеся уложенные вкладки свернуты"
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr "сворачивающиеся табличные вставки"
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr "сворачивающиеся табличные вставки свернуты"
#: admin_interface/models.py
msgid "sticky submit"
msgstr "устойчивая отправка"
#: admin_interface/models.py
msgid "sticky pagination"
msgstr "устойчивая разбивка"
#: admin_interface/models.py
msgid "Theme"
msgstr "Тема"
#: admin_interface/models.py
msgid "Themes"
msgstr "Темы"
#: admin_interface/templates/admin/change_list.html
msgid "Filter"
msgstr "Фильтр"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr "Очистить все фильтры"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr "Изменить"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr "Посмотреть"
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr "Посмотреть на сайте"
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr "Удалить?"
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, fuzzy, python-format
#| msgid " By %(filter_title)s "
msgid " By %(filter_title)s "
msgstr " По %(filter_title)ы "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Закрытие всплывающего окна..."

View File

@ -0,0 +1,326 @@
# This file is distributed under the same license as the
# django-admin-interface package.
#
# Translators:
# Ishak Okutan <ishak.oktn@gmail.com>, 2020
#
msgid ""
msgstr ""
"Project-Id-Version: django-admin-interface\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-10 18:20-0500\n"
"PO-Revision-Date: 2020-01-29 04:53+0300\n"
"Last-Translator: Ishak Okutan <ishak.oktn@gmail.com>\n"
"Language-Team: \n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.2.4\n"
#: admin_interface/admin.py
msgid "Environment"
msgstr "Ortam"
#: admin_interface/admin.py
msgid "Language chooser"
msgstr "Dil seçimi"
#: admin_interface/admin.py
msgid "Logo"
msgstr "Logo"
#: admin_interface/admin.py
msgid "Favicon"
msgstr "Favicon"
#: admin_interface/admin.py
msgid "Title"
msgstr "Başlık"
#: admin_interface/admin.py
msgid "Header"
msgstr "Üst Kısım"
#: admin_interface/admin.py
msgid "Breadcrumbs / Module headers"
msgstr "Link alanı / Modül başlıkları"
#: admin_interface/admin.py
msgid "Generic Links"
msgstr "Genel Bağlantılar"
#: admin_interface/admin.py
msgid "Save Buttons"
msgstr "Kaydet Butonları"
#: admin_interface/admin.py
msgid "Delete Buttons"
msgstr "Kaldır Butonları"
#: admin_interface/admin.py
msgid "Navigation Bar"
msgstr ""
#: admin_interface/admin.py
msgid "Related Modal"
msgstr "İlgili Modal"
#: admin_interface/admin.py
msgid "Form Controls"
msgstr ""
#: admin_interface/admin.py
msgid "List Filter"
msgstr "Liste Filtresi"
#: admin_interface/admin.py
msgid "Change Form"
msgstr ""
#: admin_interface/admin.py
msgid "Inlines"
msgstr ""
#: admin_interface/admin.py
msgid "Recent Actions"
msgstr "Son İşlemler"
#: admin_interface/apps.py
msgid "Admin Interface"
msgstr "Yönetici Arayüzü"
#: admin_interface/models.py
msgid "name"
msgstr "adı"
#: admin_interface/models.py
msgid "active"
msgstr "aktif"
#: admin_interface/models.py admin_interface/templates/admin/base_site.html
msgid "Django administration"
msgstr "Django yönetimi"
#: admin_interface/models.py
msgid "title"
msgstr "başlık"
#: admin_interface/models.py
msgid "color"
msgstr "renk"
#: admin_interface/models.py
msgid "visible"
msgstr "göster"
#: admin_interface/models.py
msgid "Leave blank to use the default Django logo"
msgstr "Varsayılan Django logosunu kullanmak için boş bırakın"
#: admin_interface/models.py
msgid "logo"
msgstr "logo"
#: admin_interface/models.py
msgid "max width"
msgstr ""
#: admin_interface/models.py
msgid "max height"
msgstr ""
#: admin_interface/models.py
msgid "(.ico|.png|.gif - 16x16|32x32 px)"
msgstr ""
"(favicon simgesi, png veya (GIF 16x16) veya (32x32) piksel boyutlarında "
"olmalıdır)"
#: admin_interface/models.py
msgid "favicon"
msgstr "favicon"
#: admin_interface/models.py
msgid ""
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, green: #2ECC71, blue: "
"#3498DB)"
msgstr ""
"(kırmızı: # E74C3C, turuncu: # E67E22, sarı: # F1C40F, yeşil: # 2ECC71, "
"mavi: # 3498DB)"
#: admin_interface/models.py
msgid "visible in header (marker and name)"
msgstr "üst kısım da görünsün (yuvarlak işaret ve ad)"
#: admin_interface/models.py
msgid "visible in favicon (marker)"
msgstr "faviconda görünsün (yuvarlak işaret)"
#: admin_interface/models.py
msgid "Default Select"
msgstr ""
#: admin_interface/models.py
msgid "Minimal Select"
msgstr ""
#: admin_interface/models.py
msgid "control"
msgstr ""
#: admin_interface/models.py
msgid "code"
msgstr "kod"
#: admin_interface/models.py
msgid "display"
msgstr "görüntüle"
#: admin_interface/models.py
msgid "background color"
msgstr "arka plan rengi"
#: admin_interface/models.py
msgid "text color"
msgstr "metin rengi"
#: admin_interface/models.py
msgid "link color"
msgstr "bağlantı rengi"
#: admin_interface/models.py
msgid "link hover color"
msgstr "bağlantı üzerine gelindiğindeki rengi"
#: admin_interface/models.py
#, fuzzy
#| msgid "background color"
msgid "background selected color"
msgstr "arka plan rengi"
#: admin_interface/models.py
#, fuzzy
#| msgid "link color"
msgid "link selected color"
msgstr "bağlantı rengi"
#: admin_interface/models.py
msgid "rounded corners"
msgstr "köşeleri ovalleştir"
#: admin_interface/models.py
msgid "link active color"
msgstr "bağlantı aktif gelindiğindeki rengi"
#: admin_interface/models.py
msgid "background hover color"
msgstr "arka planın üzerine gelindiğindeki renk"
#: admin_interface/models.py
msgid "background opacity"
msgstr "arka plan şeffaflığı"
#: admin_interface/models.py
msgid "close button visible"
msgstr "kapat düğmesi görünsün"
#: admin_interface/models.py
msgid "highlight active"
msgstr ""
#: admin_interface/models.py
msgid "use dropdown"
msgstr "açılır listeyi kullan"
#: admin_interface/models.py
msgid "sticky position"
msgstr ""
#: admin_interface/models.py
msgid "quick remove links for active filters at top of sidebar"
msgstr ""
#: admin_interface/models.py
msgid "foldable apps"
msgstr ""
#: admin_interface/models.py
msgid "fieldsets as tabs"
msgstr ""
#: admin_interface/models.py
msgid "inlines as tabs"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible stacked inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines"
msgstr ""
#: admin_interface/models.py
msgid "collapsible tabular inlines collapsed"
msgstr ""
#: admin_interface/models.py
msgid "sticky submit"
msgstr ""
#: admin_interface/models.py
msgid "sticky pagination"
msgstr ""
#: admin_interface/models.py
msgid "Theme"
msgstr "Tema"
#: admin_interface/models.py
msgid "Themes"
msgstr "Temalar"
#: admin_interface/templates/admin/change_list.html
#, fuzzy
#| msgid "List Filter"
msgid "Filter"
msgstr "Liste Filtresi"
#. Translators: don't translate this, the django catalog already contains it
#: admin_interface/templates/admin/change_list.html
msgid "Clear all filters"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Change"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_stacked.html
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "View on site"
msgstr ""
#: admin_interface/templates/admin/edit_inline/headerless_tabular.html
msgid "Delete?"
msgstr ""
#: admin_interface/templates/admin/filter.html
#: admin_interface/templates/admin_interface/dropdown_filter.html
#, python-format
msgid " By %(filter_title)s "
msgstr " %(filter_title)s tarafından "
#: admin_interface/templates/admin/popup_response.html
msgid "Popup closing..."
msgstr "Popup kapanıyor..."

View File

@ -0,0 +1,10 @@
__author__ = "Fabio Caccamo"
__copyright__ = "Copyright (c) 2016-present Fabio Caccamo"
__description__ = (
"django's default admin interface with superpowers - "
"customizable themes, popup windows replaced by modals and many other features."
)
__email__ = "fabio.caccamo@gmail.com"
__license__ = "MIT"
__title__ = "django-admin-interface"
__version__ = "0.28.6"

View File

@ -1,50 +1,258 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
]
dependencies = []
operations = [
migrations.CreateModel(
name='Theme',
name="Theme",
fields=[
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
('name', models.CharField(default=b'Django', max_length=50)),
('active', models.BooleanField(default=True)),
('title', models.CharField(default=b'Django administration', max_length=50, blank=True)),
('title_visible', models.BooleanField(default=True, verbose_name=b'visible')),
('logo', models.FileField(upload_to=b'admin-interface/logo/', blank=True)),
('logo_visible', models.BooleanField(default=True, verbose_name=b'visible')),
('css_header_background_color', colorfield.fields.ColorField(default=b'#0C4B33', help_text=b'#0C4B33', max_length=10, verbose_name=b'background color', blank=True)),
('css_header_title_color', colorfield.fields.ColorField(default=b'#F5DD5D', help_text=b'#F5DD5D', max_length=10, verbose_name=b'title color', blank=True)),
('css_header_text_color', colorfield.fields.ColorField(default=b'#44B78B', help_text=b'#44B78B', max_length=10, verbose_name=b'text color', blank=True)),
('css_header_link_color', colorfield.fields.ColorField(default=b'#FFFFFF', help_text=b'#FFFFFF', max_length=10, verbose_name=b'link color', blank=True)),
('css_header_link_hover_color', colorfield.fields.ColorField(default=b'#C9F0DD', help_text=b'#C9F0DD', max_length=10, verbose_name=b'link hover color', blank=True)),
('css_module_background_color', colorfield.fields.ColorField(default=b'#44B78B', help_text=b'#44B78B', max_length=10, verbose_name=b'background color', blank=True)),
('css_module_text_color', colorfield.fields.ColorField(default=b'#FFFFFF', help_text=b'#FFFFFF', max_length=10, verbose_name=b'text color', blank=True)),
('css_module_link_color', colorfield.fields.ColorField(default=b'#FFFFFF', help_text=b'#FFFFFF', max_length=10, verbose_name=b'link color', blank=True)),
('css_module_link_hover_color', colorfield.fields.ColorField(default=b'#C9F0DD', help_text=b'#C9F0DD', max_length=10, verbose_name=b'link hover color', blank=True)),
('css_module_rounded_corners', models.BooleanField(default=True, verbose_name=b'rounded corners')),
('css_generic_link_color', colorfield.fields.ColorField(default=b'#0C3C26', help_text=b'#0C3C26', max_length=10, verbose_name=b'link color', blank=True)),
('css_generic_link_hover_color', colorfield.fields.ColorField(default=b'#156641', help_text=b'#156641', max_length=10, verbose_name=b'link hover color', blank=True)),
('css_save_button_background_color', colorfield.fields.ColorField(default=b'#0C4B33', help_text=b'#0C4B33', max_length=10, verbose_name=b'background color', blank=True)),
('css_save_button_background_hover_color', colorfield.fields.ColorField(default=b'#0C3C26', help_text=b'#0C3C26', max_length=10, verbose_name=b'background hover color', blank=True)),
('css_save_button_text_color', colorfield.fields.ColorField(default=b'#FFFFFF', help_text=b'#FFFFFF', max_length=10, verbose_name=b'text color', blank=True)),
('css_delete_button_background_color', colorfield.fields.ColorField(default=b'#BA2121', help_text=b'#BA2121', max_length=10, verbose_name=b'background color', blank=True)),
('css_delete_button_background_hover_color', colorfield.fields.ColorField(default=b'#A41515', help_text=b'#A41515', max_length=10, verbose_name=b'background hover color', blank=True)),
('css_delete_button_text_color', colorfield.fields.ColorField(default=b'#FFFFFF', help_text=b'#FFFFFF', max_length=10, verbose_name=b'text color', blank=True)),
('css', models.TextField(blank=True)),
('list_filter_dropdown', models.BooleanField(default=False)),
(
"id",
models.AutoField(
verbose_name="ID",
serialize=False,
auto_created=True,
primary_key=True,
),
),
(
"name",
models.CharField(
default="Django",
max_length=50,
),
),
(
"active",
models.BooleanField(
default=True,
),
),
(
"title",
models.CharField(
default="Django administration",
max_length=50,
blank=True,
),
),
(
"title_visible",
models.BooleanField(
default=True,
verbose_name="visible",
),
),
(
"logo",
models.FileField(
upload_to="admin-interface/logo/",
blank=True,
),
),
(
"logo_visible",
models.BooleanField(
default=True,
verbose_name="visible",
),
),
(
"css_header_background_color",
colorfield.fields.ColorField(
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name="background color",
blank=True,
),
),
(
"css_header_title_color",
colorfield.fields.ColorField(
default="#F5DD5D",
help_text="#F5DD5D",
max_length=10,
verbose_name="title color",
blank=True,
),
),
(
"css_header_text_color",
colorfield.fields.ColorField(
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name="text color",
blank=True,
),
),
(
"css_header_link_color",
colorfield.fields.ColorField(
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="link color",
blank=True,
),
),
(
"css_header_link_hover_color",
colorfield.fields.ColorField(
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name="link hover color",
blank=True,
),
),
(
"css_module_background_color",
colorfield.fields.ColorField(
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name="background color",
blank=True,
),
),
(
"css_module_text_color",
colorfield.fields.ColorField(
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
blank=True,
),
),
(
"css_module_link_color",
colorfield.fields.ColorField(
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="link color",
blank=True,
),
),
(
"css_module_link_hover_color",
colorfield.fields.ColorField(
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name="link hover color",
blank=True,
),
),
(
"css_module_rounded_corners",
models.BooleanField(
default=True,
verbose_name="rounded corners",
),
),
(
"css_generic_link_color",
colorfield.fields.ColorField(
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name="link color",
blank=True,
),
),
(
"css_generic_link_hover_color",
colorfield.fields.ColorField(
default="#156641",
help_text="#156641",
max_length=10,
verbose_name="link hover color",
blank=True,
),
),
(
"css_save_button_background_color",
colorfield.fields.ColorField(
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name="background color",
blank=True,
),
),
(
"css_save_button_background_hover_color",
colorfield.fields.ColorField(
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name="background hover color",
blank=True,
),
),
(
"css_save_button_text_color",
colorfield.fields.ColorField(
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
blank=True,
),
),
(
"css_delete_button_background_color",
colorfield.fields.ColorField(
default="#BA2121",
help_text="#BA2121",
max_length=10,
verbose_name="background color",
blank=True,
),
),
(
"css_delete_button_background_hover_color",
colorfield.fields.ColorField(
default="#A41515",
help_text="#A41515",
max_length=10,
verbose_name="background hover color",
blank=True,
),
),
(
"css_delete_button_text_color",
colorfield.fields.ColorField(
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
blank=True,
),
),
(
"css",
models.TextField(
blank=True,
),
),
(
"list_filter_dropdown",
models.BooleanField(
default=False,
),
),
],
options={
'verbose_name': 'Theme',
'verbose_name_plural': 'Themes',
"verbose_name": "Theme",
"verbose_name_plural": "Themes",
},
),
]

View File

@ -0,0 +1,66 @@
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="list_filter_dropdown",
field=models.BooleanField(
default=False,
verbose_name="use dropdown",
),
),
migrations.AddField(
model_name="theme",
name="related_modal_active",
field=models.BooleanField(
default=True,
verbose_name="active",
),
),
migrations.AddField(
model_name="theme",
name="related_modal_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#000000",
help_text="#000000",
max_length=10,
verbose_name="background color",
),
),
migrations.AddField(
model_name="theme",
name="related_modal_background_opacity",
field=models.FloatField(
choices=[
(0.1, "10%"),
(0.2, "20%"),
(0.3, "30%"),
(0.4, "40%"),
(0.5, "50%"),
(0.6, "60%"),
(0.7, "70%"),
(0.8, "80%"),
(0.9, "90%"),
],
default=0.2,
help_text="20%",
verbose_name="background opacity",
),
),
migrations.AddField(
model_name="theme",
name="related_modal_rounded_corners",
field=models.BooleanField(
default=True,
verbose_name="rounded corners",
),
),
]

View File

@ -0,0 +1,31 @@
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0002_add_related_modal"),
]
operations = [
migrations.AddField(
model_name="theme",
name="logo_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="logo color",
),
),
migrations.AlterField(
model_name="theme",
name="logo",
field=models.FileField(
blank=True,
help_text="(leave blank to use the default Django logo)",
upload_to="admin-interface/logo/",
),
),
]

View File

@ -0,0 +1,15 @@
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0003_add_logo_color"),
]
operations = [
migrations.RenameField(
model_name="theme",
old_name="css_header_title_color",
new_name="title_color",
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0004_rename_title_color"),
]
operations = [
migrations.AddField(
model_name="theme",
name="recent_actions_visible",
field=models.BooleanField(
default=True,
verbose_name="visible",
),
),
]

View File

@ -0,0 +1,294 @@
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0005_add_recent_actions_visible"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="css_delete_button_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#BA2121",
help_text="#BA2121",
max_length=10,
verbose_name="background color",
),
),
migrations.AlterField(
model_name="theme",
name="css_delete_button_background_hover_color",
field=colorfield.fields.ColorField(
blank=True,
default="#A41515",
help_text="#A41515",
max_length=10,
verbose_name="background hover color",
),
),
migrations.AlterField(
model_name="theme",
name="css_delete_button_text_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
),
),
migrations.AlterField(
model_name="theme",
name="css_generic_link_color",
field=colorfield.fields.ColorField(
blank=True,
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name="link color",
),
),
migrations.AlterField(
model_name="theme",
name="css_generic_link_hover_color",
field=colorfield.fields.ColorField(
blank=True,
default="#156641",
help_text="#156641",
max_length=10,
verbose_name="link hover color",
),
),
migrations.AlterField(
model_name="theme",
name="css_header_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name="background color",
),
),
migrations.AlterField(
model_name="theme",
name="css_header_link_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="link color",
),
),
migrations.AlterField(
model_name="theme",
name="css_header_link_hover_color",
field=colorfield.fields.ColorField(
blank=True,
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name="link hover color",
),
),
migrations.AlterField(
model_name="theme",
name="css_header_text_color",
field=colorfield.fields.ColorField(
blank=True,
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name="text color",
),
),
migrations.AlterField(
model_name="theme",
name="css_module_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name="background color",
),
),
migrations.AlterField(
model_name="theme",
name="css_module_link_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="link color",
),
),
migrations.AlterField(
model_name="theme",
name="css_module_link_hover_color",
field=colorfield.fields.ColorField(
blank=True,
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name="link hover color",
),
),
migrations.AlterField(
model_name="theme",
name="css_module_rounded_corners",
field=models.BooleanField(
default=True,
verbose_name="rounded corners",
),
),
migrations.AlterField(
model_name="theme",
name="css_module_text_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
),
),
migrations.AlterField(
model_name="theme",
name="css_save_button_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name="background color",
),
),
migrations.AlterField(
model_name="theme",
name="css_save_button_background_hover_color",
field=colorfield.fields.ColorField(
blank=True,
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name="background hover color",
),
),
migrations.AlterField(
model_name="theme",
name="css_save_button_text_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="text color",
),
),
migrations.AlterField(
model_name="theme",
name="list_filter_dropdown",
field=models.BooleanField(
default=False,
verbose_name="use dropdown",
),
),
migrations.AlterField(
model_name="theme",
name="logo_visible",
field=models.BooleanField(
default=True,
verbose_name="visible",
),
),
migrations.AlterField(
model_name="theme",
name="name",
field=models.CharField(
default="Django",
max_length=50,
),
),
migrations.AlterField(
model_name="theme",
name="related_modal_active",
field=models.BooleanField(
default=True,
verbose_name="active",
),
),
migrations.AlterField(
model_name="theme",
name="related_modal_background_color",
field=colorfield.fields.ColorField(
blank=True,
default="#000000",
help_text="#000000",
max_length=10,
verbose_name="background color",
),
),
migrations.AlterField(
model_name="theme",
name="related_modal_background_opacity",
field=models.FloatField(
choices=[
(0.1, "10%"),
(0.2, "20%"),
(0.3, "30%"),
(0.4, "40%"),
(0.5, "50%"),
(0.6, "60%"),
(0.7, "70%"),
(0.8, "80%"),
(0.9, "90%"),
],
default=0.2,
help_text="20%",
verbose_name="background opacity",
),
),
migrations.AlterField(
model_name="theme",
name="related_modal_rounded_corners",
field=models.BooleanField(
default=True,
verbose_name="rounded corners",
),
),
migrations.AlterField(
model_name="theme",
name="title",
field=models.CharField(
blank=True,
default="Django administration",
max_length=50,
),
),
migrations.AlterField(
model_name="theme",
name="title_color",
field=colorfield.fields.ColorField(
blank=True,
default="#F5DD5D",
help_text="#F5DD5D",
max_length=10,
verbose_name="title color",
),
),
migrations.AlterField(
model_name="theme",
name="title_visible",
field=models.BooleanField(
default=True,
verbose_name="visible",
),
),
]

View File

@ -0,0 +1,20 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0006_bytes_to_str"),
]
operations = [
migrations.AddField(
model_name="theme",
name="favicon",
field=models.FileField(
blank=True,
help_text="(.ico|.png|.gif - 16x16|32x32 px)",
upload_to="admin-interface/favicon/",
verbose_name="favicon",
),
),
]

View File

@ -0,0 +1,35 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0007_add_favicon"),
]
operations = [
migrations.RemoveField(
model_name="theme",
name="related_modal_background_opacity",
),
migrations.AddField(
model_name="theme",
name="related_modal_background_opacity",
field=models.CharField(
choices=[
("0.1", "10%"),
("0.2", "20%"),
("0.3", "30%"),
("0.4", "40%"),
("0.5", "50%"),
("0.6", "60%"),
("0.7", "70%"),
("0.8", "80%"),
("0.9", "90%"),
],
default="0.3",
help_text="20%",
max_length=5,
verbose_name="background opacity",
),
),
]

View File

@ -0,0 +1,33 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0008_change_related_modal_background_opacity_type"),
]
operations = [
migrations.AddField(
model_name="theme",
name="env",
field=models.CharField(
choices=[
("development", "Development"),
("testing", "Testing"),
("staging", "Staging"),
("production", "Production"),
],
default="development",
max_length=50,
verbose_name="enviroment",
),
),
migrations.AddField(
model_name="theme",
name="env_visible",
field=models.BooleanField(
default=True,
verbose_name="visible",
),
),
]

View File

@ -0,0 +1,70 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0009_add_enviroment"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="active",
field=models.BooleanField(
default=True,
verbose_name="active",
),
),
migrations.AlterField(
model_name="theme",
name="css",
field=models.TextField(
blank=True,
verbose_name="text color",
),
),
migrations.AlterField(
model_name="theme",
name="env",
field=models.CharField(
choices=[
("development", "Development"),
("testing", "Testing"),
("staging", "Staging"),
("production", "Production"),
],
default="development",
max_length=50,
verbose_name="environment",
),
),
migrations.AlterField(
model_name="theme",
name="logo",
field=models.FileField(
blank=True,
help_text="Leave blank to use the default Django logo",
upload_to="admin-interface/logo/",
verbose_name="logo",
),
),
migrations.AlterField(
model_name="theme",
name="name",
field=models.CharField(
default="Django",
max_length=50,
verbose_name="name",
),
),
migrations.AlterField(
model_name="theme",
name="title",
field=models.CharField(
blank=True,
default="Django administration",
max_length=50,
verbose_name="title",
),
),
]

View File

@ -0,0 +1,60 @@
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0010_add_localization"),
]
operations = [
migrations.RenameField(
model_name="theme",
old_name="env",
new_name="env_name",
),
migrations.AlterField(
model_name="theme",
name="env_name",
field=models.CharField(
blank=True,
max_length=50,
verbose_name="name",
),
),
migrations.AddField(
model_name="theme",
name="env_color",
field=colorfield.fields.ColorField(
blank=True,
default="#E74C3C",
help_text=(
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, "
"green: #2ECC71, blue: #3498DB)"
),
max_length=10,
verbose_name="color",
),
),
migrations.RenameField(
model_name="theme",
old_name="env_visible",
new_name="env_visible_in_header",
),
migrations.AlterField(
model_name="theme",
name="env_visible_in_header",
field=models.BooleanField(
default=True,
verbose_name="visible in header (marker and name)",
),
),
migrations.AddField(
model_name="theme",
name="env_visible_in_favicon",
field=models.BooleanField(
default=True,
verbose_name="visible in favicon (marker)",
),
),
]

View File

@ -0,0 +1,33 @@
import colorfield.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0011_add_environment_options"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="logo_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="color",
),
),
migrations.AlterField(
model_name="theme",
name="title_color",
field=colorfield.fields.ColorField(
blank=True,
default="#F5DD5D",
help_text="#F5DD5D",
max_length=10,
verbose_name="color",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0012_update_verbose_names"),
]
operations = [
migrations.AddField(
model_name="theme",
name="related_modal_close_button_visible",
field=models.BooleanField(
default=True,
verbose_name="close button visible",
),
),
]

View File

@ -0,0 +1,20 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0013_add_related_modal_close_button"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="name",
field=models.CharField(
default="Django",
max_length=50,
unique=True,
verbose_name="name",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0014_name_unique"),
]
operations = [
migrations.AddField(
model_name="theme",
name="language_chooser_active",
field=models.BooleanField(
default=True,
verbose_name="active",
),
),
]

View File

@ -0,0 +1,23 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0015_add_language_chooser_active"),
]
operations = [
migrations.AddField(
model_name="theme",
name="language_chooser_display",
field=models.CharField(
choices=[
("code", "code"),
("name", "name"),
],
default="code",
max_length=10,
verbose_name="display",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0016_add_language_chooser_display"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="list_filter_dropdown",
field=models.BooleanField(
default=True,
verbose_name="use dropdown",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0017_change_list_filter_dropdown"),
]
operations = [
migrations.AddField(
model_name="theme",
name="list_filter_sticky",
field=models.BooleanField(
default=True,
verbose_name="sticky position",
),
),
]

View File

@ -0,0 +1,26 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0018_theme_list_filter_sticky"),
]
operations = [
migrations.AddField(
model_name="theme",
name="form_pagination_sticky",
field=models.BooleanField(
default=False,
verbose_name="sticky pagination",
),
),
migrations.AddField(
model_name="theme",
name="form_submit_sticky",
field=models.BooleanField(
default=False,
verbose_name="sticky submit",
),
),
]

View File

@ -0,0 +1,43 @@
import colorfield.fields
from django.db import migrations
from django.db.models import F
def default_link_selected(apps, schema_editor):
Theme = apps.get_model("admin_interface", "Theme")
db_alias = schema_editor.connection.alias
Theme.objects.using(db_alias).update(
css_module_link_selected_color=F("css_module_link_color")
)
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0019_add_form_sticky"),
]
operations = [
migrations.AddField(
model_name="theme",
name="css_module_background_selected_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFCC",
help_text="#FFFFCC",
max_length=10,
verbose_name="background selected color",
),
),
migrations.AddField(
model_name="theme",
name="css_module_link_selected_color",
field=colorfield.fields.ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name="link selected color",
),
),
migrations.RunPython(default_link_selected),
]

View File

@ -0,0 +1,41 @@
from django.core.validators import FileExtensionValidator
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0020_module_selected_colors"),
]
operations = [
migrations.AlterField(
model_name="theme",
name="favicon",
field=models.FileField(
blank=True,
help_text="(.ico|.png|.gif - 16x16|32x32 px)",
upload_to="admin-interface/favicon/",
validators=[
FileExtensionValidator(
allowed_extensions=["gif", "ico", "jpg", "jpeg", "png", "svg"]
)
],
verbose_name="favicon",
),
),
migrations.AlterField(
model_name="theme",
name="logo",
field=models.FileField(
blank=True,
help_text="Leave blank to use the default Django logo",
upload_to="admin-interface/logo/",
validators=[
FileExtensionValidator(
allowed_extensions=["gif", "jpg", "jpeg", "png", "svg"]
)
],
verbose_name="logo",
),
),
]

View File

@ -0,0 +1,28 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0021_file_extension_validator"),
]
operations = [
migrations.AddField(
model_name="theme",
name="logo_max_height",
field=models.PositiveSmallIntegerField(
blank=True,
default=100,
verbose_name="max height",
),
),
migrations.AddField(
model_name="theme",
name="logo_max_width",
field=models.PositiveSmallIntegerField(
blank=True,
default=400,
verbose_name="max width",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0022_add_logo_max_width_and_height"),
]
operations = [
migrations.AddField(
model_name="theme",
name="foldable_apps",
field=models.BooleanField(
default=True,
verbose_name="foldable apps",
),
),
]

View File

@ -0,0 +1,14 @@
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0023_theme_foldable_apps"),
]
operations = [
migrations.RemoveField(
model_name="theme",
name="css",
),
]

View File

@ -0,0 +1,23 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0024_remove_theme_css"),
]
operations = [
migrations.AddField(
model_name="theme",
name="language_chooser_control",
field=models.CharField(
choices=[
("default-select", "Default Select"),
("minimal-select", "Minimal Select"),
],
default="default-select",
max_length=20,
verbose_name="control",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0025_theme_language_chooser_control"),
]
operations = [
migrations.AddField(
model_name="theme",
name="list_filter_highlight",
field=models.BooleanField(
default=True,
verbose_name="highlight active",
),
),
]

View File

@ -0,0 +1,18 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0026_theme_list_filter_highlight"),
]
operations = [
migrations.AddField(
model_name="theme",
name="list_filter_removal_links",
field=models.BooleanField(
default=False,
verbose_name="quick remove links for active filters at top of sidebar",
),
),
]

View File

@ -0,0 +1,26 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0027_theme_list_filter_removal_links"),
]
operations = [
migrations.AddField(
model_name="theme",
name="show_fieldsets_as_tabs",
field=models.BooleanField(
default=False,
verbose_name="fieldsets as tabs",
),
),
migrations.AddField(
model_name="theme",
name="show_inlines_as_tabs",
field=models.BooleanField(
default=False,
verbose_name="inlines as tabs",
),
),
]

View File

@ -0,0 +1,24 @@
import colorfield.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0028_theme_show_fieldsets_as_tabs_and_more"),
]
operations = [
migrations.AddField(
model_name="theme",
name="css_generic_link_active_color",
field=colorfield.fields.ColorField(
blank=True,
default="#29B864",
help_text="#29B864",
image_field=None,
max_length=10,
samples=None,
verbose_name="link active color",
),
),
]

View File

@ -0,0 +1,42 @@
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0029_theme_css_generic_link_active_color"),
]
operations = [
migrations.AddField(
model_name="theme",
name="collapsible_stacked_inlines",
field=models.BooleanField(
default=False,
verbose_name="collapsible stacked inlines",
),
),
migrations.AddField(
model_name="theme",
name="collapsible_stacked_inlines_collapsed",
field=models.BooleanField(
default=True,
verbose_name="collapsible stacked inlines collapsed",
),
),
migrations.AddField(
model_name="theme",
name="collapsible_tabular_inlines",
field=models.BooleanField(
default=False,
verbose_name="collapsible tabular inlines",
),
),
migrations.AddField(
model_name="theme",
name="collapsible_tabular_inlines_collapsed",
field=models.BooleanField(
default=True,
verbose_name="collapsible tabular inlines collapsed",
),
),
]

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0030_theme_collapsible_stacked_inlines_and_more"),
]
operations = [
migrations.AddField(
model_name="theme",
name="demo",
field=models.BooleanField(default=False, verbose_name="demo"),
),
]

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("admin_interface", "0031_add_demo_option"),
]
operations = [
migrations.AddField(
model_name="theme",
name="user",
field=models.ForeignKey('auth.User', on_delete=models.CASCADE, null=True, blank=True, verbose_name="active for user"),
),
]

View File

@ -0,0 +1,37 @@
# Generated by Django 3.2.13 on 2022-04-28 16:03
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('admin_interface', '0032_add_user_option'),
]
operations = [
migrations.RemoveField(
model_name='theme',
name='user',
),
migrations.CreateModel(
name='UserTheme',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('theme', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='admin_interface.theme')),
('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, unique=True)),
],
options={
'verbose_name': 'Users theme',
'verbose_name_plural': 'Users themes',
},
),
migrations.AddField(
model_name='theme',
name='users',
field=models.ManyToManyField(through='admin_interface.UserTheme', to=settings.AUTH_USER_MODEL),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 4.0.4 on 2022-08-25 14:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('admin_interface', '0033_usertheme_m2m'),
]
operations = [
migrations.AlterField(
model_name='theme',
name='demo',
field=models.BooleanField(default=False, verbose_name='is demo'),
),
]

View File

@ -0,0 +1,32 @@
# Generated by Django 4.0.3 on 2022-10-25 13:59
from django.conf import settings
import django.db.models.deletion
from django.db import connection, migrations, models, transaction
def forward(apps, schema_editor):
Theme = apps.get_model("admin_interface", "Theme")
if len(Theme.objects.all()) == 1 and Theme.objects.first().name == 'Django':
with transaction.atomic():
cursor = connection.cursor()
cursor.execute("""truncate table "admin_interface_theme" restart identity;""")
def reverse(apps, schema_editor):
pass
class Migration(migrations.Migration):
dependencies = [
('admin_interface', '0034_alter_theme_demo'),
]
operations = [
migrations.RunPython(forward, reverse),
migrations.AlterField(
model_name='usertheme',
name='user',
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]

View File

@ -0,0 +1,18 @@
# Generated by Django 4.0.3 on 2023-01-30 14:00
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('admin_interface', '0035_auto_20221025_1559'),
]
operations = [
migrations.AddField(
model_name='theme',
name='default',
field=models.BooleanField(default=False, verbose_name='default'),
),
]

View File

@ -1,111 +1,482 @@
# -*- coding: utf-8 -*-
from django.core.files import File
from django.db import models
from django.db.models.signals import post_delete, post_save
import inspect
from colorfield.fields import ColorField
from django.core.validators import FileExtensionValidator
from django.db import models
from django.db.models.signals import post_delete, post_save, pre_save
from django.dispatch import receiver
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
import os
from .cache import del_cached_active_theme
class UserTheme(models.Model):
class Meta:
verbose_name = 'Users theme'
verbose_name_plural = 'Users themes'
user = models.OneToOneField(
'auth.User', on_delete=models.CASCADE, null=True)
theme = models.ForeignKey('Theme', on_delete=models.CASCADE)
class ThemeQuerySet(models.QuerySet):
def get_active(self):
user_theme_manager = UserTheme.objects
objs_active_qs = self.filter(active=True)
objs_active_ls = list(objs_active_qs)
objs_active_count = len(objs_active_ls)
if objs_active_count == 0:
obj = self.all().first()
if obj:
obj.set_active()
# else:
# obj = self.create()
elif objs_active_count == 1:
obj = objs_active_ls[0]
elif objs_active_count > 1:
for frame_record in inspect.stack():
if frame_record[3] == 'get_response':
request = frame_record[0].f_locals['request']
user = request.user
break
else:
request = None
try:
return user_theme_manager.filter(user=user, theme__active=True).first().theme
except:
objs_default_qs = objs_active_qs.filter(default=True)
if len(objs_default_qs) == 0:
obj = objs_active_qs.first()
if obj:
obj.set_default()
else:
obj = objs_default_qs.first()
return obj
class Theme(models.Model):
name = models.CharField(
unique=True,
max_length=50,
default="Django",
verbose_name=_("name"),
)
active = models.BooleanField(
default=True,
verbose_name=_("active"),
)
@staticmethod
def post_migrate_handler(sender, **kwargs):
Theme.get_or_create_default_theme()
demo = models.BooleanField(default=False, verbose_name=_("is demo"))
@staticmethod
def post_delete_handler(instance, **kwargs):
Theme.get_or_create_default_theme()
default = models.BooleanField(default=False, verbose_name="default")
@staticmethod
def post_save_handler(instance, created, **kwargs):
instance.set_active(instance.active)
Theme.get_or_create_default_theme()
users = models.ManyToManyField('auth.User', through=UserTheme)
@staticmethod
def get_or_create_default_theme():
title = models.CharField(
max_length=50,
default=_("Django administration"),
blank=True,
verbose_name=_("title"),
)
title_color = ColorField(
blank=True,
default="#F5DD5D",
help_text="#F5DD5D",
max_length=10,
verbose_name=_("color"),
)
title_visible = models.BooleanField(
default=True,
verbose_name=_("visible"),
)
obj_active = (True if len(list(Theme.objects.filter(active = True))) == 0 else False)
obj, obj_created = Theme.objects.get_or_create(pk = '1', defaults = { 'active':obj_active })
logo = models.FileField(
upload_to="admin-interface/logo/",
blank=True,
validators=[
FileExtensionValidator(
allowed_extensions=["gif", "jpg", "jpeg", "png", "svg"]
)
],
help_text=_("Leave blank to use the default Django logo"),
verbose_name=_("logo"),
)
logo_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("color"),
)
logo_max_width = models.PositiveSmallIntegerField(
blank=True,
default=400,
verbose_name=_("max width"),
)
logo_max_height = models.PositiveSmallIntegerField(
blank=True,
default=100,
verbose_name=_("max height"),
)
logo_visible = models.BooleanField(
default=True,
verbose_name=_("visible"),
)
if not obj.logo:
obj.set_default_logo()
favicon = models.FileField(
upload_to="admin-interface/favicon/",
blank=True,
validators=[
FileExtensionValidator(
allowed_extensions=["gif", "ico", "jpg", "jpeg", "png", "svg"]
)
],
help_text=_("(.ico|.png|.gif - 16x16|32x32 px)"),
verbose_name=_("favicon"),
)
if not obj_created and obj_active:
obj.set_active(True)
env_name = models.CharField(
blank=True,
max_length=50,
verbose_name=_("name"),
)
env_color = ColorField(
blank=True,
default="#E74C3C",
help_text=_(
"(red: #E74C3C, orange: #E67E22, yellow: #F1C40F, "
"green: #2ECC71, blue: #3498DB)"
),
max_length=10,
verbose_name=_("color"),
)
env_visible_in_header = models.BooleanField(
default=True,
verbose_name=_("visible in header (marker and name)"),
)
env_visible_in_favicon = models.BooleanField(
default=True,
verbose_name=_("visible in favicon (marker)"),
)
return (obj, obj_created, )
language_chooser_active = models.BooleanField(
default=True,
verbose_name=_("active"),
)
language_chooser_control_choices = (
("default-select", _("Default Select")),
("minimal-select", _("Minimal Select")),
)
language_chooser_control = models.CharField(
max_length=20,
choices=language_chooser_control_choices,
default="default-select",
verbose_name=_("control"),
)
language_chooser_display_choices = (
("code", _("code")),
("name", _("name")),
)
language_chooser_display = models.CharField(
max_length=10,
choices=language_chooser_display_choices,
default="code",
verbose_name=_("display"),
)
name = models.CharField( max_length = 50, default = 'Django' )
active = models.BooleanField( default = True )
css_header_background_color = ColorField(
blank=True,
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name=_("background color"),
)
css_header_text_color = ColorField(
blank=True,
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name=_("text color"),
)
css_header_link_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("link color"),
)
css_header_link_hover_color = ColorField(
blank=True,
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name=_("link hover color"),
)
title = models.CharField( max_length = 50, default = 'Django administration', blank = True )
title_visible = models.BooleanField( default = True, verbose_name = 'visible' )
css_module_background_color = ColorField(
blank=True,
default="#44B78B",
help_text="#44B78B",
max_length=10,
verbose_name=_("background color"),
)
css_module_background_selected_color = ColorField(
blank=True,
default="#FFFFCC",
help_text="#FFFFCC",
max_length=10,
verbose_name=_("background selected color"),
)
css_module_text_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("text color"),
)
css_module_link_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("link color"),
)
css_module_link_selected_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("link selected color"),
)
css_module_link_hover_color = ColorField(
blank=True,
default="#C9F0DD",
help_text="#C9F0DD",
max_length=10,
verbose_name=_("link hover color"),
)
css_module_rounded_corners = models.BooleanField(
default=True,
verbose_name=_("rounded corners"),
)
logo = models.FileField( upload_to = 'admin-interface/logo/', blank = True )
logo_visible = models.BooleanField( default = True, verbose_name = 'visible' )
css_generic_link_color = ColorField(
blank=True,
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name=_("link color"),
)
css_generic_link_hover_color = ColorField(
blank=True,
default="#156641",
help_text="#156641",
max_length=10,
verbose_name=_("link hover color"),
)
css_generic_link_active_color = ColorField(
blank=True,
default="#29B864",
help_text="#29B864",
max_length=10,
verbose_name=_("link active color"),
)
css_header_background_color = ColorField( blank = True, default = '#0C4B33', help_text = '#0C4B33', verbose_name = 'background color' )
css_header_title_color = ColorField( blank = True, default = '#F5DD5D', help_text = '#F5DD5D', verbose_name = 'title color' )
css_header_text_color = ColorField( blank = True, default = '#44B78B', help_text = '#44B78B', verbose_name = 'text color' )
css_header_link_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'link color' )
css_header_link_hover_color = ColorField( blank = True, default = '#C9F0DD', help_text = '#C9F0DD', verbose_name = 'link hover color' )
css_save_button_background_color = ColorField(
blank=True,
default="#0C4B33",
help_text="#0C4B33",
max_length=10,
verbose_name=_("background color"),
)
css_save_button_background_hover_color = ColorField(
blank=True,
default="#0C3C26",
help_text="#0C3C26",
max_length=10,
verbose_name=_("background hover color"),
)
css_save_button_text_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("text color"),
)
css_module_background_color = ColorField( blank = True, default = '#44B78B', help_text = '#44B78B', verbose_name = 'background color' )
css_module_text_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'text color' )
css_module_link_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'link color' )
css_module_link_hover_color = ColorField( blank = True, default = '#C9F0DD', help_text = '#C9F0DD', verbose_name = 'link hover color' )
css_module_rounded_corners = models.BooleanField( default = True, verbose_name = 'rounded corners' )
css_delete_button_background_color = ColorField(
blank=True,
default="#BA2121",
help_text="#BA2121",
max_length=10,
verbose_name=_("background color"),
)
css_delete_button_background_hover_color = ColorField(
blank=True,
default="#A41515",
help_text="#A41515",
max_length=10,
verbose_name=_("background hover color"),
)
css_delete_button_text_color = ColorField(
blank=True,
default="#FFFFFF",
help_text="#FFFFFF",
max_length=10,
verbose_name=_("text color"),
)
css_generic_link_color = ColorField( blank = True, default = '#0C3C26', help_text = '#0C3C26', verbose_name = 'link color' )
css_generic_link_hover_color = ColorField( blank = True, default = '#156641', help_text = '#156641', verbose_name = 'link hover color' )
related_modal_active = models.BooleanField(
default=True,
verbose_name=_("active"),
)
related_modal_background_color = ColorField(
blank=True,
default="#000000",
help_text="#000000",
max_length=10,
verbose_name=_("background color"),
)
related_modal_background_opacity_choices = (
("0.1", "10%"),
("0.2", "20%"),
("0.3", "30%"),
("0.4", "40%"),
("0.5", "50%"),
("0.6", "60%"),
("0.7", "70%"),
("0.8", "80%"),
("0.9", "90%"),
)
related_modal_background_opacity = models.CharField(
max_length=5,
choices=related_modal_background_opacity_choices,
default="0.3",
help_text="20%",
verbose_name=_("background opacity"),
)
related_modal_rounded_corners = models.BooleanField(
default=True,
verbose_name=_("rounded corners"),
)
related_modal_close_button_visible = models.BooleanField(
default=True,
verbose_name=_("close button visible"),
)
css_save_button_background_color = ColorField( blank = True, default = '#0C4B33', help_text = '#0C4B33', verbose_name = 'background color' )
css_save_button_background_hover_color = ColorField( blank = True, default = '#0C3C26', help_text = '#0C3C26', verbose_name = 'background hover color' )
css_save_button_text_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'text color' )
list_filter_highlight = models.BooleanField(
default=True,
verbose_name=_("highlight active"),
)
list_filter_dropdown = models.BooleanField(
default=True,
verbose_name=_("use dropdown"),
)
list_filter_sticky = models.BooleanField(
default=True,
verbose_name=_("sticky position"),
)
list_filter_removal_links = models.BooleanField(
default=False,
verbose_name=_("quick remove links for active filters at top of sidebar"),
)
css_delete_button_background_color = ColorField( blank = True, default = '#BA2121', help_text = '#BA2121', verbose_name = 'background color' )
css_delete_button_background_hover_color = ColorField( blank = True, default = '#A41515', help_text = '#A41515', verbose_name = 'background hover color' )
css_delete_button_text_color = ColorField( blank = True, default = '#FFFFFF', help_text = '#FFFFFF', verbose_name = 'text color' )
foldable_apps = models.BooleanField(
default=True,
verbose_name=_("foldable apps"),
)
css = models.TextField( blank = True )
show_fieldsets_as_tabs = models.BooleanField(
default=False,
verbose_name=_("fieldsets as tabs"),
)
list_filter_dropdown = models.BooleanField( default = False )
show_inlines_as_tabs = models.BooleanField(
default=False,
verbose_name=_("inlines as tabs"),
)
collapsible_stacked_inlines = models.BooleanField(
default=False,
verbose_name=_("collapsible stacked inlines"),
)
collapsible_stacked_inlines_collapsed = models.BooleanField(
default=True,
verbose_name=_("collapsible stacked inlines collapsed"),
)
collapsible_tabular_inlines = models.BooleanField(
default=False,
verbose_name=_("collapsible tabular inlines"),
)
collapsible_tabular_inlines_collapsed = models.BooleanField(
default=True,
verbose_name=_("collapsible tabular inlines collapsed"),
)
def set_active(self, value):
recent_actions_visible = models.BooleanField(
default=True,
verbose_name=_("visible"),
)
if value:
Theme.objects.exclude(pk = self.pk).update(active = False)
Theme.objects.filter(pk = self.pk).update(active = True)
else:
Theme.objects.filter(pk = self.pk).update(active = False)
form_submit_sticky = models.BooleanField(
default=False,
verbose_name=_("sticky submit"),
)
form_pagination_sticky = models.BooleanField(
default=False,
verbose_name=_("sticky pagination"),
)
objects = ThemeQuerySet.as_manager()
def set_default_logo(self):
logo_filename = 'logo-django.svg'
logo_path = os.path.normpath(os.path.dirname(__file__) + '/data/' + logo_filename)
logo_file = open(logo_path)
self.logo = File(logo_file, logo_filename)
def set_active(self):
self.active = True
self.save()
logo_file.close()
def set_default(self):
self.default = True
self.save()
def save(self):
if self.default:
Theme.objects.update(default=False)
super().save()
class Meta:
app_label = "admin_interface"
verbose_name = _("Theme")
verbose_name_plural = _("Themes")
app_label = 'admin_interface'
verbose_name = 'Theme'
verbose_name_plural = 'Themes'
def __unicode__(self):
return unicode(u'%s' % (self.name, ))
def __str__(self):
return force_str(self.name)
post_delete.connect(Theme.post_delete_handler, sender = Theme)
post_save.connect(Theme.post_save_handler, sender = Theme)
@receiver(post_delete, sender=Theme)
def post_delete_handler(sender, instance, **kwargs):
del_cached_active_theme()
Theme.objects.get_active()
# @receiver(post_save, sender=Theme)
# def post_save_handler(sender, instance, **kwargs):
# del_cached_active_theme()
# if instance.active:
# Theme.objects.exclude(pk=instance.pk).update(active=False)
# Theme.objects.get_active()
# @receiver(pre_save, sender=Theme)
# def pre_save_handler(sender, instance, **kwargs):
# if instance.pk is None:
# try:
# obj = Theme.objects.get(name=instance.name)
# instance.pk = obj.pk
# except Theme.DoesNotExist:
# pass

View File

@ -0,0 +1,29 @@
import django
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
def check_installed_app(app, max_dj_version=None):
dj_version = django.VERSION
installed_apps = settings.INSTALLED_APPS
if max_dj_version is None:
if app not in installed_apps:
raise ImproperlyConfigured(
"'{}' is required, " "add it to settings.INSTALLED_APPS.".format(app)
)
elif dj_version < max_dj_version:
if app not in installed_apps:
raise ImproperlyConfigured(
"'{}' is required before django {}.{}, "
"add it to settings.INSTALLED_APPS.".format(app, *max_dj_version)
)
else:
if app in installed_apps:
raise ImproperlyConfigured(
"'{}' is no more required since django {}.{}, "
"remove it from settings.INSTALLED_APPS.".format(app, *max_dj_version)
)
def check_installed_apps():
check_installed_app("colorfield")

View File

@ -1,82 +0,0 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding model 'Theme'
db.create_table(u'admin_interface_theme', (
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('name', self.gf('django.db.models.fields.CharField')(default='Django', max_length=50)),
('active', self.gf('django.db.models.fields.BooleanField')(default=True)),
('title', self.gf('django.db.models.fields.CharField')(default='Django administration', max_length=50, blank=True)),
('title_visible', self.gf('django.db.models.fields.BooleanField')(default=True)),
('logo', self.gf('django.db.models.fields.files.FileField')(max_length=100, blank=True)),
('logo_visible', self.gf('django.db.models.fields.BooleanField')(default=True)),
('css_header_background_color', self.gf('colorfield.fields.ColorField')(default='#0C4B33', max_length=10, blank=True)),
('css_header_title_color', self.gf('colorfield.fields.ColorField')(default='#F5DD5D', max_length=10, blank=True)),
('css_header_text_color', self.gf('colorfield.fields.ColorField')(default='#44B78B', max_length=10, blank=True)),
('css_header_link_color', self.gf('colorfield.fields.ColorField')(default='#FFFFFF', max_length=10, blank=True)),
('css_header_link_hover_color', self.gf('colorfield.fields.ColorField')(default='#C9F0DD', max_length=10, blank=True)),
('css_module_background_color', self.gf('colorfield.fields.ColorField')(default='#44B78B', max_length=10, blank=True)),
('css_module_text_color', self.gf('colorfield.fields.ColorField')(default='#FFFFFF', max_length=10, blank=True)),
('css_module_link_color', self.gf('colorfield.fields.ColorField')(default='#FFFFFF', max_length=10, blank=True)),
('css_module_link_hover_color', self.gf('colorfield.fields.ColorField')(default='#C9F0DD', max_length=10, blank=True)),
('css_module_rounded_corners', self.gf('django.db.models.fields.BooleanField')(default=True)),
('css_generic_link_color', self.gf('colorfield.fields.ColorField')(default='#0C3C26', max_length=10, blank=True)),
('css_generic_link_hover_color', self.gf('colorfield.fields.ColorField')(default='#156641', max_length=10, blank=True)),
('css_save_button_background_color', self.gf('colorfield.fields.ColorField')(default='#0C4B33', max_length=10, blank=True)),
('css_save_button_background_hover_color', self.gf('colorfield.fields.ColorField')(default='#0C3C26', max_length=10, blank=True)),
('css_save_button_text_color', self.gf('colorfield.fields.ColorField')(default='#FFFFFF', max_length=10, blank=True)),
('css_delete_button_background_color', self.gf('colorfield.fields.ColorField')(default='#BA2121', max_length=10, blank=True)),
('css_delete_button_background_hover_color', self.gf('colorfield.fields.ColorField')(default='#A41515', max_length=10, blank=True)),
('css_delete_button_text_color', self.gf('colorfield.fields.ColorField')(default='#FFFFFF', max_length=10, blank=True)),
('css', self.gf('django.db.models.fields.TextField')(blank=True)),
('list_filter_dropdown', self.gf('django.db.models.fields.BooleanField')(default=False)),
))
db.send_create_signal('admin_interface', ['Theme'])
def backwards(self, orm):
# Deleting model 'Theme'
db.delete_table(u'admin_interface_theme')
models = {
'admin_interface.theme': {
'Meta': {'object_name': 'Theme'},
'active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'css': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
'css_delete_button_background_color': ('colorfield.fields.ColorField', [], {'default': "'#BA2121'", 'max_length': '10', 'blank': 'True'}),
'css_delete_button_background_hover_color': ('colorfield.fields.ColorField', [], {'default': "'#A41515'", 'max_length': '10', 'blank': 'True'}),
'css_delete_button_text_color': ('colorfield.fields.ColorField', [], {'default': "'#FFFFFF'", 'max_length': '10', 'blank': 'True'}),
'css_generic_link_color': ('colorfield.fields.ColorField', [], {'default': "'#0C3C26'", 'max_length': '10', 'blank': 'True'}),
'css_generic_link_hover_color': ('colorfield.fields.ColorField', [], {'default': "'#156641'", 'max_length': '10', 'blank': 'True'}),
'css_header_background_color': ('colorfield.fields.ColorField', [], {'default': "'#0C4B33'", 'max_length': '10', 'blank': 'True'}),
'css_header_link_color': ('colorfield.fields.ColorField', [], {'default': "'#FFFFFF'", 'max_length': '10', 'blank': 'True'}),
'css_header_link_hover_color': ('colorfield.fields.ColorField', [], {'default': "'#C9F0DD'", 'max_length': '10', 'blank': 'True'}),
'css_header_text_color': ('colorfield.fields.ColorField', [], {'default': "'#44B78B'", 'max_length': '10', 'blank': 'True'}),
'css_header_title_color': ('colorfield.fields.ColorField', [], {'default': "'#F5DD5D'", 'max_length': '10', 'blank': 'True'}),
'css_module_background_color': ('colorfield.fields.ColorField', [], {'default': "'#44B78B'", 'max_length': '10', 'blank': 'True'}),
'css_module_link_color': ('colorfield.fields.ColorField', [], {'default': "'#FFFFFF'", 'max_length': '10', 'blank': 'True'}),
'css_module_link_hover_color': ('colorfield.fields.ColorField', [], {'default': "'#C9F0DD'", 'max_length': '10', 'blank': 'True'}),
'css_module_rounded_corners': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'css_module_text_color': ('colorfield.fields.ColorField', [], {'default': "'#FFFFFF'", 'max_length': '10', 'blank': 'True'}),
'css_save_button_background_color': ('colorfield.fields.ColorField', [], {'default': "'#0C4B33'", 'max_length': '10', 'blank': 'True'}),
'css_save_button_background_hover_color': ('colorfield.fields.ColorField', [], {'default': "'#0C3C26'", 'max_length': '10', 'blank': 'True'}),
'css_save_button_text_color': ('colorfield.fields.ColorField', [], {'default': "'#FFFFFF'", 'max_length': '10', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'list_filter_dropdown': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'logo': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'blank': 'True'}),
'logo_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'default': "'Django'", 'max_length': '50'}),
'title': ('django.db.models.fields.CharField', [], {'default': "'Django administration'", 'max_length': '50', 'blank': 'True'}),
'title_visible': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
}
}
complete_apps = ['admin_interface']

View File

@ -0,0 +1,20 @@
/** global: django */
if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined') {
(function($) {
'use strict';
$(document).ready(function() {
$('.cancel-link').click(function(e) {
e.preventDefault();
var parentWindow = window.parent;
if (parentWindow && typeof(parentWindow.dismissRelatedObjectModal) === 'function' && parentWindow !== window) {
parentWindow.dismissRelatedObjectModal();
} else {
// fallback to default behavior
window.history.back();
}
return false;
});
});
})(django.jQuery);
}

View File

@ -0,0 +1,49 @@
/*global gettext*/
/* copied from django 4.0.7 */
'use strict';
{
window.addEventListener('load', function() {
// Add anchor tag for Show/Hide link
const fieldsets = document.querySelectorAll('fieldset.collapse');
for (const [i, elem] of fieldsets.entries()) {
// Don't hide if fields in this fieldset have errors
if (elem.querySelectorAll('div.errors, ul.errorlist').length === 0) {
const h2 = elem.querySelector('h2');
const link = document.createElement('a');
link.id = 'fieldsetcollapser' + i;
link.className = 'collapse-toggle';
link.href = '#';
// changed: can opt into starting visible
if (elem.classList.contains('expanded')) {
link.textContent = gettext('Hide');
} else {
link.textContent = gettext('Show');
elem.classList.add('collapsed');
}
h2.appendChild(document.createTextNode(' ('));
h2.appendChild(link);
h2.appendChild(document.createTextNode(')'));
}
}
// Add toggle to hide/show anchor tag
const toggleFunc = function(ev) {
if (ev.target.matches('.collapse-toggle')) {
ev.preventDefault();
ev.stopPropagation();
const fieldset = ev.target.closest('fieldset');
if (fieldset.classList.contains('collapsed')) {
// Show
ev.target.textContent = gettext('Hide');
fieldset.classList.remove('collapsed');
} else {
// Hide
ev.target.textContent = gettext('Show');
fieldset.classList.add('collapsed');
}
}
};
document.querySelectorAll('fieldset.module').forEach(function(el) {
el.addEventListener('click', toggleFunc);
});
});
}

View File

@ -0,0 +1,48 @@
(function() {
'use strict';
var windowRef = window;
var windowRefProxy;
var windowName, widgetName;
var openerRef = windowRef.opener;
if (!openerRef) {
// related modal is active
openerRef = windowRef.parent;
windowName = windowRef.name;
widgetName = windowName.replace(/^(change|add|delete|lookup)_/, '');
if (typeof(openerRef.id_to_windowname) === 'function') {
// django < 3.1 compatibility
widgetName = openerRef.id_to_windowname(widgetName);
}
windowRefProxy = {
name: widgetName,
location: windowRef.location,
close: function() {
openerRef.dismissRelatedObjectModal();
}
};
windowRef = windowRefProxy;
}
// default django popup_response.js
var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
switch (initData.action) {
case 'change':
if (typeof(openerRef.dismissChangeRelatedObjectPopup) === 'function') {
openerRef.dismissChangeRelatedObjectPopup(windowRef, initData.value, initData.obj, initData.new_value);
}
break;
case 'delete':
if (typeof(openerRef.dismissDeleteRelatedObjectPopup) === 'function') {
openerRef.dismissDeleteRelatedObjectPopup(windowRef, initData.value);
}
break;
default:
if (typeof(openerRef.dismissAddRelatedObjectPopup) === 'function') {
openerRef.dismissAddRelatedObjectPopup(windowRef, initData.value, initData.obj);
}
break;
}
})();

View File

@ -0,0 +1,48 @@
/** global: django */
if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
{
(function($) {
$(document).ready(function(){
function collapsibleInline(scope, collapsed) {
var fieldsetCollapsed = collapsed;
var fieldsetEl = $(scope).find('> fieldset.module');
fieldsetEl.addClass('collapse');
var fieldsetHasErrors = (fieldsetEl.children('.errors').length > 0);
if (fieldsetHasErrors === true) {
fieldsetCollapsed = false;
}
if (fieldsetCollapsed === true) {
fieldsetEl.addClass('collapsed');
}
var collapseToggleText = (fieldsetCollapsed ? gettext('Show') : gettext('Hide'));
var collapseToggleHTML = ' (<a class="collapse-toggle" href="#">' + collapseToggleText + '</a>)';
var headerEl = fieldsetEl.find('> h2,> h3');
if (headerEl.find(".collapse-toggle").length === 0) {
// don't add collapse toggle button if already present
headerEl.append(collapseToggleHTML);
}
}
var stackedInlinesOptionSel = '.admin-interface.collapsible-stacked-inlines';
var stackedInlinesSel = stackedInlinesOptionSel + ' .inline-group[data-inline-type="stacked"]';
var stackedInlinesCollapsed = $(stackedInlinesOptionSel).hasClass('collapsible-stacked-inlines-collapsed');
var tabularInlinesOptionSel = '.admin-interface.collapsible-tabular-inlines';
var tabularInlinesSel = tabularInlinesOptionSel + ' .inline-group[data-inline-type="tabular"] .inline-related.tabular';
var tabularInlinesCollapsed = $(stackedInlinesOptionSel).hasClass('collapsible-tabular-inlines-collapsed');
$(stackedInlinesSel).each(function() {
collapsibleInline(this, stackedInlinesCollapsed);
});
$(tabularInlinesSel).each(function() {
collapsibleInline(this, tabularInlinesCollapsed);
});
});
})(django.jQuery);
}

Some files were not shown because too many files have changed in this diff Show More