Tengo que hacer esta tarea de programación que requiere mucho tiempo (humano), tengo:
Y necesito organizar esto:
No sé exactamente qué debo buscar, encontré herramientas de programación de trabajos para HPC como SLURM, pero no quiero modificarlas tanto. Desde entonces, he estado escribiendo pequeños scripts de Python no tan buenos para hacer eso. No tengo presupuesto y preferiría que se ejecute en Linux (o basado en web). Obviamente, el calendario de Google no es suficiente, y también he estado probando otras herramientas como ProofHub, pero no puede realizar la asignación de recursos. Creo que no es tan difícil (básicamente pones a los profesores en una cola y les asignas una política de turnos rotativos, eso es lo que he estado haciendo desde entonces). Quiero algo ligero si es posible.
Eche un vistazo a Drupal (gratis y de código abierto), que se ejecuta en (por ejemplo) una pila LAMP. También ofrece varias "distribuciones" y "módulos contribuidos" relacionados con cosas de "calendario".
- un conjunto de profesores
Estos serían los "usuarios" definidos en Drupal (mientras que se pueden usar múltiples "roles" para todos los tipos de "permisos").
- Un conjunto de sesiones en una semana.
Cada una de esas sesiones podría implementarse como nodos de un tipo de contenido personalizado , con todo tipo de campos correspondientes a los datos (atributos) de cada sesión. Bastante seguro de que una fecha/hora "desde" y "hasta" sería uno de esos campos, normalmente manejado por el módulo Fecha . Y con el módulo Calendario para mostrar una visualización de todas esas sesiones en formato de calendario.
- Algunas semanas no enseñamos (vacaciones)
No hay problema, existen varias técnicas para evitar que se programen sesiones en esas semanas. Eso es lo que típicamente se reduce a "reservas" y/o "reservas" de un recurso (= ¿sus maestros y/o sus aulas?).
- A lo largo de un año los profesores tienen que impartir la misma cantidad de sesiones
Tiene sentido, de eso se trata "repetir fechas"...
- Algunos profesores tienen restricciones adicionales, como "No puedo dar clases los lunes" o "Solo puedo dar clases los lunes y martes"...
Ahora que es donde realmente se pone interesante. Eso suena como implementar alguna lógica de negocios. Hay algunos enfoques posibles, pero mi favorito es el enfoque en el que el administrador del sitio no tiene que ser un experto en PHP. Pero en su lugar, solo tiene que saber cómo usar la interfaz de usuario de administración del módulo " Reglas ". Para que funcione, tendrías que pensar en una forma de que tus profesores "ingresen sus restricciones" en su perfil de alguna manera. Hay múltiples formas de implementar tales cosas (Drupal es como "Lego"...). Una posible solución (¿simplista?) podría ser usar el módulo de banderas para que cada profesor pueda "marcar" los días que están disponibles o no disponibles
Para hacer que lo anterior funcione, se requiere experiencia en "construcción de sitios Drupal", NO un "desarrollador Drupal" (más costoso) que escriba todo tipo de código personalizado (que a la larga será difícil y costoso de mantener también).
Siga leyendo para obtener más detalles (es decir, esta es la marca TL; DR ...).
El módulo Calendario (contribuido) se percibe comúnmente como "el" módulo (complemento) para todo lo relacionado con los requisitos del calendario. Aquí hay algunos detalles al respecto (de su página de proyecto):
Este módulo mostrará cualquier campo de fecha de Vistas en formatos de calendario, incluidos los campos de fecha CCK, las fechas de creación o actualización del nodo, etc. Cambie entre las vistas de año, mes y día. Se proporciona navegación hacia atrás y hacia adelante para todas las vistas. Gran parte de la funcionalidad del calendario proviene del módulo Fecha, por lo que cada vez que actualice el módulo Calendario, debe asegurarse de actualizar también a la última versión del módulo Fecha al mismo tiempo.
Y una serigrafía al respecto:
Se trata de crear, editar, etc., todo tipo de cosas que deberían ser parte de dicho calendario, lo cual también es posible (espera un poco para obtener una versión actualizada de esta respuesta).
Se trata de agregar todo tipo de " Reglas ", por ejemplo, para alguien que no está disponible ningún lunes, lo cual también es posible (espere un poco para obtener una versión actualizada de esta respuesta).
PD: Espera, aún hay más... un sitio SO dedicado a Drupal, ubicado en Drupal Answers .
izzy
cibernético
Mawg dice que reincorpore a Monica
Emilien