Compare commits

..

No commits in common. "170766237af17843d77052c88200c4069dda622c" and "4091bba01a6d95400e110a2a33e2c2a218e2c3df" have entirely different histories.

2632 changed files with 56 additions and 517280 deletions

View File

@ -1,20 +1,21 @@
kind: pipeline
type: docker
name: deploy-polisplexity
name: default
clone:
depth: 1
submodules: true
submodules: true # Ensure submodules like pxy_city_digital_twins are cloned
steps:
- name: install dependencies and run Django checks
- name: install dependencies and check Django project
image: python:3.10
environment:
DATABASE_URL:
from_secret: DATABASE_URL
SECRET_KEY:
from_secret: SECRET_KEY
DEBUG: "False"
DEBUG:
from_secret: DEBUG
NEO4J_URI:
from_secret: NEO4J_URI
NEO4J_USERNAME:
@ -30,10 +31,10 @@ steps:
commands:
- python -m pip install --upgrade pip
- pip install -r requirements.txt
- python manage.py check --deploy --fail-level WARNING
- echo "✅ Django deploy checks passed"
- python manage.py check
- echo "✅ Django check completed"
- name: deploy to production server
- name: deploy to production
image: appleboy/ssh
settings:
host:
@ -48,7 +49,4 @@ steps:
- git pull origin main
- docker compose down
- docker compose up -d --build
- docker compose exec web python manage.py migrate --noinput
- docker compose exec web python manage.py collectstatic --noinput
- echo "🚀 Production deployment complete"
- echo "🚀 Deployment complete"

View File

