1{ 2 lib, 3 buildNpmPackage, 4 buildPythonPackage, 5 pythonOlder, 6 fetchFromGitHub, 7 setuptools, 8 django, 9}: 10let 11 pname = "django-admin-sortable2"; 12 version = "2.2.8"; 13 14 src = fetchFromGitHub { 15 owner = "jrief"; 16 repo = "django-admin-sortable2"; 17 tag = version; 18 hash = "sha256-T5dppM/o305GCg5uU7re/FdjhXFUyiH/DO2JTVf6Xgg="; 19 }; 20 21 assets = buildNpmPackage { 22 pname = "${pname}-assets"; 23 inherit version src; 24 npmDepsHash = "sha256-zM2iSCrGX5sS7Ysmmo8nR+/V9pMOatN6DX/G+hGdFEU="; 25 26 installPhase = '' 27 runHook preInstall 28 29 install -Dm644 adminsortable2/static/adminsortable2/js/*.js -t $out 30 31 runHook postInstall 32 ''; 33 }; 34in 35 36buildPythonPackage rec { 37 inherit pname version src; 38 pyproject = true; 39 40 disabled = pythonOlder "3.9"; 41 42 build-system = [ setuptools ]; 43 44 dependencies = [ django ]; 45 46 preBuild = '' 47 install -Dm644 ${assets}/*.js -t adminsortable2/static/adminsortable2/js 48 ''; 49 50 pythonImportsCheck = [ "adminsortable2" ]; 51 52 # Tests are very slow (end-to-end with playwright) 53 doCheck = false; 54 55 meta = { 56 description = "Generic drag-and-drop ordering for objects in the Django admin interface"; 57 homepage = "https://github.com/jrief/django-admin-sortable2"; 58 changelog = "https://github.com/jrief/django-admin-sortable2/blob/${src.tag}/CHANGELOG.md"; 59 license = lib.licenses.mit; 60 maintainers = with lib.maintainers; [ sephi ]; 61 }; 62}