Genida technical information

De
Révision datée du 27 novembre 2014 à 12:19 par F1 (discussion | contributions) (Fix summary)
Aller à la navigation Aller à la recherche

Development with Python

The Django Framework

Django packages

Name License Links Chosen for Bugs Previous choice(s)
django-ajax-selects
django-appconf
django-autoslug
django-avatar
django-axes
  • Good solution to prevent bruteforce attacks on users accounts passwords. Maybe a temporary solution before we set a security module.
  • Possibility to block IP address after X failed login attempts, for X amount of time (currently set to 5 and 15 minutes).
  • All attempts are recorded in the database and viewable by administrators.
django-bootstrap-markdown
  • Its capacity to upload images onto the server and reuse them! Bad integration in django-suit (left offset in admin pages, preview no more at the right of the text but below...).
  • We might consider using django-pagedown instead, when it will be able to upload images and reuse them too. Since we do not use django-admin-bootstrapped, we do not need the "bootstrap" part in a markdown editor.
  • django-summernote. Reason for switching: Summernote is a very good WYSIWYG editor, but it renders text in HTML, which is less secure than markdown, because we have to evaluate it unsafely in HTML templates. Markdown inputs are sanitized when displayed in HTML templates, currently with django-markdown-deux.
django-cities-light
  • Command to prepopulate database fields from GeoNames. Some fields are maybe unnecessary though.
django-datetime-widget
  • The only one doing this. And it is doing it right!
django-forms-bootstrap
  • Very simple to use in templates. Bootstrap themed. It will surely be replaced by django-cripsy-forms in the future.
django-imagekit
  • It is a requirement for django-bootstrap-markdown. Since it uploads images to the server, in order to be reusable they are shown in admin interface app, and then needs thumbnailing and previewing.
django-markdown-deux
  • Recommended by Django Bootstrap Markdown author for displaying markdown in templates.
django-modeltranslation
  • Code is separated from the models code (translation.py)
  • Translation fields are stored in the same table (database performance)
  • The original field is kept (more robust and flexible, fall backs if no translations)
  • django-easymode. Reason for switching: the original field was not kept, resulting in impossibility to use translatable fields for search, ordering or filter in admin interface. Sometimes even lead to server error. Bugs found in admin interface display (checkbox column appeared twice). Translation is not its main purpose.
django-rosetta
  • Provides an effective interface for translating site contents, and an easy integration with users and groups: each user in the group "translators" can have access to rosetta interface.
Versions after the 0.7.0 one do not include polib module anymore, making it unfunctionnal
django-simple-captcha
  • The simplest captcha app for Django, yet customizable, very easy to use.
django-suit
  • Customizable interface (tabs, apps, icons)
  • Inline sortables (lists of database objects can be reordered with arrows)
  • Beautiful design
  • django-admin-bootstrapped. Reason for switching: takes too much space on screen, so much less functionnality than Django-Suit
  • Django basic admin interface. Reason for switching: wanted a design corresponding to the website one (using Twitter Bootstrap)

Documentation

  • Docstring