1{
2 lib,
3 anyascii,
4 beautifulsoup4,
5 buildPythonPackage,
6 callPackage,
7 django,
8 django-filter,
9 django-modelcluster,
10 django-taggit,
11 django-treebeard,
12 djangorestframework,
13 draftjs-exporter,
14 fetchPypi,
15 html5lib,
16 l18n,
17 laces,
18 openpyxl,
19 permissionedforms,
20 pillow,
21 pythonOlder,
22 requests,
23 telepath,
24 willow,
25}:
26
27buildPythonPackage rec {
28 pname = "wagtail";
29 version = "6.0.2";
30 format = "setuptools";
31
32 disabled = pythonOlder "3.8";
33
34 src = fetchPypi {
35 inherit pname version;
36 hash = "sha256-58/DwPU/swLxeY8OAqesYHirAusOhwPA9xzL0/GOOG8=";
37 };
38
39 postPatch = ''
40 substituteInPlace setup.py \
41 --replace "django-filter>=23.3,<24" "django-filter>=23.3,<24.3"
42 '';
43
44 propagatedBuildInputs = [
45 anyascii
46 beautifulsoup4
47 django
48 django-treebeard
49 django-filter
50 django-modelcluster
51 django-taggit
52 djangorestframework
53 draftjs-exporter
54 html5lib
55 l18n
56 laces
57 openpyxl
58 permissionedforms
59 pillow
60 requests
61 telepath
62 willow
63 ] ++ willow.optional-dependencies.heif;
64
65 # Tests are in separate derivation because they require a package that depends
66 # on wagtail (wagtail-factories)
67 doCheck = false;
68
69 passthru.tests.wagtail = callPackage ./tests.nix { };
70
71 pythonImportsCheck = [ "wagtail" ];
72
73 meta = with lib; {
74 description = "A Django content management system focused on flexibility and user experience";
75 mainProgram = "wagtail";
76 homepage = "https://github.com/wagtail/wagtail";
77 changelog = "https://github.com/wagtail/wagtail/blob/v${version}/CHANGELOG.txt";
78 license = licenses.bsd3;
79 maintainers = with maintainers; [ sephi ];
80 };
81}