Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Creado modelo Talk #209

Merged
merged 7 commits into from
Oct 10, 2023
Merged

Creado modelo Talk #209

merged 7 commits into from
Oct 10, 2023

Conversation

Scot3004
Copy link
Member

Work in progress
Se creo el modelo para charla, lenguaje y nivel de la charla
Está pendiente la creación de los escenarios de prueba y los respectivos tests

@Scot3004 Scot3004 marked this pull request as draft August 13, 2023 00:40
from temii.users.models import User


class TalkLanguage(models.Model):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si solo van a haber 2 opciones de lenguaje de la charla (español e inglés). Sugiero colocar las opciones en el mismo modelo Talk y no crear una tabla nueva en la base de datos solo para estos 2 valores.

Ejemplo
https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices

from django.db import models


class Student(models.Model):
    FRESHMAN = "FR"
    SOPHOMORE = "SO"
    JUNIOR = "JR"
    SENIOR = "SR"
    GRADUATE = "GR"
    YEAR_IN_SCHOOL_CHOICES = [
        (FRESHMAN, "Freshman"),
        (SOPHOMORE, "Sophomore"),
        (JUNIOR, "Junior"),
        (SENIOR, "Senior"),
        (GRADUATE, "Graduate"),
    ]
    year_in_school = models.CharField(
        max_length=2,
        choices=YEAR_IN_SCHOOL_CHOICES,
        default=FRESHMAN,
    )

    def is_upperclass(self):
        return self.year_in_school in {self.JUNIOR, self.SENIOR}

return self.name


class TalkLevel(models.Model):
Copy link
Member

@pyjavo pyjavo Aug 22, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creo que solo hay 3 niveles:

  • Beginner
  • Intermediate
  • Advance
    También creo que aplica usar choices (o TextChoices)

Ejemplo
https://docs.djangoproject.com/en/4.2/ref/models/fields/#choices

Copy link
Member Author

@Scot3004 Scot3004 Aug 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Te refieres a algo como esto?

LEVEL_BEGINNER = 1
LEVEL_INTERMEDIATE = 2
LEVEL_AVANCED = 3
LEVEL_CHOICES  = [
    (LEVEL_BEGINNER, "Principiante"),
    (LEVEL_INTERMEDIATE, "Intermedio"),
    (LEVEL_AVANCED, "Avanzado"),
]

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Si

@Scot3004 Scot3004 marked this pull request as ready for review September 6, 2023 04:44
Copy link
Member

@pyjavo pyjavo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Excelente! 💪💪💪 Estamos cada vez más cerca. Este PR está relacionado con el issue #140

Unas sugerencias:

  1. Falta el campo de Mes(es) de la charla para que el ponente sugiera su fecha preferida para hablar (ver formulario de Google como guía).
  2. Falta el campo modalidad de la charla para saber si la charla será "Presencial en Barranquilla" o "Virtual (estoy fuera de Barranquilla)"
  3. Resetear las migraciones del Modelo Talk para que solo exista 0001_initial.py en este PR
    Tal vez conviene ver https://simpleisbetterthancomplex.com/tutorial/2016/07/26/how-to-reset-migrations.html

@Scot3004
Copy link
Member Author

Para los meses creo que sería mucho mejor postular a eventos, (que en este contexto sería lo mismo que meses)

@pyjavo
Copy link
Member

pyjavo commented Sep 19, 2023

@Scot3004 Podrías explicarme, ¿a qué te refieres con postular a eventos?

@Scot3004
Copy link
Member Author

Es que aparezca un listado de eventos y puedas escoger en que evento te gustaría que aparezca
En vez de asociarlo al mes a los posibles eventos

@pyjavo
Copy link
Member

pyjavo commented Oct 5, 2023

@Scot3004 pero creo que cuando el ponente aplica, aún no hay un evento o eventos disponibles. Esa persona solo sabe de antemano que mes o meses de su agenda personal puede disponer para su propuesta de charla.

Pienso que el paso a paso inicial es el siguiente (disculpa que no es un diagrama de flujo):

  1. Persona aplica con una nueva charla
  2. La charla entra a la lista de posibles charlas
  3. El admin escoge una o varias charlas para un futuro evento
  4. Se crea el evento con fecha, hora, lugar y charla(s) elegida(s).
  5. Se promociona el evento en redes sociales.
  6. Una vez terminada la charla, se recopilan sus recursos para publicar en el sitio web. Ej: URL de youtube, diapositivas, URL del repositorio o se sube a PyBAQ/Notebooks. Todo dependiendo de cada caso.

¿Qué opinas?

@Scot3004
Copy link
Member Author

Scot3004 commented Oct 5, 2023

Ok, ¿Que tipo de datos le ponemos a los meses?, CharField de 300?

@pyjavo
Copy link
Member

pyjavo commented Oct 6, 2023

@Scot3004 si vamos a guardar caracteres de texto con los nombres de los meses, sea "enero", "febrero", "marzo", etc, entonces, según mis cálculos, septiembre es el mes con mayor número de caracteres. Tiene 10 caracteres (le siguen "noviembre" y "diciembre" con 9).
Podríamos hacer un Charfield(20) para dejar un buffer de 10 caracteres de más, solo por si acaso jeje.

¿Qué opinas?

@Scot3004
Copy link
Member Author

Scot3004 commented Oct 6, 2023

Al menos 100 pa que pueda meter 9 meses (más o menos si los coloca en formato largo separado con espacios)

@pyjavo
Copy link
Member

pyjavo commented Oct 6, 2023

@Scot3004 tienes razón. No había caído en cuenta de ese escenario

@Scot3004 Scot3004 force-pushed the talks branch 4 times, most recently from 33e8f6c to 413e83e Compare October 7, 2023 18:28
ES = "es", _("Spanish")
EN = "en", _("English")

class InPerson(models.TextChoices):
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deberia ser IntegerChoices

- Adicionados campos meses y presencialidad
- Actualizado el archivo de traducción
- Migraciones para talks creadas desde 0
@Scot3004
Copy link
Member Author

Scot3004 commented Oct 7, 2023

image
Listo, Por alli veo unos inconvenientes con la localización, no se por que suceden, pero creo que ya este PR esta lo suficiente grande, y es mas cuestion de forma que de fondo

@Scot3004
Copy link
Member Author

Scot3004 commented Oct 7, 2023

Encontre la causa python manage.py compilemessages nunca se llama, mando eso dentro de este PR?

@Scot3004
Copy link
Member Author

Scot3004 commented Oct 7, 2023

image

@Scot3004
Copy link
Member Author

Scot3004 commented Oct 8, 2023

Ya se aplicaron los 3 puntos
Se creo un campo meses con capacidad de 100 caracteres
La modalidad de la charla se aborda en el campo "Presencialidad" que tiene 2 opciones "En sitio" y "Virtual"
Presencialidad en Sitio, es para cuando la charla va a ser presencial en el lugar del evento, igual el hecho que sea virtual es tambien estar presente en la reunión solo que de forma virtual
Los flujos de charlas, lo abordaria mejor en otro issue, la verdad ya este esta lo suficientemente grande, y eso que la gestión de la charla se hace en el admin
No se abordo la creación del formulario de charla en el front office, para permitir que eso se aborde en un ticket futuro, solo lo que si o si requeria tener en el modelo

Copy link
Member

@pyjavo pyjavo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De acuerdo. Lo restante lo podemos abordar en otro PR. ¡Buen trabajo!

@pyjavo pyjavo merged commit 5c255a2 into PyBAQ:master Oct 10, 2023
2 checks passed
@pyjavo pyjavo mentioned this pull request Nov 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants