{"id":30065745,"url":"https://github.com/husseinnaeemsec/octopusdash","last_synced_at":"2026-04-02T02:07:33.090Z","repository":{"id":269881160,"uuid":"908737508","full_name":"husseinnaeemsec/octopusdash","owner":"husseinnaeemsec","description":"Dynamic Django admin panel","archived":false,"fork":false,"pushed_at":"2025-09-05T13:34:31.000Z","size":2411,"stargazers_count":119,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"dev","last_synced_at":"2026-01-02T06:13:30.692Z","etag":null,"topics":["django","django-admin","django-application","django-channels","django-framework","django-project","django-rest-framework","djangorestframework"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/husseinnaeemsec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-26T20:44:31.000Z","updated_at":"2025-12-30T05:22:37.000Z","dependencies_parsed_at":"2024-12-26T21:45:32.321Z","dependency_job_id":"de17b24a-7573-4c48-83e6-7ba8e55c51f5","html_url":"https://github.com/husseinnaeemsec/octopusdash","commit_stats":null,"previous_names":["husseinnaeemsec/octopus-dash","husseinnaeemsec/octopusdash"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/husseinnaeemsec/octopusdash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husseinnaeemsec%2Foctopusdash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husseinnaeemsec%2Foctopusdash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husseinnaeemsec%2Foctopusdash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husseinnaeemsec%2Foctopusdash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/husseinnaeemsec","download_url":"https://codeload.github.com/husseinnaeemsec/octopusdash/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/husseinnaeemsec%2Foctopusdash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31294398,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T01:43:37.129Z","status":"online","status_checked_at":"2026-04-02T02:00:08.535Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-admin","django-application","django-channels","django-framework","django-project","django-rest-framework","djangorestframework"],"created_at":"2025-08-08T06:21:51.366Z","updated_at":"2026-04-02T02:07:33.009Z","avatar_url":"https://github.com/husseinnaeemsec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](static/od/logo/128.svg)\n# OctopusDash\n\nOctopusDash is a modern, open-source Django admin dashboard designed with **a beautiful UI**, **powerful filtering**, and **granular permission control** — crafted for developers and teams seeking more flexibility, clarity, and extensibility beyond the default Django admin.\n\n\u003e ⚡ **OctopusDash is actively under development!** Contributions, feedback, and feature requests are always welcome.\n\n---\n\n## 📸 Screenshots\n\n![Screenshot](screenshots/Screenshot%20from%202025-06-28%2020-48-24.png)\n![Screenshot](screenshots/Screenshot%20from%202025-06-28%2020-48-45.png)\n![Screenshot](screenshots/Screenshot%20from%202025-06-28%2020-51-42.png)\n\n---\n\n## ✨ Key Features\n\n**Modern UI \u0026 UX**  \n- Clean, minimal design powered by TailwindCSS  \n- Responsive, intuitive components  \n- Smooth navigation optimized for productivity  \n\n**Advanced Filtering \u0026 Search**  \n- Dynamic filters supporting related fields  \n- Full-text search across customizable fields  \n- Multi-field filtering for faster, precise data exploration  \n\n**Granular Permission Control**  \n- Fine-grained access control by model, action, user, or group  \n- Customizable admin classes enabling complex authorization logic  \n\n⚙️ **Extensible \u0026 Pluggable**  \n- Easily add or override views, templates, and behaviors  \n- Designed as a standalone Django app for maximum flexibility  \n\n🧩 **Coming Soon**  \n- Plugin system to extend dashboards with new features  \n- Widget support for custom charts, stats, and data cards  \n\n---\n\n## ❓ Why OctopusDash?\n\nWhile Django’s default admin is powerful, it often feels limited and outdated when your projects demand:  \n- More granular control over user permissions and data visibility  \n- Customizable dashboards tailored to real business needs  \n- A clean, modern UI that enhances developer and user experience  \n\nOctopusDash addresses these with a fresh design, rich filtering options, and extensible architecture built from the ground up.\n\n---\n\n## 🏗️ How OctopusDash Was Built\n\nUnlike many alternatives, OctopusDash is **not** just a skin or extension on top of Django’s default admin panel. Instead, it’s built **from scratch** to support ambitious features like plugins, custom widgets, auto API generation, and more.\n\nThis approach allows us to deeply understand Django’s internals while avoiding the constraints and limitations of the default admin — all without sacrificing Django’s powerful template system and generic views.\n\n---\n\n## 🛠 Installation\n\n\u003e ⚠ Requires Python 3.8+ and Django 4.x+\n\nInstall via pip:\n```bash\npip install octopusdash\n```\n\nAdd `octopusdash` to your `INSTALLED_APPS`:\n```python\nINSTALLED_APPS = [\n    'octopusdash',\n    # ...\n]\n```\n\nInclude OctopusDash URLs in your project:\n```python\nfrom django.urls import path, include\n\nurlpatterns = [\n    path('octopusdash/', include('octopusdash.urls')),\n    # ...\n]\n```\n\nAdd required middlewares:\n```python\nMIDDLEWARE = [\n    'octopusdash.middlewares.app.ViewErrorHandlerMiddleware',\n    'octopusdash.middlewares.authentication.CheckAuthenticationMiddleware',\n    # ...\n]\n```\n\nConfigure template context processors:\n```python\nTEMPLATES = [\n    {\n        'BACKEND': 'django.template.backends.django.DjangoTemplates',\n        'DIRS': [],\n        'APP_DIRS': True,\n        'OPTIONS': {\n            'context_processors': [\n                'django.template.context_processors.request',\n                'django.contrib.auth.context_processors.auth',\n                'django.contrib.messages.context_processors.messages',\n                'octopusdash.context.global_context',\n            ],\n        },\n    },\n]\n```\n\nAdd OctopusDash settings:\n```python\nOCTOPUSDASH = {\n    'dashboard_path': '/dashboard',\n}\n```\n\n---\n\n## 🚀 Quick Start\n\nExample of registering your app and model admin:\n\n```python\nfrom octopusdash.contrib import admin as od_admin\nfrom .models import Post\n\napp = od_admin.AppAdmin('home')\n\nclass PostAdmin(od_admin.ModelAdmin):\n    model = Post\n    list_display = ['title', 'content', 'is_active', 'author']\n\napp.register_to_admin_panel(model_admin=PostAdmin)\n```\n\nVisit `/dashboard/` after running the server.\n\n---\n\n## ⚡ Custom Actions\n\nDefine custom actions on your model admin:\n\n```python\nclass PostAdmin(od_admin.ModelAdmin):\n    model = Post\n    actions = ['set_to_active']\n\n    @od_admin.action(desc=\"Change post state to active.\")\n    def set_to_active(self, queryset):\n        for post in queryset:\n            post.is_active = True\n```\n\n---\n\n## ✏️ Inline Edit Support\n\nEdit objects directly in the table using **Django formsets**:\n\n```python\nclass PostAdmin(od_admin.ModelAdmin):\n    model = Post\n    list_display = ('title', 'content', 'author', 'is_active')\n    list_editable = ('title', 'author', 'is_active')\n```\n\n**Note:** Fields in `list_editable` must be included in `list_display`.\n\n---\n\n## ⚙️ ModelAdmin Attributes\n\n- `manager`: DashboardModelManager instance\n- `model`: Django model\n- `list_display`: fields to display\n- `list_editable`: fields editable inline\n- `search_fields`: fields to search\n- `filter_fields`: fields to filter\n- `readonly_fields`: non-editable fields\n- `form_fields`: fields in create/update view (`'__all__'` by default)\n\n\u003e **Note:** Do not override methods in `ModelAdmin` as it follows a specific internal pattern.\n\n---\n\n## 📖 Documentation \u0026 Support\n\nDocumentation is in progress! Explore the code, open issues, and join the discussion.\n\n---\n\n## 🤝 Contributing\n\nOctopusDash is open-source under the MIT license.  \nContributions, feature requests, and bug reports are welcome.  \nPlease ⭐ star the repo if you find it useful!\n\n---\n\nMade by [husseinnaeemsec](https://github.com/husseinnaeemsec)\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusseinnaeemsec%2Foctopusdash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhusseinnaeemsec%2Foctopusdash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhusseinnaeemsec%2Foctopusdash/lists"}