Project

General

Profile

Feature #6599

Copy tasks definition in course copy

Added by Yannick Warnier about 6 years ago. Updated over 5 years ago.

Status:
Feature implemented
Priority:
Urgent
Assignee:
-
Category:
Assignments / Work
Target version:
Start date:
20/08/2013
Due date:
% Done:

70%

Estimated time:
4.00 h
Spent time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

(esta tarea representa al mismo tiempo un ejercicio de explicación de cómo reportar bien un deseo de nueva funcionalidad)

Agregar la posibilidad de copiar las carpetas de tareas de un curso al otro, para disminuir el tiempo de trabajo del docente al replicar cursos "plantilla".

Esquema de base de datos: https://support.chamilo.org/attachments/download/3685/chamilo-19-db.png

Por defecto, el campo "filetype" indica si es una carpeta de tarea ("folder") o una tarea de alumno ("file"), así que no se tienen que copiar los "file", solo los "folder".

Falta definir que pasará con los distintos datos que contienen los registros de tareas en la base de datos...
  • título (imagino que se queda)
  • descripción (imagino que se queda)
  • fecha de inicio (=fecha de creación, no editable, imagino que se pone a la fecha de la copia, pero podría ser más elaborado, como "la misma cantidad de días después de la creación del curso que en el curso original")
  • fecha de vencimiento (la dejamos vacía?)
  • fecha de expiración (la dejamos vacía?)
  • nota máxima (la copiamos, imagino)
  • otros?

Con esto ya debería ser suficiente para agregar la funcionalidad...

El código correspondiente se encuentra en main/coursecopy/classes/, y una buena base para tareas (work, assignment o student_publication según los lugares - es una herramienta antiguísima) debería ser la clase muy simple de copia de wiki, o la de forum_category.

Una vez creada la clase work.class.php, se tendrá que incluir en las clases courseBuilder.class.php y courseRestorer.class.php

Associated revisions

Revision c6d3ca18 (diff)
Added by Yannick Warnier about 6 years ago

Added copy of work/assignments to coursecopy - refs #6599

Revision 88e7ba8c (diff)
Added by Yoselyn Castillo about 6 years ago

Adding expires and end date in works when copying course -refs #6599

Revision 3d149223 (diff)
Added by Yoselyn Castillo about 6 years ago

Adding expires and end date in works when copying course -refs #6599

Revision d6139a2e (diff)
Added by Yoselyn Castillo about 6 years ago

Adding expires and end date in works when copying course -refs #6599

Revision 3e9a8fe2 (diff)
Added by Yoselyn Castillo about 6 years ago

Adding condition -refs #6599

Revision 41659bda (diff)
Added by Yoselyn Castillo about 6 years ago

Adding condition -refs #6599

Revision 6669f5e6 (diff)
Added by Daniel Barreto almost 6 years ago

same code of PR#119 -refs #6599

Revision 9776a769 (diff)
Added by Daniel Barreto almost 6 years ago

Fixed assignments imported problem when already exist -refs #6599

Revision 352b630c (diff)
Added by Daniel Barreto almost 6 years ago

Was storing global path, fixed -refs #6599

Revision 416ba5c4 (diff)
Added by Yannick Warnier over 5 years ago

Minor - Fixed issue with WHERE condition in query - refs #6599

Revision d1e9a02d (diff)
Added by Julio Montoya over 5 years ago

Fixing work coursecopy see #6599

Revision e2784876 (diff)
Added by Yannick Warnier over 5 years ago

Fix students count in tasks list - refs #6599

History

#1

Updated by Yannick Warnier about 6 years ago

  • Description updated (diff)
#2

Updated by Yannick Warnier about 6 years ago

  • Status changed from Assigned to Needs testing
  • Assignee deleted (Yannick Warnier)
  • % Done changed from 0 to 80

Bueno, ya mandé una primera versión funcional del código a Chamilo 1.9.8. Debería poder ser probada dentro de 30 minutos en https://stable.chamilo.org.

Hay que revisar que funciona con la exportación de curso, nada más. De ahí se puede cerrar la tarea.

#3

Updated by Yannick Warnier about 6 years ago

  • Assignee set to Héctor González

Héctor, te cae la responsabilidad de verificar que funciona para todos los casos.
He observado que por defecto se ponía la fecha de hoy como fecha de fin y fecha de expiración en la copia, pero no debería ser un problema grande, dado que se tiene que redefinir en la copia de todas maneras.

#4

Updated by Héctor González about 6 years ago

