diff --git a/sitio_quantum/db.sqlite3 b/sitio_quantum/db.sqlite3
index 50dd481ac0bd3db578a05e3981db4c2599b005a5..05bf49ddf1b9d642397825bcac1bed975f390e0f 100644
Binary files a/sitio_quantum/db.sqlite3 and b/sitio_quantum/db.sqlite3 differ
diff --git a/sitio_quantum/media/imagenes/576850.jpg b/sitio_quantum/media/imagenes/576850.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..673f0bb806523c404655daad443ff6ba44e3a333
Binary files /dev/null and b/sitio_quantum/media/imagenes/576850.jpg differ
diff --git a/sitio_quantum/parque_quantum/__pycache__/admin.cpython-310.pyc b/sitio_quantum/parque_quantum/__pycache__/admin.cpython-310.pyc
index bde0902575ee51b0e8ac67b5beca5cb3840de52b..67f789d018aed6ac84f81cdfaa16ae49362dd7ab 100644
Binary files a/sitio_quantum/parque_quantum/__pycache__/admin.cpython-310.pyc and b/sitio_quantum/parque_quantum/__pycache__/admin.cpython-310.pyc differ
diff --git a/sitio_quantum/parque_quantum/__pycache__/forms.cpython-310.pyc b/sitio_quantum/parque_quantum/__pycache__/forms.cpython-310.pyc
index 601453f9d6140d6577f26aa0d436603d7e3ecc31..e3de6daeeaad173d0950cb4235637dd5e7dc1efa 100644
Binary files a/sitio_quantum/parque_quantum/__pycache__/forms.cpython-310.pyc and b/sitio_quantum/parque_quantum/__pycache__/forms.cpython-310.pyc differ
diff --git a/sitio_quantum/parque_quantum/__pycache__/models.cpython-310.pyc b/sitio_quantum/parque_quantum/__pycache__/models.cpython-310.pyc
index b90f9dbb4782c0cb30b40c9e01221df58b7405e4..319e8eafcb9effb25d5a7d20df4ddaa20c195d1f 100644
Binary files a/sitio_quantum/parque_quantum/__pycache__/models.cpython-310.pyc and b/sitio_quantum/parque_quantum/__pycache__/models.cpython-310.pyc differ
diff --git a/sitio_quantum/parque_quantum/__pycache__/views.cpython-310.pyc b/sitio_quantum/parque_quantum/__pycache__/views.cpython-310.pyc
index ec195a1fd7b1159e8f6e1433b880fa7206a5b044..86b72ba12e6a8de3ad15c68197ceb384271802f4 100644
Binary files a/sitio_quantum/parque_quantum/__pycache__/views.cpython-310.pyc and b/sitio_quantum/parque_quantum/__pycache__/views.cpython-310.pyc differ
diff --git a/sitio_quantum/parque_quantum/admin.py b/sitio_quantum/parque_quantum/admin.py
index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..b86faa5d76b5ffbdc143bfaf774f305a50f6d23f 100644
--- a/sitio_quantum/parque_quantum/admin.py
+++ b/sitio_quantum/parque_quantum/admin.py
@@ -1,3 +1,9 @@
from django.contrib import admin
+from .models import Actividades
-# Register your models here.
+@admin.register(Actividades)
+class ActividadesAdmin(admin.ModelAdmin):
+ list_display = ('nombre', 'descripcion', 'fecha') # Campos que deseas mostrar en la lista del administrador
+ search_fields = ('nombre', 'descripcion') # Campos por los que puedes buscar
+ ordering = ('-fecha',) # Orden de las actividades
+ fields = ['nombre', 'descripcion', 'fecha', 'imagen'] # Campos que se muestran en el formulario de creación/edición
diff --git a/sitio_quantum/parque_quantum/forms.py b/sitio_quantum/parque_quantum/forms.py
index 6b4ad0936f00fb9d1f568d25cf58af159981fb55..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/sitio_quantum/parque_quantum/forms.py
+++ b/sitio_quantum/parque_quantum/forms.py
@@ -1,7 +0,0 @@
-from django import forms
-from .models import Actividad
-
-class ActividadForm(forms.ModelForm):
- class Meta:
- model = Actividad
- fields = ['nombre', 'imagen', 'fecha', 'descripcion']
diff --git a/sitio_quantum/parque_quantum/migrations/0001_initial.py b/sitio_quantum/parque_quantum/migrations/0001_initial.py
new file mode 100644
index 0000000000000000000000000000000000000000..e7902d66bba208b25f9ba706159dc2ff65fff80b
--- /dev/null
+++ b/sitio_quantum/parque_quantum/migrations/0001_initial.py
@@ -0,0 +1,24 @@
+# Generated by Django 3.2.12 on 2024-05-19 01:25
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Actividades',
+ fields=[
+ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('nombre', models.CharField(max_length=100)),
+ ('descripcion', models.TextField()),
+ ('fecha', models.DateField()),
+ ('imagen', models.ImageField(upload_to='imagenes/')),
+ ],
+ ),
+ ]
diff --git a/sitio_quantum/parque_quantum/migrations/__pycache__/0001_initial.cpython-310.pyc b/sitio_quantum/parque_quantum/migrations/__pycache__/0001_initial.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8f341d4e04e942cf39a94ff3562b643b9178dacd
Binary files /dev/null and b/sitio_quantum/parque_quantum/migrations/__pycache__/0001_initial.cpython-310.pyc differ
diff --git a/sitio_quantum/parque_quantum/models.py b/sitio_quantum/parque_quantum/models.py
index 0564d8673cf507c5968dd109950883f91b9608da..c7269c115d833190b33b77fa4147fce107fa2c50 100644
--- a/sitio_quantum/parque_quantum/models.py
+++ b/sitio_quantum/parque_quantum/models.py
@@ -1,6 +1,6 @@
from django.db import models
-class MiModelo(models.Model):
+class Actividades (models.Model):
nombre = models.CharField(max_length=100)
descripcion = models.TextField()
fecha = models.DateField()
diff --git a/sitio_quantum/parque_quantum/templates/CRUD_actividades.html b/sitio_quantum/parque_quantum/templates/CRUD_actividades.html
new file mode 100644
index 0000000000000000000000000000000000000000..cac629be6d48e2e51993eb19799da51f2d630ef0
--- /dev/null
+++ b/sitio_quantum/parque_quantum/templates/CRUD_actividades.html
@@ -0,0 +1,39 @@
+{% extends "base2.html" %}
+{% load static %}
+
+
+{% block title %}
+Parque Etnobiológico
+{% endblock %}
+
+{% block content %}
+
Lista de Modelos
+ Añadir Nuevo
+
+
+
+ Nombre |
+ Descripción |
+ Fecha |
+ Imagen |
+ Acciones |
+
+
+
+ {% for objeto in objetos %}
+
+ {{ objeto.nombre }} |
+ {{ objeto.descripcion }} |
+ {{ objeto.fecha }} |
+
+
+ |
+
+ Editar
+ Borrar
+ |
+
+ {% endfor %}
+
+
+{% endblock %}
diff --git a/sitio_quantum/parque_quantum/templates/actividades.html b/sitio_quantum/parque_quantum/templates/actividades.html
index 78765c289ae90c68a34aca17e98efce7c49335c7..ba33045846188ab3dede0349787a88c956fe71da 100644
--- a/sitio_quantum/parque_quantum/templates/actividades.html
+++ b/sitio_quantum/parque_quantum/templates/actividades.html
@@ -13,61 +13,5 @@ Parque Etnobiológico
Crear Nueva Actividad
-
-
-
-
-
-
{% endblock %}
\ No newline at end of file
diff --git a/sitio_quantum/parque_quantum/templates/actividades_form.html b/sitio_quantum/parque_quantum/templates/actividades_form.html
new file mode 100644
index 0000000000000000000000000000000000000000..6488df7385503e402f8316f9d7821e85745c5471
--- /dev/null
+++ b/sitio_quantum/parque_quantum/templates/actividades_form.html
@@ -0,0 +1,17 @@
+{% extends "base2.html" %}
+{% load static %}
+
+
+{% block title %}
+Parque Etnobiológico
+{% endblock %}
+
+{% block content %}
+ {% if object %}Editar{% else %}Nuevo{% endif %} Modelo
+
+{% endblock %}
diff --git a/sitio_quantum/parque_quantum/templates/base2.html b/sitio_quantum/parque_quantum/templates/base2.html
index d430b02e73a171bb3c0562ced35dcd663977a770..37c9725bb5444faa575199eaf6e7cd9435263509 100644
--- a/sitio_quantum/parque_quantum/templates/base2.html
+++ b/sitio_quantum/parque_quantum/templates/base2.html
@@ -32,10 +32,10 @@
Biodiversidad
- Etnobiología
+ Etnobiología
- Actividades
+ Actividades
Proyección
diff --git a/sitio_quantum/parque_quantum/templates/borrar_actividad.html b/sitio_quantum/parque_quantum/templates/borrar_actividad.html
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/sitio_quantum/parque_quantum/views.py b/sitio_quantum/parque_quantum/views.py
index 81ea1810bd3eb3e7600fff29782bac9b01f573b2..8d0f3da5ff05ad351e335cebb8beb0d025d75b4f 100644
--- a/sitio_quantum/parque_quantum/views.py
+++ b/sitio_quantum/parque_quantum/views.py
@@ -3,11 +3,8 @@ from django.http import HttpResponse, HttpResponseRedirect
from django.core.mail import send_mail
from django.urls import reverse_lazy
from django.views.generic import ListView, CreateView, UpdateView, DeleteView
-from .models import Actividad
-from .forms import ActividadForm
-from django.http import JsonResponse
-from .models import Actividad
-from django.views.decorators.csrf import csrf_exempt
+from .models import Actividades
+from .admin import ActividadesAdmin
def inicio(request):
@@ -46,34 +43,31 @@ def biodiversidad(request):
def actividades(request):
return render(request, "actividades.html")
+def CRUDactividades(request):
+ return render(request, "CRUD_actividades.html")
-class ActividadListView(ListView):
- model = Actividad
- context_object_name = 'actividades'
-class ActividadCreateView(CreateView):
- model = Actividad
- form_class = ActividadForm
- success_url = reverse_lazy('actividades')
+# CRUD de actividades
+class ActividadesListView(ListView):
+ model = Actividades
+ context_object_name = 'objetos'
-class ActividadUpdateView(UpdateView):
- model = Actividad
- form_class = ActividadForm
- success_url = reverse_lazy('actividades')
+class ActividadesCreateView(CreateView):
+ model = Actividades
+ form_class = ActividadesAdmin
+ success_url = reverse_lazy('lista')
+ template_name = 'actividades_form.html'
-class ActividadDeleteView(DeleteView):
- model = Actividad
- success_url = reverse_lazy('actividades')
+class ActividadesUpdateView(UpdateView):
+ model = Actividades
+ form_class = ActividadesAdmin
+ success_url = reverse_lazy('lista')
+class ActividadesDeleteView(DeleteView):
+ model = Actividades
+ success_url = reverse_lazy('lista')
+ template_name = 'mi_app/Actividades_confirm_delete.html'
-@csrf_exempt # Solo para demostración; idealmente maneja la CSRF de otra forma
-def crear_actividad(request):
- print('hola entrè')
- if request.method == 'POST':
- nombre = request.POST.get('nombre')
- fecha = request.POST.get('fecha')
- descripcion = request.POST.get('descripcion')
- actividad = Actividad.objects.create(nombre=nombre, fecha=fecha, descripcion=descripcion)
- return JsonResponse({'id': actividad.id}) # Retorna el id de la actividad creada o algún mensaje
- return JsonResponse({'error': 'Método no permitido'}, status=405)
-
+def lista_actividades(request):
+ actividades = Actividades.objects.all().order_by('-fecha')
+ return render(request, 'actividades/lista_actividades.html', {'actividades': actividades})
\ No newline at end of file
diff --git a/sitio_quantum/sitio_quantum/__pycache__/urls.cpython-310.pyc b/sitio_quantum/sitio_quantum/__pycache__/urls.cpython-310.pyc
index 6819c2e496dc83642a18ae3eda4e1bc238c1cbbd..801c3b8def47676de24101c3bf1f373d4421170b 100644
Binary files a/sitio_quantum/sitio_quantum/__pycache__/urls.cpython-310.pyc and b/sitio_quantum/sitio_quantum/__pycache__/urls.cpython-310.pyc differ
diff --git a/sitio_quantum/sitio_quantum/urls.py b/sitio_quantum/sitio_quantum/urls.py
index d60524c7ac0d058059cd17f256716d218829814a..85e347d82a27e368f5096bb305b76da5343f0384 100644
--- a/sitio_quantum/sitio_quantum/urls.py
+++ b/sitio_quantum/sitio_quantum/urls.py
@@ -17,10 +17,9 @@ Including another URLconf
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
-from parque_quantum.views import ActividadListView, ActividadCreateView, ActividadUpdateView, ActividadDeleteView
from django.urls import path
from parque_quantum import views
-
+from parque_quantum.views import ActividadesListView, ActividadesCreateView, ActividadesUpdateView, ActividadesDeleteView
urlpatterns = [
path('admin/', admin.site.urls),
@@ -31,10 +30,12 @@ urlpatterns = [
path('colecciones/', views.colecciones, name="colecciones"),
path('biodiversidad/', views.biodiversidad, name="biodiversidad"),
path('actividades/', views.actividades, name="actividades"),
- path('', ActividadListView.as_view(), name='actividad_list'),
- path('new/', ActividadCreateView.as_view(), name='actividad_new'),
- path('edit//', ActividadUpdateView.as_view(), name='actividad_edit'),
- path('delete//', ActividadDeleteView.as_view(), name='actividad_delete'),
- path('nueva_actividad/', views.crear_actividad, name='crear_actividad'),
+ path('lista/', ActividadesListView.as_view(), name='lista'),
+ path('nuevo/', ActividadesCreateView.as_view(), name='nuevo'),
+ path('editar//', ActividadesUpdateView.as_view(), name='editar'),
+ path('borrar//', ActividadesDeleteView.as_view(), name='borrar'),
+ path('CRUDactividades/', views.CRUDactividades, name="CRUDactividades"),
+
+
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)