Skip to content
Snippets Groups Projects
Commit 1a955024 authored by Marcos Mendez Quintero's avatar Marcos Mendez Quintero :speech_balloon:
Browse files

Including the Dashboard module

parent 81300645
Branches
Tags
No related merge requests found
...@@ -38,6 +38,7 @@ INSTALLED_APPS = [ ...@@ -38,6 +38,7 @@ INSTALLED_APPS = [
"django.contrib.messages", "django.contrib.messages",
"django.contrib.staticfiles", "django.contrib.staticfiles",
"pages.apps.PagesConfig", "pages.apps.PagesConfig",
"dashboard"
] ]
MIDDLEWARE = [ MIDDLEWARE = [
...@@ -75,9 +76,13 @@ WSGI_APPLICATION = "AdAnalyzer.wsgi.application" ...@@ -75,9 +76,13 @@ WSGI_APPLICATION = "AdAnalyzer.wsgi.application"
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases # https://docs.djangoproject.com/en/4.2/ref/settings/#databases
DATABASES = { DATABASES = {
"default": { 'default': {
"ENGINE": "django.db.backends.sqlite3", 'ENGINE': 'django.db.backends.postgresql_psycopg2',
"NAME": BASE_DIR / "db.sqlite3", 'NAME': 'adana',
'USER': 'adana',
'PASSWORD': 'adana',
'HOST': '127.0.0.1',
'PORT': '5432',
} }
} }
......
from django.contrib import admin
from .models import Empresa, Competencia
admin.site.register(Empresa)
admin.site.register(Competencia)
from django.apps import AppConfig
class DashboardConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "dashboard"
# Generated by Django 4.2.2 on 2023-06-28 19:26
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="Empresa",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("nombre", models.CharField(max_length=200)),
],
),
migrations.CreateModel(
name="Competencia",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"competidor",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="competidor",
to="dashboard.empresa",
),
),
(
"empresa",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="empresa",
to="dashboard.empresa",
),
),
],
options={
"unique_together": {("empresa", "competidor")},
},
),
]
# Generated by Django 4.2.2 on 2023-06-28 20:01
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
("dashboard", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="empresa",
name="usuarios",
field=models.ManyToManyField(to=settings.AUTH_USER_MODEL),
),
]
from django.db import models
from django.contrib.auth.models import User
#This is the model for Companies that are going to be registered even thought they are not clients in the system
class Empresa(models.Model):
nombre = models.CharField(max_length=200)
usuarios = models.ManyToManyField(User)
def __str__(self):
return self.nombre
#This is the model for the competitors it is a relation of a Company to another.
class Competencia(models.Model):
empresa = models.ForeignKey(Empresa, related_name='empresa', on_delete=models.CASCADE)
competidor = models.ForeignKey(Empresa, related_name='competidor', on_delete=models.CASCADE)
class Meta:
unique_together = ('empresa', 'competidor')
def __str__(self):
return f"{self.empresa.nombre} competidor: {self.competidor.nombre}"
from django.test import TestCase
# Create your tests here.
from django.shortcuts import render, redirect
from .models import Empresa
from django.contrib.auth.models import User
def asignar_usuarios(request, empresa_id):
empresa = Empresa.objects.get(id=empresa_id)
if request.method == 'POST':
usuarios_id = request.POST.getlist('usuarios')
usuarios = User.objects.filter(id__in=usuarios_id)
empresa.usuarios.set(usuarios)
# obtén la referencia al permiso de "view" para el modelo User
permiso_ver_usuario = Permission.objects.get(codename='view_user')
# para cada usuario de la empresa, agrega este permiso
for usuario in empresa.usuarios.all():
usuario.user_permissions.add(permiso_ver_usuario)
return redirect('dashboard:empresa_detalle', empresa_id=empresa_id)
else:
usuarios = User.objects.all()
return render(request, 'asignar_usuarios.html', {'empresa': empresa, 'usuarios': usuarios})
def inicio(request):
return render(request, 'inicio.html')
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
margin: 0; margin: 0;
padding: 0; padding: 0;
background-color: #f0f0f0; background-color: #aaaaaa;
} }
.container { .container {
max-width: 800px; max-width: 800px;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment