{"id":1302,"date":"2011-02-13T20:27:21","date_gmt":"2011-02-13T18:27:21","guid":{"rendered":"http:\/\/j-mad.com\/blog\/?p=1302"},"modified":"2011-05-05T17:44:40","modified_gmt":"2011-05-05T15:44:40","slug":"django-admin-tools-la-django-app-de-janvier-presque-a-lheure","status":"publish","type":"post","link":"https:\/\/j-mad.com\/blog\/2011\/02\/13\/django-admin-tools-la-django-app-de-janvier-presque-a-lheure\/","title":{"rendered":"Django-admin-tools, la django app de janvier, presque \u00e0 l&#8217;heure"},"content":{"rendered":"<p>Jusqu&#8217;\u00e0 pr\u00e9sent j&#8217;avais toujours r\u00e9ussi \u00e0 poster mes billets de django app \u00e0 l&#8217;heure. Mais l\u00e0, l\u00e0, j&#8217;ai une excuse. Je suis devenu papa le 31 janvier. Du coup, je n&#8217;ai vraiment pas eu le temps pour \u00e9crire mon billet de django app (les raleurs qui me diront que j&#8217;avais tout les jours d&#8217;avant le 31 pour \u00e9crire mon billet auront raison.. mais chut, j&#8217;ai une excuse, c&#8217;est tout).<\/p>\n<p>Ce mois-ci (enfin le mois dernier quoi), je vais parler d&#8217;une partie de django dont je ne parle pas assez l&#8217;admin, en vous pr\u00e9sentant django-admin-tools.<\/p>\n<h1>1- O\u00f9 on le trouve, comment on l\u2019installe, tout \u00e7a quoi (et la doc)\u00a0?<\/h1>\n<p>O\u00f9 on le trouve sur sa page <a href=\"https:\/\/bitbucket.org\/izi\/django-admin-tools\">bitbucket<\/a> sur laquelle vous trouverez aussi tout plein de screenshoot (que je reproduis ici en partie), une mini doc et un lien vers une doc tr\u00e8s tr\u00e8s compl\u00e8te.<\/p>\n<div id='gallery-1' class='gallery galleryid-1302 gallery-columns-2 gallery-size-thumbnail'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools1.png' rel=\"lightbox[1302]\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"120\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools1-150x120.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools1-150x120.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools1-300x240.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools1.png 900w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools2.png' rel=\"lightbox[1302]\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"120\" src=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools2-150x120.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" srcset=\"https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools2-150x120.png 150w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools2-300x240.png 300w, https:\/\/j-mad.com\/blog\/wp-content\/uploads\/2011\/02\/djangon_admin_tools2.png 901w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\n<p>Quand \u00e0 l&#8217;installation vous pouvez soit\u00a0:<\/p>\n<ul>\n<li>cloner le repo puis faire un python setup.py install<\/li>\n<li>utiliser easy install\u00a0: easy_install django-admin-tools<\/li>\n<li>utiliser pip\u00a0: pip install django-admin-tools<\/li>\n<li>simplement mettre le repertoire admin_tools dans votre python path<\/li>\n<\/ul>\n<p>Quand \u00e0 la doc, elle est pr\u00e9sente sur <a href=\"http:\/\/django-admin-tools.readthedocs.org\/en\/latest\/index.html\">readthedocs.org<\/a> et est vraiment tr\u00e8s bien faite. bien fournie et claire.<\/p>\n<h1>2- Mais au fait, \u00e0 quoi \u00e7a sert\u00a0?<\/h1>\n<p>Django-admin-tools va vous permettre de customiser votre admin django.<\/p>\n<p>Vous allez pouvoir des petits dasboards en page d&#8217;accueil, personnalisable et drag and dropable et foldable. Vous allez aussi pouvoir avoir un menu horizontal et une gestion des bookmarks. Les menus pourront \u00eatre constitu\u00e9s de sous menus, de liens finaux ou de menus construits automatiquement \u00e0 partir de\u00a0 la liste des app (moins celles que l&#8217;on d\u00e9cide d&#8217;exclure).<\/p>\n<h1>3- Comment \u00e7a marche\u00a0?<\/h1>\n<p>Dans tout les cas, il y a une config par d\u00e9faut. Si on veut changer la config des dashboard ou du menu, il faut g\u00e9n\u00e9rer un module python ( qui par d\u00e9faut sera celui qui donne la config par d\u00e9faut), le modifier et indiquer que l&#8217;on veut l&#8217;utiliser. On peut aussi modifier le th\u00e8me CSS qui sera utilis\u00e9.<\/p>\n<h3>Pour le menu :<\/h3>\n<ul>\n<li>python manage.py custommenu<\/li>\n<\/ul>\n<p>ou<\/p>\n<ul>\n<li>python manage.py custommenu somefile.py<\/li>\n<\/ul>\n<p>puis\u00a0:<\/p>\n<ul>\n<li>ADMIN_TOOLS_MENU = &#8216;yourproject.menu.CustomMenu&#8217;<\/li>\n<\/ul>\n<h3>pour le dashboard, m\u00eame chose\u00a0:<\/h3>\n<ul>\n<li>python manage.py customdashboard<\/li>\n<\/ul>\n<p>ou<\/p>\n<ul>\n<li>python manage.py customdashboard somefile.py<\/li>\n<\/ul>\n<p>puis<\/p>\n<ul>\n<li>ADMIN_TOOLS_INDEX_DASHBOARD = &#8216;yourproject.dashboard.CustomIndexDashboard&#8217;<\/li>\n<\/ul>\n<ul>\n<li>ADMIN_TOOLS_APP_INDEX_DASHBOARD = &#8216;yourproject.dashboard.CustomAppIndexDashboard&#8217;<\/li>\n<\/ul>\n<h1>4 Conclusion<\/h1>\n<p>Je dois bien avouer que je pense sous utilisais l&#8217;admin django. Je suis toujours \u00e0 refaire des trucs en espace non admin alors que l&#8217;admin offre pourtant des possibilit\u00e9s immenses, pour tr\u00e8s peu de temps pass\u00e9s. La d\u00e9couverte de django-admin-tools me conforte dans l&#8217;id\u00e9e qu&#8217;il faut que je me force \u00e0 utiliser plus souvent l&#8217;interface admin. Et donc \u00e0 tester de nouvelles app d&#8217;extension de l&#8217;admin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jusqu&#8217;\u00e0 pr\u00e9sent j&#8217;avais toujours r\u00e9ussi \u00e0 poster mes billets de django app \u00e0 l&#8217;heure. Mais l\u00e0, l\u00e0, j&#8217;ai une excuse. Je suis devenu papa le 31 janvier. Du coup, je n&#8217;ai vraiment pas eu le temps pour \u00e9crire mon billet de django app (les raleurs qui me diront que j&#8217;avais tout les jours d&#8217;avant le &hellip; <a href=\"https:\/\/j-mad.com\/blog\/2011\/02\/13\/django-admin-tools-la-django-app-de-janvier-presque-a-lheure\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Django-admin-tools, la django app de janvier, presque \u00e0 l&#8217;heure<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[35],"tags":[99,98],"class_list":["post-1302","post","type-post","status-publish","format-standard","hentry","category-la-django-app-du-mois","tag-django","tag-python"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p12cdp-l0","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1302","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/comments?post=1302"}],"version-history":[{"count":4,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1302\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/posts\/1302\/revisions\/1307"}],"wp:attachment":[{"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/media?parent=1302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/categories?post=1302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/j-mad.com\/blog\/wp-json\/wp\/v2\/tags?post=1302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}