@ -1,12 +1,14 @@
# Etapa base: Python oficial
FROM python:3.10-slim as base
# Use official Python image
FROM python:3.10
# Variables de entorno para producción
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set working directory
WORKDIR /app
# Instala dependencias del sistema
RUN apt-get update && apt-get install -y --no-install-recommends \
# Copy application code
COPY . .
# Add before pip install step
RUN apt-get update && apt-get install -y \
build-essential \
libgeos-dev \
libspatialindex-dev \
@ -18,20 +20,11 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
python3-dev \
&& rm -rf /var/lib/apt/lists/*
# Crea directorio de trabajo
WORKDIR /app
# Copia requirements primero (mejor cacheo)
COPY requirements.txt .
# Instala dependencias Python
# Install dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copia el resto del proyecto
COPY . .
# Expone el puerto del contenedor
# Expose the application port
EXPOSE 8000
# Comando por defecto para producción con Gunicorn
CMD ["gunicorn", "polisplexity.wsgi:application", "--bind", "0.0.0.0:8000", "--workers=3", "--timeout=120"]
# Run Gunicorn server
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "polisplexity.wsgi:application"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,12 +5,12 @@ services:
image: postgres:15
container_name: polisplexity_postgres
restart: always
ports:
- "5434:5432"
volumes:
- pgdata:/var/lib/postgresql/data
env_file:
- .env
ports:
- "5434:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
@ -24,20 +24,14 @@ services:
depends_on:
db:
condition: service_healthy
volumes:
- .:/app # Sync local code into container for live reload
ports:
- "8001:8001"
env_file:
- .env
command: >
sh -c "python manage.py migrate &&
python manage.py collectstatic --noinput &&
gunicorn polisplexity.wsgi:application --bind 0.0.0.0:8001"
volumes:
- static_data:/app/static
- media_data:/app/media
# - .:/app # ←❌ No lo uses en producción: desactiva para evitar sobrescribir
command: python manage.py runserver 0.0.0.0:8001
volumes:
pgdata:
static_data:
media_data:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,16 +1,33 @@
"""
Django settings for polisplexity project.
Generated by 'django-admin startproject' using Django 5.0.3.
For more information on this file, see
https://docs.djangoproject.com/en/5.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""
from pathlib import Path
import os
import dj_database_url
from dotenv import load_dotenv
# Load environment variables from .env file
load_dotenv()
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
BASE_URL = "https://app.polisplexity.tech"
# Core security settings
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.getenv("SECRET_KEY")
DEBUG = os.getenv("DEBUG", "False") == "True"
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = os.getenv("DEBUG") == "True"
ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "").split(",")
# Application definition
@ -21,8 +38,6 @@ INSTALLED_APPS = [
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
# App modules
"core",
"pxy_de",
"pxy_cr",
@ -33,11 +48,6 @@ INSTALLED_APPS = [
"pxy_meta_pages",
"pxy_langchain",
"pxy_neo4j",
"pxy_dashboard",
"pxy_dashboard.custom",
"pxy_dashboard.apps",
"pxy_dashboard.components",
"pxy_dashboard.layouts",
]
MIDDLEWARE = [
@ -70,7 +80,7 @@ TEMPLATES = [
WSGI_APPLICATION = "polisplexity.wsgi.application"
# Database
# Database Configuration
DATABASES = {
"default": dj_database_url.config(default=os.getenv("DATABASE_URL"))
}
@ -89,31 +99,26 @@ TIME_ZONE = "UTC"
USE_I18N = True
USE_TZ = True
# Static & Media Files
# Static and Media Files
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "polisplexity/pxy_dashboard/static/dashboard"), # Jidox assets
]
STATIC_ROOT = os.getenv("STATIC_ROOT", os.path.join(BASE_DIR, "static"))
MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "mediafiles")
MEDIA_ROOT = os.getenv("MEDIA_ROOT", os.path.join(BASE_DIR, "media"))
# Default primary key field type
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# External services
# Facebook API Tokens
PAGE_ACCESS_TOKEN = os.getenv("PAGE_ACCESS_TOKEN")
VERIFY_TOKEN = os.getenv("VERIFY_TOKEN")
# Async-safe for Neo4j or Celery
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
# Neo4j
# Neo4j Database Configuration
NEO4J_URI = os.getenv("NEO4J_URI")
NEO4J_USERNAME = os.getenv("NEO4J_USERNAME")
NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD")
# OpenAI
# OpenAI API Key
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")

View File

@ -25,13 +25,11 @@ admin.site.index_title = "Welcome to Polisplexity City Technologies Portal"
urlpatterns = [
path("admin/", admin.site.urls),
path('', include('pxy_dashboard.urls')),
path('', include('core.urls')),
path('', include('pxy_city_digital_twins.urls')),
path('pxy_whatsapp/', include('pxy_whatsapp.urls')),
path('bots/', include('pxy_bots.urls')), # Webhook URL: /bots/webhook/<bot_name>/
path('pxy_meta_pages/', include('pxy_meta_pages.urls', namespace='pxy_meta_pages')),
]
if settings.DEBUG:

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.

View File

@ -1,6 +0,0 @@
from django.apps import AppConfig
class PxyDashboardConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pxy_dashboard'

View File

@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.

View File

@ -1,5 +0,0 @@
from django.apps import AppConfig
class AppsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pxy_dashboard.apps'

View File

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

View File

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@ -1,31 +0,0 @@
from django.urls import path
from pxy_dashboard.apps.views import (
apps_calendar_view,
apps_chat_view,
apps_email_inbox_view,
apps_email_read,
apps_tasks,
apps_tasks_details,
apps_kanban_board,
apps_file_manager,
)
app_name = "apps"
urlpatterns = [
# Calaendar
path("calendar", view=apps_calendar_view, name="calendar"),
# Chat
path("chat", view=apps_chat_view, name="chat"),
# Email
path("email-inbox", view=apps_email_inbox_view, name="email-inbox"),
path("email-read", view=apps_email_read, name="email-read"),
# Tasks
path("tasks", view=apps_tasks, name="tasks"),
path("tasks-details", view=apps_tasks_details, name="tasks-details"),
# Kanban
path("kanban-board", view=apps_kanban_board, name="kanban"),
# File Manager
path("file-manager", view=apps_file_manager, name="file-manager"),
]

View File

@ -1,22 +0,0 @@
from django.views.generic.base import TemplateView
from django.contrib.auth.mixins import LoginRequiredMixin
class AppsView(LoginRequiredMixin,TemplateView):
pass
# Calendar
apps_calendar_view = AppsView.as_view(template_name="apps/apps-calendar.html")
# Chat
apps_chat_view = AppsView.as_view(template_name="apps/apps-chat.html")
# Mail Box
apps_email_inbox_view = AppsView.as_view(template_name="apps/apps-email-inbox.html")
apps_email_read = AppsView.as_view(template_name="apps/apps-email-read.html")
# Tasks
apps_tasks = AppsView.as_view(template_name="apps/apps-tasks.html")
apps_tasks_details = AppsView.as_view(template_name="apps/apps-tasks-details.html")
# Kanban
apps_kanban_board = AppsView.as_view(template_name="apps/apps-kanban.html")
# File Manager
apps_file_manager = AppsView.as_view(template_name="apps/apps-file-manager.html")

View File

@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.

View File

@ -1,5 +0,0 @@
from django.apps import AppConfig
class ComponentsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pxy_dashboard.components'

View File

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

View File

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@ -1,166 +0,0 @@
from django.urls import path
from pxy_dashboard.components.views import (
accordions_view,
alerts_view,
avatars_view,
badges_view,
breadcrumb_view,
buttons_view,
cards_view,
carousel_view,
collapse_view,
dropdowns_view,
embed_video_view,
grid_view,
links_view,
list_group_view,
modals_view,
notifications_view,
offcanvas_view,
placeholders_view,
pagination_view,
popovers_view,
progress_view,
spinners_view,
tabs_view,
tooltips_view,
typography_view,
utilities_view,
extended_dragula_view,
extended_range_slider_view,
extended_ratings_view,
extended_scrollbar_view,
extended_scrollspy_view,
widgets_view,
icons_remixicons_view,
icons_bootstrap_view,
icons_material_view,
apex_area_view,
apex_bar_view,
apex_bubble_view,
apex_candlestick_view,
apex_column_view,
apex_heatmap_view,
apex_line_view,
apex_mixed_view,
apex_timeline_view,
apex_boxplot_view,
apex_treemap_view,
apex_pie_view,
apex_radar_view,
apex_radialbar_view,
apex_scatter_view,
apex_polar_area_view,
apex_sparklines_view,
chartjs_area_view,
chartjs_bar_view,
chartjs_line_view,
chartjs_other_view,
form_elements_view,
form_advanced_view,
form_wizard_view,
form_fileuploads_view,
form_editors_view,
tables_basic_view,
tables_datatable_view,
google_map_view,
vector_map_view,
form_validation_view,
)
urlpatterns = [
# Base Ui
path("accordions", view=accordions_view, name="accordions"),
path("alerts", view=alerts_view, name="alerts"),
path("avatars", view=avatars_view, name="avatars"),
path("badges", view=badges_view, name="badges"),
path("breadcrumb", view=breadcrumb_view, name="breadcrumb"),
path("buttons", view=buttons_view, name="buttons"),
path("cards", view=cards_view, name="cards"),
path("carousel", view=carousel_view, name="carousel"),
path("collapse", view=collapse_view, name="collapse"),
path("dropdowns", view=dropdowns_view, name="dropdowns"),
path("embed-video", view=embed_video_view, name="embed-video"),
path("grid", view=grid_view, name="grid"),
path("links", view=links_view, name="links"),
path("list-group", view=list_group_view, name="list-group"),
path("modals", view=modals_view, name="modals"),
path("notifications", view=notifications_view, name="notifications"),
path("offcanvas", view=offcanvas_view, name="offcanvas"),
path("placeholders", view=placeholders_view, name="placeholders"),
path("pagination", view=pagination_view, name="pagination"),
path("popovers", view=popovers_view, name="popovers"),
path("progress", view=progress_view, name="progress"),
path("spinners", view=spinners_view, name="spinners"),
path("tabs", view=tabs_view, name="tabs"),
path("tooltips", view=tooltips_view, name="tooltips"),
path("typography", view=typography_view, name="typography"),
path("utilities", view=utilities_view, name="utilities"),
# Extended Ui
path("extended-dragula", view=extended_dragula_view, name="extended-dragula"),
path(
"extended-range-slider",
view=extended_range_slider_view,
name="extended-range-slider",
),
path("extended-ratings", view=extended_ratings_view, name="extended-ratings"),
path("extended-scrollbar", view=extended_scrollbar_view, name="extended-scrollbar"),
path("extended-scrollspy", view=extended_scrollspy_view, name="extended-scrollspy"),
# Widgets
path("widgets", view=widgets_view, name="widgets"),
# Icons
path("icons-remixicons", view=icons_remixicons_view, name="icons-remixicons"),
path("icons-bootstrap", view=icons_bootstrap_view, name="icons-bootstrap"),
path("icons-material-symbol", view=icons_material_view, name="icons-material"),
# Charts
# Apex
path("apex-area", view=apex_area_view, name="apex-area"),
path("apex-bar", view=apex_bar_view, name="apex-bar"),
path("apex-bubble", view=apex_bubble_view, name="apex-bubble"),
path("apex-candlestick", view=apex_candlestick_view, name="apex-candlestick"),
path("apex-column", view=apex_column_view, name="apex-column"),
path("apex-heatmap", view=apex_heatmap_view, name="apex-heatmap"),
path("apex-line", view=apex_line_view, name="apex-line"),
path("apex-mixed", view=apex_mixed_view, name="apex-mixed"),
path("apex-timeline", view=apex_timeline_view, name="apex-timeline"),
path("apex-boxplot", view=apex_boxplot_view, name="apex-boxplot"),
path("apex-treemap", view=apex_treemap_view, name="apex-treemap"),
path("apex-pie", view=apex_pie_view, name="apex-pie"),
path("apex-radar", view=apex_radar_view, name="apex-radar"),
path("apex-radialbar", view=apex_radialbar_view, name="apex-radialbar"),
path("apex-scatter", view=apex_scatter_view, name="apex-scatter"),
path("apex-polar-area", view=apex_polar_area_view, name="apex-polar-area"),
path("apex-sparklines", view=apex_sparklines_view, name="apex-sparklines"),
# ChartJs
path("chartjs-area", view=chartjs_area_view, name="chartjs-area"),
path("chartjs-bar", view=chartjs_bar_view, name="chartjs-bar"),
path("chartjs-line", view=chartjs_line_view, name="chartjs-line"),
path("chartjs-other", view=chartjs_other_view, name="chartjs-other"),
# Forms
path("form-elements", view=form_elements_view, name="form-elements"),
path("form-advanced", view=form_advanced_view, name="form-advanced"),
path("form-validation", view=form_validation_view, name="form-validation"),
path("form-wizard", view=form_wizard_view, name="form-wizard"),
path("form-fileuploads", view=form_fileuploads_view, name="form-fileuploads"),
path("form-editors", view=form_editors_view, name="form-editors"),
# Tables
path("tables-basic", view=tables_basic_view, name="tables-basic"),
path("tables-datatable", view=tables_datatable_view, name="tables-datatable"),
# Maps
path("google-map", view=google_map_view, name="google-map"),
path("vector-map", view=vector_map_view, name="vector-map"),
]

View File

@ -1,193 +0,0 @@
from django.views.generic.base import TemplateView
from django.contrib.auth.mixins import LoginRequiredMixin
class ComponentView(LoginRequiredMixin,TemplateView):
pass
# Base Ui
accordions_view = ComponentView.as_view(
template_name="components/base-ui/accordions.html"
)
alerts_view = ComponentView.as_view(template_name="components/base-ui/alerts.html")
avatars_view = ComponentView.as_view(template_name="components/base-ui/avatars.html")
badges_view = ComponentView.as_view(template_name="components/base-ui/badges.html")
breadcrumb_view = ComponentView.as_view(
template_name="components/base-ui/breadcrumb.html"
)
buttons_view = ComponentView.as_view(template_name="components/base-ui/buttons.html")
cards_view = ComponentView.as_view(template_name="components/base-ui/cards.html")
carousel_view = ComponentView.as_view(template_name="components/base-ui/carousel.html")
collapse_view = ComponentView.as_view(template_name="components/base-ui/collapse.html")
dropdowns_view = ComponentView.as_view(
template_name="components/base-ui/dropdowns.html"
)
embed_video_view = ComponentView.as_view(
template_name="components/base-ui/embed-video.html"
)
grid_view = ComponentView.as_view(template_name="components/base-ui/grid.html")
links_view = ComponentView.as_view(template_name="components/base-ui/links.html")
list_group_view = ComponentView.as_view(
template_name="components/base-ui/list-group.html"
)
modals_view = ComponentView.as_view(template_name="components/base-ui/modals.html")
notifications_view = ComponentView.as_view(
template_name="components/base-ui/notifications.html"
)
offcanvas_view = ComponentView.as_view(
template_name="components/base-ui/offcanvas.html"
)
placeholders_view = ComponentView.as_view(
template_name="components/base-ui/placeholders.html"
)
pagination_view = ComponentView.as_view(
template_name="components/base-ui/pagination.html"
)
popovers_view = ComponentView.as_view(template_name="components/base-ui/popovers.html")
progress_view = ComponentView.as_view(template_name="components/base-ui/progress.html")
spinners_view = ComponentView.as_view(template_name="components/base-ui/spinners.html")
tabs_view = ComponentView.as_view(template_name="components/base-ui/tabs.html")
tooltips_view = ComponentView.as_view(template_name="components/base-ui/tooltips.html")
typography_view = ComponentView.as_view(
template_name="components/base-ui/typography.html"
)
utilities_view = ComponentView.as_view(
template_name="components/base-ui/utilities.html"
)
# Extended Ui
extended_dragula_view = ComponentView.as_view(
template_name="components/extended-ui/extended-dragula.html"
)
extended_range_slider_view = ComponentView.as_view(
template_name="components/extended-ui/extended-range-slider.html"
)
extended_ratings_view = ComponentView.as_view(
template_name="components/extended-ui/extended-ratings.html"
)
extended_scrollbar_view = ComponentView.as_view(
template_name="components/extended-ui/extended-scrollbar.html"
)
extended_scrollspy_view = ComponentView.as_view(
template_name="components/extended-ui/extended-scrollspy.html"
)
# Widgets
widgets_view = ComponentView.as_view(template_name="components/widgets/widgets.html")
# Icons
icons_remixicons_view = ComponentView.as_view(
template_name="components/icons/icons-remixicons.html"
)
icons_bootstrap_view = ComponentView.as_view(
template_name="components/icons/icons-bootstrap.html"
)
icons_material_view = ComponentView.as_view(
template_name="components/icons/icons-material-symbol.html"
)
# Charts
# Apex
apex_area_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-area.html"
)
apex_bar_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-bar.html"
)
apex_bubble_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-bubble.html"
)
apex_candlestick_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-candlestick.html"
)
apex_column_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-column.html"
)
apex_heatmap_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-heatmap.html"
)
apex_line_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-line.html"
)
apex_mixed_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-mixed.html"
)
apex_timeline_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-timeline.html"
)
apex_boxplot_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-boxplot.html"
)
apex_treemap_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-treemap.html"
)
apex_pie_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-pie.html"
)
apex_radar_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-radar.html"
)
apex_radialbar_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-radialbar.html"
)
apex_scatter_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-scatter.html"
)
apex_polar_area_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-polar-area.html"
)
apex_sparklines_view = ComponentView.as_view(
template_name="components/charts/apex-charts/apex-sparklines.html"
)
# ChartJs
chartjs_area_view = ComponentView.as_view(
template_name="components/charts/chartjs/chartjs-area.html"
)
chartjs_bar_view = ComponentView.as_view(
template_name="components/charts/chartjs/chartjs-bar.html"
)
chartjs_line_view = ComponentView.as_view(
template_name="components/charts/chartjs/chartjs-line.html"
)
chartjs_other_view = ComponentView.as_view(
template_name="components/charts/chartjs/chartjs-other.html"
)
# Forms
form_elements_view = ComponentView.as_view(
template_name="components/forms/form-elements.html"
)
form_advanced_view = ComponentView.as_view(
template_name="components/forms/form-advanced.html"
)
form_validation_view = ComponentView.as_view(
template_name="components/forms/form-validation.html"
)
form_wizard_view = ComponentView.as_view(
template_name="components/forms/form-wizard.html"
)
form_fileuploads_view = ComponentView.as_view(
template_name="components/forms/form-fileuploads.html"
)
form_editors_view = ComponentView.as_view(
template_name="components/forms/form-editors.html"
)
# Tables
tables_basic_view = ComponentView.as_view(
template_name="components/tables/tables-basic.html"
)
tables_datatable_view = ComponentView.as_view(
template_name="components/tables/tables-datatable.html"
)
# Maps
google_map_view = ComponentView.as_view(
template_name="components/maps/maps-google.html"
)
vector_map_view = ComponentView.as_view(
template_name="components/maps/maps-vector.html"
)

View File

@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.

View File

@ -1,6 +0,0 @@
from django.apps import AppConfig
class CustomConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pxy_dashboard.custom'

View File

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

View File

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@ -1,34 +0,0 @@
from django.urls import path
from pxy_dashboard.custom.views import pages_profile_view,pages_invoice_view,pages_faq_view,pages_pricing_view,pages_maintenance_view,pages_starter_view,pages_preloader_view,pages_timeline_view,auth_login_view,auth_login2_view,auth_register_view,auth_register2_view,auth_logout_view,auth_logout2_view,auth_recoverpw_view,auth_recoverpw2_view,auth_lock_screen_view,auth_lock_screen2_view,auth_confirm_mail_view,auth_confirm_mail2_view,error_404_view,error_404_alt_view,error_500_view
app_name = "custom"
urlpatterns = [
# Pages
path("profile", view=pages_profile_view, name="profile"),
path("invoice", view=pages_invoice_view, name="invoice"),
path("faq", view=pages_faq_view, name="faq"),
path("pricing", view=pages_pricing_view, name="pricing"),
path("maintenance", view=pages_maintenance_view, name="maintenance"),
path("starter-page", view=pages_starter_view, name="starter"),
path("preloader", view=pages_preloader_view, name="preloader"),
path("timeline", view=pages_timeline_view, name="timeline"),
# Auth Pages
path("login", view=auth_login_view, name="login"),
path("login-2", view=auth_login2_view, name="login-2"),
path("register", view=auth_register_view, name="register"),
path("register-2", view=auth_register2_view, name="register-2"),
path("logout", view=auth_logout_view, name="logout"),
path("logout-2", view=auth_logout2_view, name="logout-2"),
path("recoverpw", view=auth_recoverpw_view, name="recoverpw"),
path("recoverpw-2", view=auth_recoverpw2_view, name="recoverpw-2"),
path("lock-screen", view=auth_lock_screen_view, name="lock-screen"),
path("lock-screen-2", view=auth_lock_screen2_view, name="lock-screen-2"),
path("confirm-mail", view=auth_confirm_mail_view, name="confirm-mail"),
path("confirm-mail-2", view=auth_confirm_mail2_view, name="confirm-mail-2"),
# Error Pages
path("error-404", view=error_404_view, name="error-404"),
path("error-404-alt", view=error_404_alt_view, name="error-404-alt"),
path("error-500", view=error_500_view, name="error-500"),
]

View File

@ -1,34 +0,0 @@
from django.views.generic.base import TemplateView
from django.contrib.auth.mixins import LoginRequiredMixin
class CustomView(LoginRequiredMixin,TemplateView):
pass
#Pages
pages_profile_view = CustomView.as_view(template_name="custom/pages/pages-profile.html")
pages_invoice_view = CustomView.as_view(template_name="custom/pages/pages-invoice.html")
pages_faq_view = CustomView.as_view(template_name="custom/pages/pages-faq.html")
pages_pricing_view = CustomView.as_view(template_name="custom/pages/pages-pricing.html")
pages_maintenance_view = CustomView.as_view(template_name="custom/pages/pages-maintenance.html")
pages_starter_view = CustomView.as_view(template_name="custom/pages/pages-starter.html")
pages_preloader_view = CustomView.as_view(template_name="custom/pages/pages-preloader.html")
pages_timeline_view = CustomView.as_view(template_name="custom/pages/pages-timeline.html")
# Auth Pages
auth_login_view = CustomView.as_view(template_name="custom/auth-pages/auth-login.html")
auth_login2_view = CustomView.as_view(template_name="custom/auth-pages/auth-login-2.html")
auth_register_view = CustomView.as_view(template_name="custom/auth-pages/auth-register.html")
auth_register2_view = CustomView.as_view(template_name="custom/auth-pages/auth-register-2.html")
auth_logout_view = CustomView.as_view(template_name="custom/auth-pages/auth-logout.html")
auth_logout2_view = CustomView.as_view(template_name="custom/auth-pages/auth-logout-2.html")
auth_recoverpw_view = CustomView.as_view(template_name="custom/auth-pages/auth-recoverpw.html")
auth_recoverpw2_view = CustomView.as_view(template_name="custom/auth-pages/auth-recoverpw-2.html")
auth_lock_screen_view = CustomView.as_view(template_name="custom/auth-pages/auth-lock-screen.html")
auth_lock_screen2_view = CustomView.as_view(template_name="custom/auth-pages/auth-lock-screen-2.html")
auth_confirm_mail_view = CustomView.as_view(template_name="custom/auth-pages/auth-confirm-mail.html")
auth_confirm_mail2_view = CustomView.as_view(template_name="custom/auth-pages/auth-confirm-mail-2.html")
# Error Pages
error_404_view = CustomView.as_view(template_name="custom/error-pages/error-404.html")
error_404_alt_view = CustomView.as_view(template_name="custom/error-pages/error-404-alt.html")
error_500_view = CustomView.as_view(template_name="custom/error-pages/error-500.html")

View File

@ -1,3 +0,0 @@
from django.contrib import admin
# Register your models here.

View File

@ -1,6 +0,0 @@
from django.apps import AppConfig
class LayoutsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'pxy_dashboard.layouts'

View File

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

View File

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View File

@ -1,14 +0,0 @@
from django.urls import path
from pxy_dashboard.layouts.views import horizontal_view,detached_view,full_view,fullscreen_view,hover_view,compact_view,icon_view
urlpatterns = [
# Layouts
path("horizontal", view=horizontal_view, name="horizontal"),
path("detached", view=detached_view, name="detached"),
path("full", view=full_view, name="full"),
path("fullscreen", view=fullscreen_view, name="fullscreen"),
path("hover", view=hover_view, name="hover"),
path("compact", view=compact_view, name="compact"),
path("icon-view", view=icon_view, name="icon-view"),
]

View File

@ -1,14 +0,0 @@
from django.views.generic.base import TemplateView
from django.contrib.auth.mixins import LoginRequiredMixin
class LayoutView(LoginRequiredMixin,TemplateView):
pass
# Layouts
horizontal_view = LayoutView.as_view(template_name="custom/layouts/horizontal.html")
detached_view = LayoutView.as_view(template_name="custom/layouts/detached.html")
full_view = LayoutView.as_view(template_name="custom/layouts/full.html")
fullscreen_view = LayoutView.as_view(template_name="custom/layouts/fullscreen.html")
hover_view = LayoutView.as_view(template_name="custom/layouts/hover.html")
compact_view = LayoutView.as_view(template_name="custom/layouts/compact.html")
icon_view = LayoutView.as_view(template_name="custom/layouts/icon-view.html")

View File

@ -1,3 +0,0 @@
from django.db import models
# Create your models here.

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,116 +0,0 @@
[
{
"id": "node_1",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 1",
"children": [
{
"id": "node_4",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 1.1",
"children": false
},
{
"id": "node_5",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 1.2",
"children": false
},
{
"id": "node_6",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 1.3",
"children": [
{
"id": "node_13",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 1.3.1",
"children": false
},
{
"id": "node_15",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 1.3.2",
"children": false
}
]
}
]
},
{
"id": "node_2",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 2",
"children": [
{
"id": "node_7",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 2.1",
"children": false
},
{
"id": "node_8",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 2.2",
"children": false
},
{
"id": "node_9",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 2.3",
"children": [
{
"id": "node_16",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 2.3.1",
"children": false
},
{
"id": "node_17",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 2.3.2",
"children": false
}
]
}
]
},
{
"id": "node_3",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 3",
"children": [
{
"id": "node_10",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 3.1",
"children": false
},
{
"id": "node_11",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 3.2",
"children": false
},
{
"id": "node_12",
"icon": "ri-folder-line icon-lg text-success",
"text": "Node - 3.3",
"children": [
{
"id": "node_18",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 3.3.1",
"children": false
},
{
"id": "node_19",
"icon": "ri-article-line icon-lg text-warning",
"text": "Node - 3.3.2",
"children": false
}
]
}
]
}
]

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 2.0 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 911 B

Some files were not shown because too many files have changed in this diff Show More