Yannick.

He probado obtener un backup de las tareas e importarlas a un curso nuevo, de la misma forma duplique un curso entero a otro curso vacío y el resultado es el siguiente:

1. Se copian todas las tareas tanto al importar el backup como al duplicar el curso.
2. Respeta el nombre de la tarea y la descripción.
3. Respeta el valor que se le da a la tarea.
4. Efectivamente toma como fecha de inicio y fin de la tarea, la fecha de hoy, lo cuál sí implica un inconveniente en el siguiente caso:

Supón que en un semestre tienes 20 tareas por curso y que tienes 30 cursos, entonces el webmaster o el maestro tendrían que entrar al menos una vez a cada tarea para mover la fecha de finalización de la misma. Por la fecha de inicio no hay problema ya que se pueden dejar todas las tareas con la misma fecha de inicio o disponibilidad, pero el que cierren o finalicen el mismo día en que se abre sí causa el problema de acceder a cada una de las 20 tareas en los 30 cursos a modificarla.

Algunas posibles soluciones que se me ocurren:

1. Que no tome ninguna fecha de finalización de la tarea, al importar el backup o duplicar el curso.
2. Que respete las fechas de inicio y cierre del curso origen.

Saludos.

Espero haberme explicado.

Saludos.

#5

Updated by Yannick Warnier about 6 years ago

OK, gracias. Pues tu dime... cual es la más apropiada fórmula que usar? La 1 o la 2? El punto es que lo usarás más que nosotros, así que partiremos con tu idea (tu decides), y después adaptaremos si otras personas proponen mejores mecanismos.

Sobre la forma de hacer la gestión de la tarea, técnicamente, una vez que has respondido, me la asignas a mi y cambias el estado a "Assigned". Así se que me regresa y aparece en mi lista de tareas pendientes.
Por defecto, cuando abres una nueva sugerencia de tarea, no la puedes asignar a nadie (se considera incortés), la dejas tal cual (estado "New") y sin asignado. Tampoco modificas la prioridad, que la decidimos nosotros. Bueno, eso está detallado en Como reportar errores

#6

Updated by Héctor González about 6 years ago

  • Tracker changed from Feature to Support

Hola Yannick.

Haciendo un análisis a conciencia, me parece que la mejor solución sería la siguiente:

Que al hacer un backup de las tareas o duplicar un curso completo, efectivamente se respeten las fechas que el creador del curso haya especificado para la disponibilidad y finalización de la tarea, sin embargo, si el creador del curso solo asigna una fecha para marcar la disponibilidad de la tarea y no asigna nada en la fecha de finalización, que esta configuración sea respetada y no se le asigne ninguna fecha a la finalización de la tarea.

Espero haberme explicado.

Gracias.

#7

Updated by Yannick Warnier about 6 years ago

  • Tracker changed from Support to Feature
  • Status changed from Needs testing to Assigned
  • Assignee changed from Héctor González to Yoselyn Castillo
  • % Done changed from 80 to 60

Yoselyn, cuando regresas de viaje, por favor revisa esta. Falta solo extender un poco la clase para que tome las fechas en cuenta, pero no tengo el tiempo de verlo ahora.
Asumo tomará un par de horas para hacerlo, máximo, pero quizás me suene más fácil porque ya conozco este código...

#8

Updated by Yoselyn Castillo about 6 years ago

Ya estoy aqui, la tomo..

#9

Updated by Yoselyn Castillo about 6 years ago

  • % Done changed from 60 to 70

The commit was sent to
https://github.com/chamilo/chamilo-lms/pull/119
I have updated the expires_on and ends_on fields in database when we copy a course.
Try it and tell me if there is something else in this task

#10

Updated by Julio Montoya almost 6 years ago

  • Status changed from Assigned to Needs testing

Yoselyn Castillo wrote:

The commit was sent to
https://github.com/chamilo/chamilo-lms/pull/119
I have updated the expires_on and ends_on fields in database when we copy a course.
Try it and tell me if there is something else in this task

Merge agregado.

#11

Updated by Julio Montoya almost 6 years ago

  • Status changed from Needs testing to Assigned

Julio Montoya wrote:

Yoselyn Castillo wrote:

The commit was sent to
https://github.com/chamilo/chamilo-lms/pull/119
I have updated the expires_on and ends_on fields in database when we copy a course.
Try it and tell me if there is something else in this task

Merge agregado.

Tengo una pregunta que puse en el PR:

