diff --git a/pkgs/development/python-modules/django-filingcabinet/default.nix b/pkgs/development/python-modules/django-filingcabinet/default.nix new file mode 100644 index 00000000000000..bc9e0b177103eb --- /dev/null +++ b/pkgs/development/python-modules/django-filingcabinet/default.nix @@ -0,0 +1,110 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + django, + pytestCheckHook, + setuptools, + celery, + django-taggit, + feedgen, + reportlab, + jsonschema, + wand, + django-filter, + django-treebeard, + djangorestframework, + pikepdf, + pypdf, + pycryptodome, + python-poppler, + zipstream-ng, + django-json-widget, + factory-boy, + pytest-django, + camelot, + pytesseract, + pytest-factoryboy, + poppler_utils, + pytest-playwright, +}: + +buildPythonPackage rec { + pname = "django-filingcabinet"; + version = "0-unstable-2024-09-09"; + pyproject = true; + + src = fetchFromGitHub { + owner = "okfde"; + repo = "django-filingcabinet"; + # No release tagged yet on GitHub + # https://github.com/okfde/django-filingcabinet/issues/69 + rev = "3b1dc92d89da48af9851e37a22ac1310922b9c73"; + hash = "sha256-Ad2R9Tw6LmwIUMve2pmofKCAbsR/u4Exh92uoztjUaQ="; + }; + + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "zipstream" "zipstream-ng" + ''; + + build-system = [ setuptools ]; + + dependencies = [ + celery + django + django-filter + django-json-widget + django-taggit + django-treebeard + djangorestframework + feedgen + jsonschema + pikepdf + pycryptodome + pypdf + python-poppler + reportlab + wand + zipstream-ng + ]; + + optional-dependencies = { + tabledetection = [ camelot ]; + ocr = [ pytesseract ]; + # Dependencies not yet packaged + #webp = [ webp ]; + #annotate = [ fcdocs-annotate ]; + }; + + nativeCheckInputs = [ + poppler_utils + pytest-django + pytest-factoryboy + pytest-playwright + pytestCheckHook + ]; + + disabledTests = [ + # playwright._impl._errors.Error: BrowserType.launch: Executable doesn't exist at /homeless-shelter/.cache/ms-playwright/chromium-1134/chrome-linux/chrome + "test_document_viewer" + "test_keyboard_scroll" + "test_number_input_scroll" + "test_sidebar_hide" + "test_show_search_bar" + "test_document_viewer_load_images_progressively" + ]; + + preCheck = '' + export DJANGO_SETTINGS_MODULE="test_project.settings" + ''; + + pythonImportCheck = [ "filingcabinet" ]; + + meta = { + description = "Django app that manages documents with pages, annotations and collections"; + homepage = "https://github.com/okfde/django-filingcabinet"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.onny ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 91e0bd6f7b1b90..392e1ee6dd707f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3423,6 +3423,8 @@ self: super: with self; { django-filer = callPackage ../development/python-modules/django-filer { }; + django-filingcabinet = callPackage ../development/python-modules/django-filingcabinet { }; + django-filter = callPackage ../development/python-modules/django-filter { }; django-formtools = callPackage ../development/python-modules/django-formtools { };