{ "info": { "author": "Yohann Gabory", "author_email": "novafloss@people-doc.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "====================\nDjango Pimp My Theme\n====================\n\n.. image:: https://travis-ci.org/novafloss/django-pimpmytheme.png?branch=master\n :target: https://travis-ci.org/novafloss/django-pimpmytheme\n\nPer client/user/whatever django template and statics theming.\n\nWHY\n===\n\nWhen you need to use custom template and/or styling based on a model\nin your app (Site, User, etc).\n\npimpmytheme will create a folder per \"client\" (a client can be a\nUser, a Site or everything that implement the get_current method (see\nbelow). It also can be used for multiple projects at the same\ntime. The folders are under a project name folder located in the\npimpmytheme directory. Your designer can then pull/push this\nrepository to edit the whole look and feel of all your projects in the\nsame repository!\n\nHow\n===\n\nWith the help of custom template loader ans static file loader,\npimpmytheme load the custom template and statics files if they exists\nfor the current object.\n\nINSTALLATION\n============\n\n.. code:: sh\n\n $ pip install django-pimpmytheme\n\nCONFIGURATION\n=============\n\nAdd pimpmytheme in your ``INSTALLED_APPS``:\n\n.. code:: python\n\n INSTALLED_APPS = (\n 'pimpmytheme',\n ...\n )\n\nAdd the pimpmytheme staticfiles_finder to your ``STATICFILES_FINDERS``:\n\n.. code:: python\n\n STATICFILES_FINDERS = (\n \"pimpmytheme.static_finder.CustomFinder\",\n \"django.contrib.staticfiles.finders.AppDirectoriesFinder\",\n )\n\nAdd the custom template loader to your ``TEMPLATE_LOADERS``:\n\n.. code:: python\n\n TEMPLATE_LOADERS = (\n 'pimpmytheme.template_loader.Loader',\n 'django.template.loaders.app_directories.Loader',\n )\n\nFinaly, you need a model with the \"get_current\" method. get_current\nwill return the object responsible for customization. For example, you\ncan use the django.contrib.sites.Site model to customize your project\nper a site basis:\n\n.. code:: python\n\n CUSTOM_THEME_LOOKUP_OBJECT = \"django.contrib.sites.models.Site\"\n CUSTOM_THEME_LOOKUP_ATTR = \"name\"\n\nThen select the directory path where your customizations will be stored.\nIt must be an absolute path.\n\n.. code:: python\n\n PIMPMYTHEME_FOLDER = \"/home/user/myproject/custom_statics\"\n\nYou can stop configuration here, it will work and your static files will\nbe collected in STATIC_ROOT by the collectstatic command.\n\nIf you want to go further in your configuration, you can set the\ndirectory name where your assets will be copied by the by the collectstatic\ncommand. It will be a subfolder of django_settings.STATIC_ROOT:\n\n.. code:: python\n\n PIMPMYTHEME_FOLDER_NAME = 'pimp_theme'\n\nThen tell compressor to use pimpmytheme's filter to build link to your assets:\n\n.. code:: python\n\n STATICFILES_FINDERS = (\n \"yourapp.your_finder.PrefixedFinder\",\n \"django.contrib.staticfiles.finders.AppDirectoriesFinder\",\n )\n\n COMPRESS_CSS_FILTERS = ['pimpmytheme.filters.PrefixedCssAbsoluteFilter']\n\nCOMMANDS\n========\n\nTo create the needed folders for customization, you can run the\nmanagement command provided by pimpmytheme:\n\n.. code:: sh\n\n $ python manage.py create_folders\n\nInside custom_form you will get a folder named as your project\nname. And inside this folder you wil get as many folders as you\ncustomization model objects. If you use the Site, you will get a\nexample.com folder.\n\nYou will also find a static folder containing an empty custom.less file.\nHere for your convenience. you can start editing this file to customize\nyour style.\n\nYou can also create a template folder next to the static one and put\nsome custom templates in it.\n\nThe pimpmytheme template loader will first look in this directory to\nload templates files. If not found, it will fallback on the django\ntemplate loader\n\nIf your themes are in a git repo, add settings:\n\n.. code:: python\n\n PIMPMYTHEME_GIT_REPOSITORY = 'git@github.com:foo/your_pimp_folders.git'\n\nand run the useful command to pull them into PIMPMYTHEME_FOLDER:\n\n.. code:: sh\n\n $ python manage.py update_themefolder_from_git\n\n\nTEMPLATETAG SYSTEM\n==================\n\nWith django-pimpmytheme you get a templatetag system to manage custom\nmedia (css, js and images).\n\nThis template system ensure the custom media exist for the current\ncustomization. You can so get a bunch of css/js/img for each of your\nclient and django-pimpmytheme will only load the media revelant for\nthe current customization.\n\nYou can then use an asset management, compressor and so on on those\nfiles.\n\nTo use the templatetags first load it on the template:\n\n.. code:: jinja\n\n {% load pimptheme %}\n\nThen use pimp_css, pimp_js or pimp_img to load your assets:\n\n.. code:: jinja\n\n \"Hello\"\n {% pimp_css 'custom.css'%}\n {% pimp_js 'javascript.js'%}\n {% pimp_img 'myimage.jpg'%}\n\nNOTE\n====\n\nThanks to `@leotrouvtou`_ for helping finding the project name.\n\n\n.. _`@leotrouvtou`: https://github.com/leotrouvtou\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/novafloss/django-pimpmytheme", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-pimpmytheme", "package_url": "https://pypi.org/project/django-pimpmytheme/", "platform": "", "project_url": "https://pypi.org/project/django-pimpmytheme/", "project_urls": { "Homepage": "https://github.com/novafloss/django-pimpmytheme" }, "release_url": "https://pypi.org/project/django-pimpmytheme/2.6/", "requires_dist": null, "requires_python": "", "summary": "Customise theme (css and template) on a per user/client whatever basis", "version": "2.6" }, "last_serial": 3651906, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "1baabf71494e1f9d0fd567e7e280b309", "sha256": "9b60a3a491d3bf7222d2bc8422ec6f463cc55110804901d528ab2d5b626b9b0f" }, "downloads": -1, "filename": "django-pimpmytheme-1.0.zip", "has_sig": false, "md5_digest": "1baabf71494e1f9d0fd567e7e280b309", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18362, "upload_time": "2014-06-12T08:46:02", "url": "https://files.pythonhosted.org/packages/f2/d7/acf59adb950734e59791e8ff4dc075b7bc9e2f4d8ac0de6ab9fcff56eb9d/django-pimpmytheme-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "20993824fd1dd6174f61d50fcc983b85", "sha256": "730f6cad8fe95bf6f496da26f2725e4c713ff04ca9f0e8a1dbc060222edb17b2" }, "downloads": -1, "filename": "django-pimpmytheme-1.1.zip", "has_sig": false, "md5_digest": "20993824fd1dd6174f61d50fcc983b85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20364, "upload_time": "2014-06-12T10:39:47", "url": "https://files.pythonhosted.org/packages/b6/d8/546746772a97981ea20090c5bb22dcef17da082cfda0b5c54f077abfeb39/django-pimpmytheme-1.1.zip" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "460a7a3f354d05664bfb54fbda7f3a18", "sha256": "5ab0cebde1a3a3d95ea7a2c84c5aabf8f4aba928adf0e90a7c20d1bba0268508" }, "downloads": -1, "filename": "django_pimpmytheme-1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "460a7a3f354d05664bfb54fbda7f3a18", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14963, "upload_time": "2016-04-20T12:07:35", "url": "https://files.pythonhosted.org/packages/1a/df/9e13e58b2ca6849a4fbb616ab4335eedac809b0f569c9c45e9cba5ff1e16/django_pimpmytheme-1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cb236eb496a1138fbe58c95063850276", "sha256": "c1393321d7e2a888c530b32d0e935c65fcc46a2094b893322d66b34e90f6c01d" }, "downloads": -1, "filename": "django-pimpmytheme-1.10.tar.gz", "has_sig": false, "md5_digest": "cb236eb496a1138fbe58c95063850276", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 179460, "upload_time": "2016-04-20T12:07:23", "url": "https://files.pythonhosted.org/packages/ef/ef/deb81b3692e176ded90230f56a23944f5f14efeeb182de2b4c917eecd50d/django-pimpmytheme-1.10.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "fb060b1177097d5ffd0633324de7b0bf", "sha256": "89cb559b8fff36190872f00788b60340196a53631fe6519b35f2248e0a92b0e4" }, "downloads": -1, "filename": "django-pimpmytheme-1.2.zip", "has_sig": false, "md5_digest": "fb060b1177097d5ffd0633324de7b0bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20401, "upload_time": "2014-06-12T12:29:29", "url": "https://files.pythonhosted.org/packages/f8/9b/af64b1694301ef0e5e91b32353333204ba0b7b10f490a51141a099752a54/django-pimpmytheme-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "164ced4a95ceef72fa1885408c812e28", "sha256": "6f2d100152a74125fc133c400d50580ab242462850c96adfba333da605198b83" }, "downloads": -1, "filename": "django-pimpmytheme-1.3.zip", "has_sig": false, "md5_digest": "164ced4a95ceef72fa1885408c812e28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20415, "upload_time": "2014-06-12T15:44:47", "url": "https://files.pythonhosted.org/packages/66/36/13150d779d211bb646d7ca79b93c36fefda22774d032bb17d52926321e4d/django-pimpmytheme-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "99555fca2016110c135ae65352e43795", "sha256": "ee332a5a5178c6a8317cc5cba91c5f956c5fedbba81e64cdc7203b5868ee1d23" }, "downloads": -1, "filename": "django-pimpmytheme-1.4.tar.gz", "has_sig": false, "md5_digest": "99555fca2016110c135ae65352e43795", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 172728, "upload_time": "2014-07-03T09:04:17", "url": "https://files.pythonhosted.org/packages/7e/3e/61e627a77d2d56546490e7c3e793d0cede51fef1e0124ff5f8b082f48412/django-pimpmytheme-1.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "0210b45cf37af958adc38b8f2c2c27df", "sha256": "86b7bc1e5621860e858dabe06ae5bc9fca6280a82021dbe9415588dd7aa00aef" }, "downloads": -1, "filename": "django-pimpmytheme-1.4.zip", "has_sig": false, "md5_digest": "0210b45cf37af958adc38b8f2c2c27df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 203941, "upload_time": "2014-07-03T09:04:20", "url": "https://files.pythonhosted.org/packages/ff/b2/58bc3e5bc06b095f06b42530405bc612b99713bfd6b682aa7cb36c9c0e6d/django-pimpmytheme-1.4.zip" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "69b8960022a14589f14ebae4d52fd2ed", "sha256": "07be6c8180b91838533dc5a0f5be0a46d2cb9716cae0986391cb9f783ffa37d2" }, "downloads": -1, "filename": "django-pimpmytheme-1.5.zip", "has_sig": false, "md5_digest": "69b8960022a14589f14ebae4d52fd2ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22456, "upload_time": "2014-11-19T14:34:05", "url": "https://files.pythonhosted.org/packages/e0/fc/064a86dbbd3c4b8520de8ac04ce260b8302a5b4735f67cc645922ed6627c/django-pimpmytheme-1.5.zip" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "03ef390ff56c064cbca1c4fcf43ca86d", "sha256": "5229ac0160c10c1ee23180a5f134f904822a33e60eab8e3ff9cf7bce94909de5" }, "downloads": -1, "filename": "django-pimpmytheme-1.7.tar.gz", "has_sig": false, "md5_digest": "03ef390ff56c064cbca1c4fcf43ca86d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13690, "upload_time": "2015-06-18T09:05:57", "url": "https://files.pythonhosted.org/packages/6c/8a/76a24a115c42377f98068e004215de531401e18e15499497a930f7ff70b7/django-pimpmytheme-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "5405a10e5864d35955b8794462efd80d", "sha256": "9f96b2055f081c9978b5ffb57ed37d5d49898258550e76fb0225a5bcdd0bfeca" }, "downloads": -1, "filename": "django-pimpmytheme-1.8.tar.gz", "has_sig": false, "md5_digest": "5405a10e5864d35955b8794462efd80d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 177626, "upload_time": "2016-03-17T16:35:22", "url": "https://files.pythonhosted.org/packages/db/a8/a42cd39384a1e94f4bce9687a9065c65619b53599647889bc9d634cd4734/django-pimpmytheme-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "227395a1526d4293a8e5fc1b5fb6ae5b", "sha256": "b8d6b1a10af47d3885bb43e4b3bbddc97852143f8b6ad9ab7cec1e6a438c4d26" }, "downloads": -1, "filename": "django-pimpmytheme-1.9.tar.gz", "has_sig": false, "md5_digest": "227395a1526d4293a8e5fc1b5fb6ae5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12357, "upload_time": "2016-03-17T11:04:01", "url": "https://files.pythonhosted.org/packages/bf/0a/df691182aee6a4e14c625fcb3680e7128d8b6a768acc99e0de766f79ca93/django-pimpmytheme-1.9.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "807a00fc7bddb3c2039898d3b19e2643", "sha256": "3c6db52eb5450eba3cc301053d2e2a4a586f2ec43a6449cf24e45706467ebdc7" }, "downloads": -1, "filename": "django-pimpmytheme-2.0.tar.gz", "has_sig": false, "md5_digest": "807a00fc7bddb3c2039898d3b19e2643", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13418, "upload_time": "2016-05-25T09:00:14", "url": "https://files.pythonhosted.org/packages/96/0e/da360d704e9bd80f38dd7d013229427fe0f79e735d35175a0f6fbbbfd3ca/django-pimpmytheme-2.0.tar.gz" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "fd6797a799a28cfe66154849f55c265b", "sha256": "00cb64dddcb82f21c813d313771faefab01816c71baebd1bad4a2e7db2ef1075" }, "downloads": -1, "filename": "django_pimpmytheme-2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fd6797a799a28cfe66154849f55c265b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15105, "upload_time": "2017-04-27T12:58:21", "url": "https://files.pythonhosted.org/packages/a8/70/9b3261c63ba1fca899ff2d4066009297c0363626bf11b113542181467073/django_pimpmytheme-2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc5f426d66a4daccd815f720ca79fb59", "sha256": "e307e08c3186cc91bd202fd6b05eee2d193f5c17dd3ae44303830d28342582c0" }, "downloads": -1, "filename": "django-pimpmytheme-2.1.tar.gz", "has_sig": false, "md5_digest": "fc5f426d66a4daccd815f720ca79fb59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 606516, "upload_time": "2017-04-27T12:58:17", "url": "https://files.pythonhosted.org/packages/5c/15/d55ebfbcd4b9d259df6bafaae549969c0f49536a1a822c1477510850bb5a/django-pimpmytheme-2.1.tar.gz" } ], "2.3": [ { "comment_text": "", "digests": { "md5": "0749e8ed1015ad50629531695fa39ec1", "sha256": "a34a6b9c1b57c7d088895ddc1a363f2b6d8f24d6d71fccee7aa256127a43066e" }, "downloads": -1, "filename": "django_pimpmytheme-2.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0749e8ed1015ad50629531695fa39ec1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15080, "upload_time": "2017-05-22T12:37:42", "url": "https://files.pythonhosted.org/packages/f9/5b/1163c2b6f9cfe7cd302984f87d321c592fd812d8c9a513a5555065be016e/django_pimpmytheme-2.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b29f7da0e91f92d07d25d39a83ab4e41", "sha256": "f96cf945f6fa3a69a19227971231e06148851204968aeb22ecfad41dcf0fa760" }, "downloads": -1, "filename": "django-pimpmytheme-2.3.tar.gz", "has_sig": false, "md5_digest": "b29f7da0e91f92d07d25d39a83ab4e41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 610844, "upload_time": "2017-05-22T12:37:40", "url": "https://files.pythonhosted.org/packages/57/40/a3782d3af8d1d537210cc60dee8f35778f1efe32ae7f22191737b95a1813/django-pimpmytheme-2.3.tar.gz" } ], "2.4": [ { "comment_text": "", "digests": { "md5": "8f161a348ae84b151c560ad6ccb4c52f", "sha256": "e38252dca4872bb17bd3eccc69c2c780e822d386b7016a6fe7195fd4aae9cc3e" }, "downloads": -1, "filename": "django-pimpmytheme-2.4.tar.gz", "has_sig": false, "md5_digest": "8f161a348ae84b151c560ad6ccb4c52f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 606670, "upload_time": "2017-08-16T13:43:37", "url": "https://files.pythonhosted.org/packages/de/5a/7ec374ce1abee5b4eb2dde8943d74fca9a4f0c76c5532acfcceb686ffff6/django-pimpmytheme-2.4.tar.gz" } ], "2.5": [ { "comment_text": "", "digests": { "md5": "65d9915e6f91d1f92bf49381f53630c8", "sha256": "dfe777687b131cc084b51f6f17fc50cad54ce9fdd874248d0a90654fa2667a67" }, "downloads": -1, "filename": "django-pimpmytheme-2.5.tar.gz", "has_sig": false, "md5_digest": "65d9915e6f91d1f92bf49381f53630c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16556, "upload_time": "2017-08-24T13:05:32", "url": "https://files.pythonhosted.org/packages/4a/d9/42f6eb2eec7d79c9cc6d23d4f8a1ab7c3e81cf62d462bb3a0711a6871a68/django-pimpmytheme-2.5.tar.gz" } ], "2.6": [ { "comment_text": "", "digests": { "md5": "61d5b9097b108120b82953cdf37975a2", "sha256": "80155a74ce566f2ab2b8652adea413582c991976c4fbfad6f0a37a5162622855" }, "downloads": -1, "filename": "django-pimpmytheme-2.6.tar.gz", "has_sig": false, "md5_digest": "61d5b9097b108120b82953cdf37975a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 605672, "upload_time": "2017-09-15T14:35:10", "url": "https://files.pythonhosted.org/packages/ea/d4/5961ab4f7818989283d44add824bf4d5e7211c0163ba98be2b660f012d1c/django-pimpmytheme-2.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "61d5b9097b108120b82953cdf37975a2", "sha256": "80155a74ce566f2ab2b8652adea413582c991976c4fbfad6f0a37a5162622855" }, "downloads": -1, "filename": "django-pimpmytheme-2.6.tar.gz", "has_sig": false, "md5_digest": "61d5b9097b108120b82953cdf37975a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 605672, "upload_time": "2017-09-15T14:35:10", "url": "https://files.pythonhosted.org/packages/ea/d4/5961ab4f7818989283d44add824bf4d5e7211c0163ba98be2b660f012d1c/django-pimpmytheme-2.6.tar.gz" } ] }