Todo bien con el merge, pero, tengo una pregunta que sucede cuando uso un zip de un curso de otro portal y lo agrego a mi portal local? Habría que hacer unas pruebas.

#12

Updated by Yannick Warnier almost 6 years ago

Todo bien con el merge, pero, tengo una pregunta que sucede cuando uso un zip de un curso de otro portal y lo agrego a mi portal local? Habría que hacer unas pruebas.

Translation: all good with the merge, but I have a question: what happens when I use a zip from another portal and add it to my local portal? We still need to make a few tests to see how it goes.

#13

Updated by Yannick Warnier almost 6 years ago

  • Subject changed from Copiar carpetas de tareas en copia de cursos to Copy tasks definition in course copy

Adding Hubert as watcher. Let's see if he gets into checking that everything is OK and closes the task :-)

#14

Updated by Yannick Warnier almost 6 years ago

  • Assignee changed from Yoselyn Castillo to Daniel Barreto

Reassigning to Daniel

#15

Updated by Daniel Barreto almost 6 years ago

Estuve probandolo y al importarlo en un mismo portal se generan lo siguientes problemas:
Se modificaron las fechas límite y de entrega por los de la fecha actual, tanto para cuando se tiene ya definido como no.
Si se importa en un curso donde ya se tiene tareas, sus fechas limite y de entrega también son modificadas por la fecha actual.
Si se importa en un curso con tareas del mismo nombre (puede ocurrir que se importe por error 2 veces en un mismo curso) Las tareas son generadas de nuevo aunque se ponga que ignore los archivos existentes con los mismos nombres.
Luego ocurre que cuando cuando importas entre diferentes portales (probe con el stable y el q tengo en local) no se generan las tareas

#16

Updated by Daniel Barreto almost 6 years ago

Revisé el codigo, y parece que en un commit eliminaron los cambios hechos por Yoselyn, ahora q lo recuperé ya no me genera las fechas límite y de entrega como antes; sin embargo aún estan los problemas de que no se importan entre portales y que se copian de nuevo las tareas aunque tengan el mismo nombre de tareas que ya existen y esto no cambia aunque pongas sobreescribir o saltar en caso sean iguales.
Veré si puedo hacer algo con esto.

#17

Updated by Daniel Barreto almost 6 years ago

  • Status changed from Assigned to Needs testing

Fixed, added if (file exists) to verify if the folder and a elseif(file_option == FILE_RENAME) to verify if must change the folder name and create it.
Done in:
https://github.com/chamilo/chamilo-lms/pull/183
Needs Testing

#18

Updated by Yannick Warnier over 5 years ago

  • Assignee changed from Daniel Barreto to Yannick Warnier

Por revisar

#19

Updated by Yannick Warnier over 5 years ago

  • Status changed from Needs testing to Assigned

Just included PR from Daniel.
Reviewing other issues reported by Daniel...

#20

Updated by Yannick Warnier over 5 years ago

  • Assignee changed from Yannick Warnier to Julio Montoya

It seems like the copy isn't working anymore (tried with git version on same portal, exporting+importing and got no task as a result)
Julio, do you mind checking if it's got anything to do with the changes in tasks? (I don't see why it would, but I don't have a clue as to why it stopped working).

#21

Updated by Yannick Warnier over 5 years ago

  • Priority changed from Normal to Urgent

Julio, can you have a look at this please, this is one of the last "features" to be developed for 1.9.8. Once these are all fixed, we can already think about releasing an alpha.

#22

Updated by Julio Montoya over 5 years ago

In the class CourseRestorer I have 2 functions:

restore_student_publication()

and
restore_works()

I don't understand why is that.

#23

Updated by Julio Montoya over 5 years ago

  • Status changed from Assigned to Needs testing
  • Assignee deleted (Julio Montoya)

I sent some changes now is working.

#24

Updated by Yannick Warnier over 5 years ago

  • Status changed from Needs testing to Feature implemented

The copy works, so I'm closing this task, but there are still many flaws.

I'm registering the flaws in task #7079 to avoid blocking 1.9.8 over that, but I'm not satisfied with the current level of detail, Yoselyn, in particular regarding dates (5h difference when copying it, wihch matches my timezone).

Even when I set the script to "override" existing contents, the assignment is not created in the destination course if it had previously been created and deleted there (that's for Daniel).

Finally, it uses the original course's table to get information, which cannot be for course copies, as it's pretty much the same code as for backup/restore (as far as I remember), and it doesn't necessarily have access to the original course.

Everything is written in task #7079. Please continue there.

Also available in: Atom PDF