gnu: icecat: Use system harfbuzz and graphite2 libraries.
[jackhill/guix/guix.git] / gnu / packages / django.scm
CommitLineData
d18197af
HG
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
23b563dc 3;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
e1f06e11 4;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
f737d9f2 5;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
40fac51a 6;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
d18197af
HG
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23(define-module (gnu packages django)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix build-system python)
28 #:use-module (gnu packages)
29 #:use-module (gnu packages base)
b939953b 30 #:use-module (gnu packages databases)
ac257f12 31 #:use-module (gnu packages check)
1b2f753d 32 #:use-module (gnu packages python)
33dc54b0
RW
33 #:use-module (gnu packages python-web)
34 #:use-module (gnu packages time))
d18197af
HG
35
36(define-public python-django
37 (package
38 (name "python-django")
777f485e 39 (version "1.10.8")
d18197af
HG
40 (source (origin
41 (method url-fetch)
42 (uri (pypi-uri "Django" version))
43 (sha256
44 (base32
777f485e 45 "1fwqqh2zbcy9dy0lnvk338s11llnnfz2k56bf84w0wv56ayq7vyl"))))
d18197af
HG
46 (build-system python-build-system)
47 (arguments
48 '(#:phases
49 (modify-phases %standard-phases
50 (add-before 'check 'set-tzdir
51 (lambda* (#:key inputs #:allow-other-keys)
52 ;; The test-suite tests timezone-dependent functions, thus tzdata
53 ;; needs to be available.
54 (setenv "TZDIR"
55 (string-append (assoc-ref inputs "tzdata")
56 "/share/zoneinfo"))
57 #t))
58 (replace 'check
59 (lambda _
60 (setenv "PYTHONPATH"
61 (string-append ".:" (getenv "PYTHONPATH")))
62 (zero? (system* "python" "tests/runtests.py")))))))
63 ;; TODO: Install extras/django_bash_completion.
dfdaea32 64 (native-inputs
04941fc5 65 `(("tzdata", tzdata-for-tests)
dfdaea32 66 ;; bcrypt and argon2-cffi are extra requirements not yet in guix
d18197af
HG
67 ;;("python-argon2-cffi" ,python-argon2-cffi) ; >= 16.1.0
68 ;;("python-bcrypt" ,python-bcrypt) ; not py-bcrypt!
dfdaea32
HG
69 ;; Remaining packages are test requirements taken from
70 ;; tests/requirements/py3.txt
d18197af
HG
71 ("python-docutils" ,python-docutils)
72 ;; optional for tests: ("python-geoip2" ,python-geoip2)
73 ("python-jinja2" ,python-jinja2) ; >= 2.7
74 ;; optional for tests: ("python-memcached" ,python-memcached)
75 ("python-numpy" ,python-numpy)
76 ("python-pillow" ,python-pillow)
77 ("python-pyyaml" ,python-pyyaml)
78 ("python-pytz" ,python-pytz)
79 ;; optional for tests: ("python-selenium" ,python-selenium)
80 ("python-sqlparse" ,python-sqlparse)
81 ("python-tblib" ,python-tblib)))
82 (home-page "http://www.djangoproject.com/")
83 (synopsis "High-level Python Web framework")
84 (description
85 "Django is a high-level Python Web framework that encourages rapid
86development and clean, pragmatic design. It provides many tools for building
87any Web site. Django focuses on automating as much as possible and adhering
88to the @dfn{don't repeat yourself} (DRY) principle.")
89 (license license:bsd-3)
33b25201
MB
90 (properties `((python2-variant . ,(delay python2-django))
91 (cpe-name . "django")))))
d18197af
HG
92
93(define-public python2-django
94 (let ((base (package-with-python2 (strip-python2-variant python-django))))
95 (package
96 (inherit base)
dfdaea32
HG
97 (native-inputs
98 `(;; Test requirements for Python 2 taken from
99 ;; tests/requirements/py3.txt: enum34 and mock.
d18197af
HG
100 ("python2-enum34" ,python2-enum34)
101 ("python2-mock" ,python2-mock)
102 ;; When adding memcached mind: for Python 2 memcached <= 1.53 is
103 ;; required.
cda5e76f 104 ,@(package-native-inputs base))))))
b53fc294
HG
105
106(define-public python-django-simple-math-captcha
107 (package
108 (name "python-django-simple-math-captcha")
109 (version "1.0.7")
110 (source (origin
111 (method url-fetch)
112 (uri (pypi-uri "django-simple-math-captcha" version))
113 (sha256
114 (base32
115 "0906hms6y6znjhpd0g4wmzv9vcla4brkdpsm4zha9zdj8g5vq2hd"))))
116 (build-system python-build-system)
281cc11c
MB
117 (arguments
118 ;; FIXME: Upstream uses a 'runtests.py' script that is not
119 ;; present in the pypi tarball.
120 '(#:tests? #f))
b53fc294
HG
121 (propagated-inputs
122 `(("python-django" ,python-django)))
b53fc294
HG
123 (home-page "https://github.com/alsoicode/django-simple-math-captcha")
124 (synopsis "Easy-to-use math field/widget captcha for Django forms")
125 (description
126 "A multi-value-field that presents a human answerable question,
127with no settings.py configuration necessary, but instead can be configured
128with arguments to the field constructor.")
129 (license license:asl2.0)))
130
131(define-public python2-django-simple-math-captcha
132 (package-with-python2 python-django-simple-math-captcha))
23b563dc
EF
133
134(define-public python-pytest-django
135 (package
136 (name "python-pytest-django")
919d4ad0 137 (version "3.1.2")
23b563dc
EF
138 (source (origin
139 (method url-fetch)
140 (uri (pypi-uri "pytest-django" version))
141 (sha256
142 (base32
919d4ad0 143 "02932m2sr8x22m4az8syr8g835g4ak77varrnw71n6xakmdcr303"))))
23b563dc
EF
144 (build-system python-build-system)
145 (arguments
1f31a5e0
MB
146 `(#:tests? #f ; FIXME: How to run tests?
147 #:phases
23b563dc
EF
148 (modify-phases %standard-phases
149 (add-after 'unpack 'patch-setuppy
150 (lambda _
151 (substitute* "setup.py"
919d4ad0 152 (("setuptools_scm==1.11.1") "setuptools_scm"))
23b563dc
EF
153 #t)))))
154 (native-inputs
d18c69aa
EF
155 `(("python-django" ,python-django)
156 ("python-setuptools-scm" ,python-setuptools-scm)))
f22efa01 157 (propagated-inputs
2dd12924 158 `(("python-pytest" ,python-pytest)))
23b563dc
EF
159 (home-page "http://pytest-django.readthedocs.org/")
160 (synopsis "Django plugin for py.test")
161 (description "Pytest-django is a plugin for py.test that provides a set of
162useful tools for testing Django applications and projects.")
23b563dc
EF
163 (license license:bsd-3)))
164
165(define-public python2-pytest-django
5c31f4aa 166 (package-with-python2 python-pytest-django))
894810c7
EF
167
168(define-public python-django-filter
169 (package
170 (name "python-django-filter")
171 (version "0.14.0")
172 (source (origin
173 (method url-fetch)
174 (uri (pypi-uri "django-filter" version))
175 (sha256
176 (base32
177 "0f78hmk8c903zwfzlsiw7ivgag81ymmb5hi73rzxbhnlg2v0l3fx"))))
178 (build-system python-build-system)
55ab6451
MB
179 (arguments
180 '(#:phases
181 (modify-phases %standard-phases
182 (replace 'check
183 (lambda _
184 (zero? (system* "python" "runtests.py")))))))
fa7cd333
EF
185 (native-inputs
186 `(("python-django" ,python-django)
187 ("python-mock" ,python-mock)))
894810c7
EF
188 (home-page "https://django-filter.readthedocs.io/en/latest/")
189 (synopsis "Reusable Django application to filter querysets dynamically")
190 (description
191 "Django-filter is a generic, reusable application to alleviate writing
192some of the more mundane bits of view code. Specifically, it allows users to
193filter down a queryset based on a model’s fields, displaying the form to let
194them do this.")
894810c7
EF
195 (license license:bsd-3)))
196
197(define-public python2-django-filter
5c31f4aa 198 (package-with-python2 python-django-filter))
e1f06e11 199
200(define-public python-django-allauth
201 (package
202 (name "python-django-allauth")
203 (version "0.30.0")
204 (source
205 (origin
206 (method url-fetch)
207 (uri (pypi-uri "django-allauth" version))
208 (sha256
209 (base32
210 "1fslqc5qqb0b66yscvkyjwfv8cnbfx5nlkpnwimyb3pf1nc1w7r3"))))
211 (build-system python-build-system)
17dc2a09
CB
212 (arguments
213 '(#:phases
214 (modify-phases %standard-phases
215 ;; TODO: Tagging the tests requiring the web could be done upstream.
216 (add-before 'check 'skip-test-requiring-network-access
217 (lambda _
218 (substitute* "allauth/socialaccount/providers/openid/tests.py"
219 (("def test_login")
220 "from django.test import tag
221 @tag('requires-web')
222 def test_login"))))
223 (replace 'check
224 (lambda _
225 (setenv "DJANGO_SETTINGS_MODULE" "test_settings")
226 (zero? (system*
227 "django-admin"
228 "test"
229 "allauth"
230 "--verbosity=2"
231 "--exclude-tag=requires-web")))))))
e1f06e11 232 (propagated-inputs
233 `(("python-openid" ,python-openid)
234 ("python-requests" ,python-requests)
235 ("python-requests-oauthlib" ,python-requests-oauthlib)))
236 (native-inputs
237 `(("python-mock" ,python-mock)))
238 (inputs
239 `(("python-django" ,python-django)))
240 (home-page "https://github.com/pennersr/django-allauth")
241 (synopsis "Set of Django applications addressing authentication")
242 (description
243 "Integrated set of Django applications addressing authentication,
244registration, account management as well as 3rd party (social)
245account authentication.")
246 (license license:expat)))
247
248(define-public python2-django-allauth
249 (package-with-python2 python-django-allauth))
14d8f653 250
251(define-public python-django-gravatar2
252 (package
253 (name "python-django-gravatar2")
254 (version "1.4.0")
255 (source
256 (origin
257 (method url-fetch)
258 (uri (pypi-uri "django-gravatar2" version))
259 (sha256
260 (base32
261 "1v4qyj6kms321yw0z2g1kch6b2dskmv6fjd6sfxzwr4xshq9mccl"))))
262 (build-system python-build-system)
263 (inputs
264 `(("python-django" ,python-django)))
265 (home-page "https://github.com/twaddington/django-gravatar")
266 (synopsis "Gravatar support for Django, improved version")
267 (description
268 "Essential Gravatar support for Django. Features helper methods,
269templatetags and a full test suite.")
270 (license license:expat)))
271
272(define-public python2-django-gravatar2
273 (package-with-python2 python-django-gravatar2))
01c64cb8
JL
274
275(define-public python-django-assets
276 (package
277 (name "python-django-assets")
278 (version "0.12")
279 (source (origin
280 (method url-fetch)
281 (uri (pypi-uri "django-assets" version))
282 (sha256
283 (base32
284 "0y0007fvkn1rdlj2g0y6k1cnkx53kxab3g8i85i0rd58k335p365"))))
285 (build-system python-build-system)
286 (arguments
287 `(#:phases
288 (modify-phases %standard-phases
289 (add-before 'check 'fix-tests
290 (lambda _
291 (begin
292 ;; https://github.com/miracle2k/django-assets/issues/87
293 (substitute* "tests/__init__.py"
294 (("settings.configure.*")
295 (string-append
296 "settings.configure(\n"
297 "INSTALLED_APPS=['django_assets', "
298 "'django.contrib.staticfiles'],\n"
299 "TEMPLATES=[{'BACKEND': "
300 "'django.template.backends.django.DjangoTemplates'}],\n"
301 ")\n")))
302 ;; These tests fail
303 (substitute* "tests/test_django.py"
304 (("TestLoader") "NoTestLoader"))))))))
305 (native-inputs
306 `(("python-nose" ,python-nose)))
307 (propagated-inputs
308 `(("python-django" ,python-django)
309 ("python-webassets" ,python-webassets)))
310 (home-page "https://github.com/miracle2k/django-assets")
311 (synopsis "Asset management for Django")
312 (description
313 "Asset management for Django, to compress and merge CSS and Javascript
314files. Integrates the webassets library with Django, adding support for
315merging, minifying and compiling CSS and Javascript files.")
316 (license license:bsd-2)))
317
318(define-public python2-django-assets
319 (package-with-python2 python-django-assets))
6c17e963
JL
320
321(define-public python-django-jsonfield
322 (package
323 (name "python-django-jsonfield")
324 (version "1.0.3")
325 (source (origin
326 (method url-fetch)
327 (uri (pypi-uri "jsonfield" version))
328 (sha256
329 (base32
330 "19x4lak0hg9c20r7mvf27w7i8r6i4sg2g0ypmlmp2665fnk76zvy"))))
331 (build-system python-build-system)
332 (arguments
333 `(#:phases
334 (modify-phases %standard-phases
335 (add-before 'check 'fix-tests
336 (lambda _
337 (substitute* "jsonfield/tests.py"
338 (("django.forms.util") "django.forms.utils")))))))
339 (propagated-inputs
340 `(("python-django" ,python-django)))
341 (home-page "https://github.com/bradjasper/django-jsonfield")
342 (synopsis "Store validated JSON in your model")
343 (description
344 "Django-jsonfield is a reusable Django field that allows you to store
345validated JSON in your model. It silently takes care of serialization. To
346use, simply add the field to one of your models.")
347 (license license:expat)))
348
349(define-public python2-django-jsonfield
350 (package-with-python2 python-django-jsonfield))
a326384b
JL
351
352(define-public python-dj-database-url
353 (package
354 (name "python-dj-database-url")
355 (version "0.4.2")
356 (source (origin
357 (method url-fetch)
358 (uri (pypi-uri "dj-database-url" version))
359 (sha256
360 (base32
361 "024zbkc5rli4hia9lz9g8kf1zxhb2gwawj5abf67i7gf8n22v0x6"))))
362 (build-system python-build-system)
363 (home-page "https://github.com/kennethreitz/dj-database-url")
364 (synopsis "Use Database URLs in your Django Application")
365 (description
366 "This simple Django utility allows you to utilize the 12factor inspired
367DATABASE_URL environment variable to configure your Django application.
368
369The dj_database_url.config method returns a Django database connection
370dictionary, populated with all the data specified in your URL. There is also a
371conn_max_age argument to easily enable Django’s connection pool.")
372 (license license:bsd-2)))
373
374(define-public python2-dj-database-url
375 (package-with-python2 python-dj-database-url))
afbfe564
JL
376
377(define-public python-django-bulk-update
378 (package
379 (name "python-django-bulk-update")
380 (version "1.1.10")
381 (source (origin
382 (method url-fetch)
383 (uri (pypi-uri "django-bulk-update" version))
384 (sha256
385 (base32
386 "0mbng9m7swfc0dnidipbzlxfhlfjrv755dlnha5s4m9mgdxb1fhc"))))
387 (build-system python-build-system)
388 (arguments
389 ;; tests don't support django 1.10, but the module seems to work.
390 `(#:tests? #f))
391 (native-inputs
392 `(("six" ,python-six)
393 ("jsonfield" ,python-django-jsonfield)
394 ("python-dj-database-url" ,python-dj-database-url)))
395 (propagated-inputs
396 `(("python-django" ,python-django)))
397 (home-page "https://github.com/aykut/django-bulk-update")
398 (synopsis "Simple bulk update over Django ORM or with helper function")
399 (description
400 "Simple bulk update over Django ORM or with helper function. This
401project aims to bulk update given objects using one query over Django ORM.")
402 (license license:expat)))
403
404(define-public python2-django-bulk-update
405 (package-with-python2 python-django-bulk-update))
03a34e87
JL
406
407(define-public python-django-contact-form
408 (package
409 (name "python-django-contact-form")
410 (version "1.3")
411 (source (origin
412 (method url-fetch)
413 (uri (pypi-uri "django-contact-form" version))
414 (sha256
415 (base32
416 "0az590y56k5ahv4sixrkn54d3a8ig2q2z9pl6s3m4f533mx2gj17"))))
417 (build-system python-build-system)
418 (arguments
419 `(#:phases
420 (modify-phases %standard-phases
421 (replace 'check
422 (lambda _
423 ;; the next version will need "make test"
424 (and (zero? (system* "flake8" "contact_form"))
425 (zero? (system* "coverage" "run" "contact_form/runtests.py"))
426 (zero? (system* "coverage" "report" "-m" "--fail-under" "0"))))))))
427 (native-inputs
428 `(("python-coverage" ,python-coverage)
429 ("python-flake8" ,python-flake8)))
430 (propagated-inputs
431 `(("python-django" ,python-django)))
432 (home-page "https://github.com/ubernostrum/django-contact-form")
433 (synopsis "Contact form for Django")
434 (description
435 "This application provides simple, extensible contact-form functionality
436for Django sites.")
437 (license license:bsd-3)))
438
439(define-public python2-django-contact-form
440 (package-with-python2 python-django-contact-form))
659692c0
JL
441
442(define-public python-django-contrib-comments
443 (package
444 (name "python-django-contrib-comments")
445 (version "1.8.0")
446 (source (origin
447 (method url-fetch)
448 (uri (pypi-uri "django-contrib-comments" version))
449 (sha256
450 (base32
451 "0bxsgw8jrkhg6r5s0z6ksfi4w8yknaqb1s9acmxd9pm3pnsnp5kx"))))
452 (build-system python-build-system)
453 (propagated-inputs
454 `(("python-django" ,python-django)))
455 (home-page "https://github.com/django/django-contrib-comments")
456 (synopsis "Comments framework")
457 (description
458 "Django used to include a comments framework; since Django 1.6 it's been
459separated to a separate project. This is that project. This framework can be
460used to attach comments to any model, so you can use it for comments on blog
461entries, photos, book chapters, or anything else.")
462 (license license:bsd-3)))
463
464(define-public python2-django-contrib-comments
465 (package-with-python2 python-django-contrib-comments))
93246253
JL
466
467(define-public python-django-overextends
468 (package
469 (name "python-django-overextends")
470 (version "0.4.3")
471 (source (origin
472 (method url-fetch)
473 (uri (pypi-uri "django-overextends" version))
474 (sha256
475 (base32
476 "0qc2pcf3i56pmfxh2jw7k3pgljd8xzficmkl2541n7bkcbngqfzm"))))
477 (build-system python-build-system)
478 (arguments
479 `(#:phases
480 (modify-phases %standard-phases
481 (replace 'check
482 (lambda _
483 (zero? (system* "./test_project/manage.py" "test")))))))
484 (propagated-inputs
485 `(("python-django" ,python-django)))
486 (native-inputs
487 `(("sphinx-me" ,python-sphinx-me)))
488 (home-page "https://github.com/stephenmcd/django-overextends")
489 (synopsis "Circular template inheritance")
490 (description
491 "A Django reusable app providing the overextends template tag, a drop-in
492replacement for Django's extends tag, which allows you to use circular template
493inheritance. The primary use-case for overextends is to simultaneously
494override and extend templates from other reusable apps, in your own Django
495project.")
496 (license license:bsd-2)))
497
498(define-public python2-django-overextends
499 (package-with-python2 python-django-overextends))
b939953b
JL
500
501(define-public python-django-redis
502 (package
503 (name "python-django-redis")
504 (version "4.7.0")
505 (source (origin
506 (method url-fetch)
507 (uri (pypi-uri "django-redis" version))
508 (sha256
509 (base32
510 "0yyyxv8n9l9dhs893jsqwg2cxqkkc79g719n9dzzzqgkzialv1c1"))))
511 (build-system python-build-system)
512 (arguments
513 `(#:phases
514 (modify-phases %standard-phases
515 (replace 'check
516 (lambda _
517 (and (zero? (system* "redis-server" "--daemonize" "yes"))
518 (with-directory-excursion "tests"
519 (zero? (system* "python" "runtests.py")))))))))
520 (native-inputs
521 `(("python-fakeredis" ,python-fakeredis)
522 ("python-hiredis" ,python-hiredis)
523 ("python-mock" ,python-mock)
524 ("python-msgpack" ,python-msgpack)
525 ("redis" ,redis)))
526 (propagated-inputs
527 `(("python-django" ,python-django)
528 ("python-redis" ,python-redis)))
529 (home-page "https://github.com/niwibe/django-redis")
530 (synopsis "Full featured redis cache backend for Django")
531 (description
532 "Full featured redis cache backend for Django.")
533 (license license:bsd-3)))
534
535(define-public python2-django-redis
536 (package-with-python2 python-django-redis))
cb9b6095
JL
537
538(define-public python-django-rq
539 (package
540 (name "python-django-rq")
541 (version "0.9.4")
542 (source (origin
543 (method url-fetch)
544 (uri (pypi-uri "django-rq" version))
545 (sha256
546 (base32
547 "04v8ilfdp10bk31fxgh4cn083gsn5m06342cnpm5d10nd8hc0vky"))))
548 (build-system python-build-system)
549 (arguments
550 `(#:phases
551 (modify-phases %standard-phases
552 (replace 'check
553 (lambda _
554 (and (zero? (system* "redis-server" "--daemonize" "yes"))
555 (zero? (system* "django-admin.py" "test" "django_rq"
556 "--settings=django_rq.test_settings"
557 "--pythonpath="))))))))
558 (native-inputs
559 `(("redis" ,redis)))
560 (propagated-inputs
561 `(("python-django" ,python-django)
562 ("python-rq" ,python-rq)))
563 (home-page "https://github.com/ui/django-rq")
564 (synopsis "Django integration with RQ")
565 (description
566 "Django integration with RQ, a Redis based Python queuing library.
567Django-RQ is a simple app that allows you to configure your queues in django's
568settings.py and easily use them in your project.")
569 (license license:expat)))
570
571(define-public python2-django-rq
572 (package-with-python2 python-django-rq))
b0395dd6
JL
573
574(define-public python-django-sortedm2m
575 (package
576 (name "python-django-sortedm2m")
577 (version "1.3.3")
578 (source (origin
579 (method url-fetch)
580 (uri (pypi-uri "django-sortedm2m" version))
581 (sha256
582 (base32
583 "0axf765i7b3c2s83nlph47asi8s071dhq8l7y382v1pw785s22vi"))))
584 (build-system python-build-system)
585 (arguments
586 ;; no tests.
587 `(#:tests? #f))
588 (propagated-inputs
589 `(("python-django" ,python-django)))
590 (home-page "https://github.com/gregmuellegger/django-sortedm2m")
591 (synopsis "Drop-in replacement for django's own ManyToManyField")
592 (description
593 "Sortedm2m is a drop-in replacement for django's own ManyToManyField.
594The provided SortedManyToManyField behaves like the original one but remembers
595the order of added relations.")
596 (license license:bsd-3)))
597
598(define-public python2-django-sortedm2m
599 (package-with-python2 python-django-sortedm2m))
9f4a3059
JL
600
601(define-public python-django-appconf
602 (package
603 (name "python-django-appconf")
604 (version "1.0.2")
605 (source (origin
606 (method url-fetch)
607 (uri (pypi-uri "django-appconf" version))
608 (sha256
609 (base32
610 "0qdjdx35g66xjsc50v0c5h3kg6njs8df33mbjx6j4k1vd3m9lkba"))))
611 (build-system python-build-system)
612 (propagated-inputs
613 `(("python-django" ,python-django)))
614 (home-page "https://github.com/django-compressor/django-appconf")
615 (synopsis "Handle configuration defaults of packaged Django apps")
616 (description
617 "This app precedes Django's own AppConfig classes that act as \"objects
618[to] store metadata for an application\" inside Django's app loading mechanism.
619In other words, they solve a related but different use case than
620django-appconf and can't easily be used as a replacement. The similarity in
621name is purely coincidental.")
622 (license license:bsd-3)))
623
624(define-public python2-django-appconf
625 (package-with-python2 python-django-appconf))
f77d82f1
JL
626
627(define-public python-django-statici18n
628 (package
629 (name "python-django-statici18n")
630 (version "1.3.0")
631 (source (origin
632 (method url-fetch)
633 (uri (pypi-uri "django-statici18n" version))
634 (sha256
635 (base32
636 "0alcf4g1nv69njhq5k3qw4mfl2k6dc18bik5nk0g1mnp3m8zyz7k"))))
637 (build-system python-build-system)
638 (propagated-inputs
639 `(("python-django" ,python-django)
640 ("django-appconf" ,python-django-appconf)))
641 (home-page "https://github.com/zyegfryed/django-statici18n")
642 (synopsis "Generate JavaScript catalog to static files")
643 (description
644 "A Django app that provides helper for generating JavaScript catalog to
645static files.")
646 (license license:bsd-3)))
647
648(define-public python2-django-statici18n
649 (package-with-python2 python-django-statici18n))
2601171e
JL
650
651(define-public pootle
652 (package
653 (name "pootle")
654 (version "2.8.0rc5")
655 (source
656 (origin
657 (method url-fetch)
658 (uri (pypi-uri "Pootle" version ".tar.bz2"))
659 (sha256
660 (base32
661 "0m6qcpkcy22dk3ad5y2k8851kqg2w6vrkywgy4vabwbacd7r1mvn"))))
662 (build-system python-build-system)
663 (arguments
664 `(; pootle supports only python2.
665 #:python ,python-2
666 ;; tests are not run and fail with "pytest_pootle/data/po/.tmp: No such
667 ;; file or directory". If we create this directory,
668 ;; pytest_pootle/data/po/terminology.po is missing.
669 #:tests? #f
670 #:phases
671 (modify-phases %standard-phases
672 (add-before 'build 'fix-requirements
673 (lambda _
674 (substitute* "Pootle.egg-info/requires.txt"
675 (("1.7.3") "1.8.0")
676 (("2.0.0") "2.1.0"))
677 (substitute* "requirements/tests.txt"
678 (("==3.0.6") ">=3.0.6"))
679 (substitute* "requirements/base.txt"
680 (("1.7.3") "1.8.0")
681 (("2.0.0") "2.1.0")))))))
682 (propagated-inputs
683 `(("django-allauth" ,python2-django-allauth)
684 ("django-assets" ,python2-django-assets)
685 ("django-bulk-update" ,python2-django-bulk-update)
686 ("django-contact-form" ,python2-django-contact-form)
687 ("django-contrib-comments" ,python2-django-contrib-comments)
688 ("django-overextends" ,python2-django-overextends)
689 ("django-redis" ,python2-django-redis)
690 ("django-rq" ,python2-django-rq)
691 ("django-sortedm2m" ,python2-django-sortedm2m)
692 ("django-statici18n" ,python2-django-statici18n)
693 ("babel" ,python2-babel)
694 ("cssmin" ,python2-cssmin)
695 ("diff-match-patch" ,python2-diff-match-patch)
696 ("dirsync" ,python2-dirsync)
697 ("elasticsearch" ,python2-elasticsearch)
698 ("jsonfield" ,python2-django-jsonfield)
699 ("lxml" ,python2-lxml)
700 ("dateutil" ,python2-dateutil)
701 ("levenshtein" ,python2-levenshtein)
702 ("mysqlclient" ,python2-mysqlclient)
703 ("psycopg2" ,python2-psycopg2)
704 ("pytz" ,python2-pytz)
705 ("rq" ,python2-rq)
706 ("scandir" ,python2-scandir)
707 ("stemming" ,python2-stemming)
708 ("translate-toolkit" ,python2-translate-toolkit)))
709 (native-inputs
c8ccf7c5 710 `(("python2-pytest" ,python2-pytest)
2601171e
JL
711 ("python2-pytest-django" ,python2-pytest-django)
712 ("python2-pytest-catchlog" ,python2-pytest-catchlog)
713 ("python2-pytest-cov" ,python2-pytest-cov)
714 ("python2-factory-boy" ,python2-factory-boy)))
715 (home-page "http://pootle.translatehouse.org/")
716 (synopsis "Community localization server")
717 (description
718 "Pootle is an online translation and localization tool. It works to
719lower the barrier of entry, providing tools to enable teams to work towards
720higher quality while welcoming newcomers.")
721 (license license:gpl3+)))
40fac51a
RW
722
723(define-public python-django-tagging
724 (package
725 (name "python-django-tagging")
726 (version "0.4.6")
727 (source
728 (origin
729 (method url-fetch)
730 (uri (pypi-uri "django-tagging" version))
731 (sha256
732 (base32
733 "0s7b4v45j783yaxs7rni10k24san0ya77nqz4s7zdf3jhfpk42r1"))))
734 (build-system python-build-system)
735 (home-page "https://github.com/Fantomas42/django-tagging")
736 (synopsis "Generic tagging application for Django")
737 (description "This package provides a generic tagging application for
738Django projects, which allows association of a number of tags with any
739@code{Model} instance and makes retrieval of tags simple.")
740 (license license:bsd-3)))
741
742(define-public python2-django-tagging
743 (package-with-python2 python-django-tagging))