{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "![Screenshot](https://github.com/lukasvinclav/django-nucleus/raw/master/screenshot-1.jpg)\n![Screenshot](https://github.com/lukasvinclav/django-nucleus/raw/master/screenshot-2.jpg)\n\n# django-nucleus\n\n![](https://img.shields.io/badge/Version-0.1.0-orange.svg?style=flat-square)\n![](https://img.shields.io/badge/Django-2.1+-green.svg?style=flat-square)\n![](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)\n\nDjango Nucleus is Django admin theme extending default admin CSS styles.\n\n## Getting started\n\n1. Installation\n\n```bash\npip install django-nucleus\n```\n\nor if you are using pipenv\n\n```bash\npipenv install django-nucleus\n```\n\n2. Add **nucleus** into **INSTALLED_APPS** in your settings file before **django.contrib.admin**.\n\n3. Update **context_processors** by adding new context processor **nucleus.context_processors.nucleus**\n\n## Nucleus settings\n\n```python\n_ = lambda s: s # Translations in setting file\n\nNUCLEUS = {\n 'sidebar': {\n # Title\n 'title': _('Custom title'),\n\n # Footer\n 'footer': {\n 'title': _('Custom title'),\n 'description': _('Longer text displayed below the title'),\n },\n\n # Navigation\n 'navigation': {\n # Application\n 'auth': {\n 'title': _('Accounts'), # Override title\n 'icon': 'img/custom-icon.svg' # Optional\n },\n\n # Model\n 'auth.User': {\n 'title': _('Users'),\n 'icon': 'img/custom-icon.svg' # Optional\n } \n } \n }\n}\n```\n\n## Custom dashboard page\n\n**apps.py**\n\n```python\nfrom django.contrib.admin.apps import AdminConfig\n\n\nclass AppAdminConfig(AdminConfig):\n default_site = 'app.admin.AppAdmin'\n```\n\n**admin.py**\n\n```python\nfrom django.contrib.admin import AdminSite\n\n\nclass AppAdmin(AdminSite):\n def index(self, request, extra_context=None):\n # Update extra_context with new variables\n return super().index(request, extra_context)\n```\n\n**settings.py**\n\n```python\nINSTALLED_APPS = [\n 'app.apps.AppAdminConfig',\n # 'django.contrib.admin', \n]\n```\n\n**templates/admin/index.html**\n\n```djangotemplate\n{% extends \"admin/base_site.html\" %}\n{% load i18n static %}\n\n{% block bodyclass %}{{ block.super }} dashboard{% endblock %}\n\n{% block breadcrumbs %}{% endblock %}\n\n{% block content %}\n \n{% endblock %}\n```\n\n## Components\n\n### Heading\n\n```python\nreturn render_to_string('nucleus/components/heading.html', { \n 'title': 'Title,\n 'subtitle': 'Subtitle,\n 'image': 'img/image.png', # Optional image\n 'rounded': True, # Rounded corners, optional\n 'initials': 'LV', # Optional text of the image is not available\n 'background_color': 'red' # Optional background color\n})\n```\n\n### Stat item\n\n```python\nreturn render_to_string('nucleus/components/stat_item.html', {\n value: '5269',\n title: 'Units Sold',\n subtitle: 'Avg. 351 per week', \n label: '-12%',\n})\n```\n\n### Chart\n\n```python\nreturn render_to_string('nucleus/components/chart.html', {\n series: '{\"labels\": [\"1\", \"2\", \"3\"], \"datasets\": [{\"data\": [1, 2, 3]}]}', # JSON object\n height: 360, # Optional \n})\n```\n\n### Signed number\n\n```python\nreturn render_to_string('nucleus/components/signed_number.html', {\n 'value': 21.87, # Value which will be compared\n 'display': '$21.87 ', # For example string with currency to display (django-money object)\n})\n```\n\n### Progress\n\n```python\nreturn render_to_string('nucleus/components/progress.html', {\n 'value': 32, # Value in percent in this case it will be (style=\"width: 32%\")\n})\n```\n\n### Label\n\n```python\nreturn render_to_string('nucleus/components/progress.html', {\n 'title': _('Active'),\n 'class': 'success', # Optional. Accepted values: success, info, error \n})\n```\n\n## User avatar\n\nTo display user avatar in top right corner before the currently signed user you can implement two methods in user model:\n\n- **get_initials**\n- **get_avatar**\n\n## Credits\n\n- [Feather](https://feathericons.com/)\n- [django-capture-tag](https://github.com/edoburu/django-capture-tag)\n- [Tailwind CSS](https://tailwindcss.com)\n- [Nunito](https://fonts.google.com/specimen/Nunito)\n- [Chart.js](https://www.chartjs.org/)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/lukasvinclav/django-nucleus", "keywords": "django admin theme clean minimal ui sidebar", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-nucleus", "package_url": "https://pypi.org/project/django-nucleus/", "platform": "", "project_url": "https://pypi.org/project/django-nucleus/", "project_urls": { "Homepage": "http://github.com/lukasvinclav/django-nucleus" }, "release_url": "https://pypi.org/project/django-nucleus/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Theme for Django admin", "version": "0.1.2" }, "last_serial": 5293809, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6eda71a95df33fab4d2f5641948cdb2f", "sha256": "89c961d798f4a84ecc72036400d52be85960a3c8dfd7a115af69f5bc6570f327" }, "downloads": -1, "filename": "django-nucleus-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6eda71a95df33fab4d2f5641948cdb2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104513, "upload_time": "2019-03-02T10:52:16", "url": "https://files.pythonhosted.org/packages/e8/ef/7d85394b65992b93df4f63be6de6b009944072368d84149e2f7beaa28406/django-nucleus-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0d8294f7fb99c34e03c14ba770f703de", "sha256": "aadb3cd17d7b4a1e5e26adce06512d9d694b5f76bb384fc8f609dd9888bed629" }, "downloads": -1, "filename": "django-nucleus-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0d8294f7fb99c34e03c14ba770f703de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104686, "upload_time": "2019-03-18T17:32:17", "url": "https://files.pythonhosted.org/packages/d7/55/9bae1e826e4d226e5bf22db45bb40cb311cee6f01bec9fad64dd0adfa86f/django-nucleus-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "fdc7081034440f9cbf208c475c35097f", "sha256": "d4a74d5ad80020a84a5d8045af008ffa4b0575b73688238e22366dd06098915a" }, "downloads": -1, "filename": "django-nucleus-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fdc7081034440f9cbf208c475c35097f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103450, "upload_time": "2019-05-20T18:59:20", "url": "https://files.pythonhosted.org/packages/e5/87/f140eb3637ea18209335d71cafb02f8ea47d17dca14814cb3f556dac2ec3/django-nucleus-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fdc7081034440f9cbf208c475c35097f", "sha256": "d4a74d5ad80020a84a5d8045af008ffa4b0575b73688238e22366dd06098915a" }, "downloads": -1, "filename": "django-nucleus-0.1.2.tar.gz", "has_sig": false, "md5_digest": "fdc7081034440f9cbf208c475c35097f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 103450, "upload_time": "2019-05-20T18:59:20", "url": "https://files.pythonhosted.org/packages/e5/87/f140eb3637ea18209335d71cafb02f8ea47d17dca14814cb3f556dac2ec3/django-nucleus-0.1.2.tar.gz" } ] }