예제 #1
0
        /// <summary>Pone la información del grupo en las etiquetas, el valor en los numeric de rubros y llena la lista de nombres</summary>
        private void personalizarVentana(int idMateria, int idGrupo)
        {
            string grupo, materia, numeroAlumnos, escuela;

            dbConection.getInfo(idMateria, idGrupo, out grupo, out materia, out numeroAlumnos, out escuela);

            lblGrupo.Text      = grupo;
            lblMateria.Text    = materia;
            lblDatosGrupo.Text = numeroAlumnos + lblDatosGrupo.Text + escuela;

            this.Text = grupo + " " + materia;

            decimal tareas, examenes, proyectos;

            dbConection.getPorcentages(idMateria, out tareas, out examenes, out proyectos);

            upDnTareas.Value    = tareas;
            upDnExamenes.Value  = examenes;
            upDnProyectos.Value = proyectos;

            lblTotal.Text      = (tareas + examenes + proyectos).ToString();
            lblTotal.ForeColor = tareas + examenes + proyectos != 10 ? Color.Red : Color.FromArgb(56, 164, 140);

            upDnTareas.AccessibleDescription    = dbConection.tipoTarea.ToString();
            upDnExamenes.AccessibleDescription  = dbConection.tipoExam.ToString();
            upDnProyectos.AccessibleDescription = dbConection.tipoProy.ToString();

            upDnTareas.ValueChanged    += rubroUpDn_ValueChanged;
            upDnExamenes.ValueChanged  += rubroUpDn_ValueChanged;
            upDnProyectos.ValueChanged += rubroUpDn_ValueChanged;

            PersonalizacionComponentes.llenarPanelAlunos(flPanelAlumnos, alumnos);
        }
예제 #2
0
        /// <summary> Obtiene de BD todos los alumnos y los muestra en la lista de asistencia </summary>
        private void cargarAlumnos()
        {
            alumnosGrupo = dbConection.alumnosGrupo(idGrupo);

            if (alumnosGrupo.Count != 0)
            {
                lblInfoAlumnos.Dispose();
                lblArrowAlumno.Dispose();
                PersonalizacionComponentes.llenarPanelAlunos(flPanelAlumnos, alumnosGrupo);

                System.Collections.IEnumerator labelsAlumnos = flPanelAlumnos.Controls.GetEnumerator();

                while (labelsAlumnos.MoveNext())
                {
                    string idAlumno = ((Label)labelsAlumnos.Current).Name;

                    MenuItem[] menu =
                    {
                        new MenuItem("Editar", editarAlumno_Click),
                        new MenuItem("Borrar", borrarAlumno_Click)
                    };
                    menu[0].Name = idAlumno;
                    menu[1].Name = idAlumno;

                    ((Label)labelsAlumnos.Current).ContextMenu = new ContextMenu(menu);
                }
            }

            flPanelAlumnos.MouseWheel += FlPanelAlumnos_MouseWheel;
        }
예제 #3
0
 public void recibirGrupoNuevo(Grupo newGrupo)
 {
     removeLblInfo();
     grupos.Add(newGrupo);
     contenedorGrupos.Controls.Add(PersonalizacionComponentes.hacerConternedorGrupo(newGrupo, color));
     color++;
 }
예제 #4
0
 /// <summary>Usado para recibir toda la información (incluido el id) de la materia nueva que se acaba de registrar</summary>
 public void recibirMateria(Materia newMateria)
 {
     lblArrowMateria.Dispose();
     lblInfoMaterias.Dispose();
     materias.Add(newMateria);
     flPanelMaterias.Controls.Add(PersonalizacionComponentes.hacerBotonMateria(newMateria, color));
     color++;
 }
예제 #5
0
        /// <summary>/// Usado para recibir de FormAgregarAlumno la información del alumno agregado</summary>
        public void recibirAlumno(Alumno nuevo)
        {
            lblInfoAlumnos.Dispose();
            lblArrowAlumno.Dispose();
            //agregar alumno al array
            alumnosGrupo.Add(nuevo);

            //hacer el label
            Label nombre = PersonalizacionComponentes.hacerLabelAlumno(nuevo);

            //agregar el menú contextual
            MenuItem[] menu =
            {
                new MenuItem("Editar", editarAlumno_Click),
                new MenuItem("Borrar", borrarAlumno_Click)
            };
            menu[0].Name = nuevo.getId() + "";
            menu[1].Name = nuevo.getId() + "";

            nombre.ContextMenu = new ContextMenu(menu);

            flPanelAlumnos.Controls.Add(nombre);

            //Para evitar que desacomode los días nuevos para este nuevo alumno
            System.Collections.IEnumerator fechas = flPanelFechas.Controls.GetEnumerator();
            List <DiaClase> daysNewAlum           = new List <DiaClase>();

            while (fechas.MoveNext())
            {
                string[] actualDay = ((tiltLabel)fechas.Current).Text.Split('/');

                daysNewAlum.Add(new DiaClase(new DateTime(Convert.ToInt32(actualDay[2]), Convert.ToInt32(actualDay[1]), Convert.ToInt32(actualDay[0])), nuevo.getId()));
            }

            //Asistencias
            //DiaClase[] diasClase = dbConection.getDiasClase(idGrupo);
            FlowLayoutPanel asistencias = PersonalizacionComponentes.hacerPanelAsistencias(nuevo.getId(), daysNewAlum.ToArray());

            asistencias.Name = nuevo.getId().ToString();

            //Quitar el label de control si es que está
            quitarLabelControl();

            flPanelAsistencias.Controls.Add(asistencias);

            Console.WriteLine(flPanelFechas.Controls.Count + " dias ");
            if (flPanelFechas.Controls.Count <= 10)
            {
                agregarLabelControl();
            }
        }
예제 #6
0
        ///<sumary> limpia el contenedor y carga todas las materias como botones nuevos </sumary>
        public void cargarMaterias()
        {
            materias = dbConection.materiasAsociadasCon(idGrupo);

            if (materias.Count != 0)
            {
                lblInfoMaterias.Dispose();
                lblArrowMateria.Dispose();
                color = 0;

                foreach (Materia materia in materias)
                {
                    Button boton = PersonalizacionComponentes.hacerBotonMateria(materia, color);
                    flPanelMaterias.Controls.Add(boton);

                    color++;
                }
            }
        }
예제 #7
0
// ***************************** metodos  *******************************************************

        ///<sumary> limpia el contenedor y carga todos los grupos como botones nuevos </sumary>
        public bool cargarBotones()
        {
            grupos = dbConection.GruposAsociadosCon(idMaestro);

            contenedorGrupos.Controls.Clear();
            color = 0;

            Panel contenedor;

            foreach (Grupo grp in grupos)
            {
                contenedor = PersonalizacionComponentes.hacerConternedorGrupo(grp, color);
                contenedorGrupos.Controls.Add(contenedor);

                color++;
            }

            return(grupos.Count > 0);
        }
예제 #8
0
        /// <summary> llena la lista de asistencias </summary>
        private void cargarAsistencias()
        {
            DiaClase[] diasClase = dbConection.getDiasClase(idGrupo, mostrandoTodosDias);

            if (diasClase.Length != 0)
            {
                flPanelAsistencias.Controls.Clear();
                flPanelFechas.Controls.Clear();
                lblArrowDia.Dispose();
                foreach (DiaClase diaClase in diasClase)
                {
                    tiltLabel labelFecha = new tiltLabel(diaClase);

                    MenuItem[] menu =
                    {
                        new MenuItem("Borrar", borrarFecha_Click)
                    };
                    menu[0].Name = diaClase.dia.ToString("dd'/'MM'/'yy");

                    labelFecha.ContextMenu = new ContextMenu(menu);
                    flPanelFechas.Controls.Add(labelFecha);
                }

                foreach (Alumno alumno in alumnosGrupo)
                {
                    FlowLayoutPanel asistencias = PersonalizacionComponentes.hacerPanelAsistencias(alumno.getId(), diasClase);
                    asistencias.Name = alumno.getId().ToString();
                    flPanelAsistencias.Controls.Add(asistencias);
                }

                /*Cuando el número de días no es diez no aparece la barra ed scroll horizontal por lo que hay que hacer la validación y
                 * en este caso agregar un label con el tamaño de un scroll y que no desalinea los nombres con los días de asistencia */
                if (diasClase.Length <= 10)
                {
                    agregarLabelControl();
                }
            }

            //Evento de Scroll con el scroll del mouse
            flPanelAsistencias.MouseWheel += flPanelAsistencias_MouseScroll;
            flPanelFechas.MouseWheel      += FlPanelFechas_MouseWheel;
        }
예제 #9
0
        /// <summary> muestra la ventana tareas </summary>
        private void btnTareas_Click(object sender, EventArgs e)
        {
            desactivarPanelActivo((int)Entregas.TAREAS);
            btnAgregar.Visible = true;
            panelActivo        = Entregas.TAREAS;
            grpBxModulo.Text   = "Tareas";

            if (instancesPaneles[(int)Entregas.TAREAS])
            {
                //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas
                //Las filas representan los títulos de ese panel y siempre van en la fila 1
                flPanelEntregas[0, (int)Entregas.TAREAS].Show();
                flPanelEntregas[1, (int)Entregas.TAREAS].Show();
            }
            else
            {
                instancesPaneles[(int)Entregas.TAREAS]   = true;
                flPanelEntregas[0, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelTareas");
                flPanelEntregas[1, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosTareas");

                grpBxModulo.AccessibleDescription = dbConection.tipoTarea.ToString();

                //Se creó el panel de tareas y se agrega al contenedor en la columna 1, los títulos en la fila 0 y los entregables en la fila 1
                tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.TAREAS], 1, 1);
                tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.TAREAS], 1, 0);

                flPanelEntregas[0, (int)Entregas.TAREAS].Show();
                flPanelEntregas[1, (int)Entregas.TAREAS].Show();

                Tarea[] listTareas = dbConection.getTareas(idMateria);


                foreach (Tarea tarea in listTareas)
                {
                    tiltLabel nombreTarea = new tiltLabel(tarea.nombre);
                    nombreTarea.Name = tarea.id.ToString();

                    MenuItem[] menu =
                    {
                        new MenuItem("Borrar", borrarEntrega_Click)
                    };
                    menu[0].Name = tarea.id.ToString();

                    nombreTarea.ContextMenu = new ContextMenu(menu);
                    //Se van agregando los títulos de las entregas al contenedor de titulos de tareas
                    flPanelEntregas[1, (int)Entregas.TAREAS].Controls.Add(nombreTarea);
                }


                foreach (Alumno alumno in alumnos)
                {
                    FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelTareas(alumno.getId(), listTareas, idMateria);
                    flPanelEntregas[0, (int)Entregas.TAREAS].Controls.Add(entregas);
                }

                if (listTareas.Length <= 10)
                {
                    agregarLabelControl();
                }

                //ScrollEvents Tareas
                flPanelEntregas[0, (int)Entregas.TAREAS].Scroll     += flPanelTareas_Scroll;
                flPanelEntregas[0, (int)Entregas.TAREAS].MouseWheel += flPanelTareas_MouseScroll;
                flPanelEntregas[1, (int)Entregas.TAREAS].MouseWheel += flPanelTareasTitulos_MouseWheel;
            }
        }
예제 #10
0
        /// <summary> muestra la ventana tareas </summary>
        private void btnCalificaciones_Click(object sender, EventArgs e)
        {
            if (instancesPaneles[(int)Entregas.CALIFICACIONES])
            {
                grpBxModulo.Text   = "Calificaciones";
                btnAgregar.Visible = false;
                desactivarPanelActivo((int)Entregas.CALIFICACIONES);
                panelActivo = Entregas.CALIFICACIONES;
                //Si ya se instanció mostrará ese panel de calificaciones y el de los títulos de las calificaciones
                flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show();
                flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show();
            }
            else
            {
                if (MessageBox.Show("Estás a punto de ver las calificaciones calculadas con los siguientes valores en los rubros" + System.Environment.NewLine +
                                    "Tareas: " + upDnTareas.Value + System.Environment.NewLine + "Proyectos: " + upDnProyectos.Value + System.Environment.NewLine +
                                    "Exámenes: " + upDnExamenes.Value, "Confirmación ver calificaciones", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    //Si es visible pero falso es que ya estaba creado es porque se cambió el valor de algún nuUpRubro
                    if (flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Visible)
                    {
                        //Cuando se actualice uno de los rubros y ya se haya cargado el panel de calificaciones entrerá en esta opción para limpiar el panel y volver a cargarlo
                        flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Controls.Clear();
                        flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.Clear();
                        tlPanel.Controls.RemoveByKey("flPanelCalificaciones");
                        tlPanel.Controls.RemoveByKey("flPanelTitulosCalificaciones");
                    }
                    grpBxModulo.Text   = "Calificaciones";
                    btnAgregar.Visible = false;
                    desactivarPanelActivo((int)Entregas.CALIFICACIONES);
                    panelActivo = Entregas.CALIFICACIONES;

                    instancesPaneles[(int)Entregas.CALIFICACIONES] = true;

                    flPanelEntregas[0, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelCalificaciones");
                    flPanelEntregas[1, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosCalificaciones");

                    tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.CALIFICACIONES], 1, 1);
                    tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.CALIFICACIONES], 1, 0);

                    flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show();
                    flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show();

                    tiltLabel[] titulos = new tiltLabel[4];

                    titulos[0] = new tiltLabel("Tareas");
                    titulos[1] = new tiltLabel("Poyectos");
                    titulos[2] = new tiltLabel("Exámenes");
                    titulos[3] = new tiltLabel("Promedio");

                    titulos[0].Name = "Tareas";
                    titulos[1].Name = "Proyectos";
                    titulos[2].Name = "Exámenes";
                    titulos[3].Name = "Promedio";

                    titulos[0].Margin = new Padding(0, 0, 50, 0);
                    titulos[1].Margin = new Padding(0, 0, 50, 0);
                    titulos[2].Margin = new Padding(0, 0, 50, 0);
                    titulos[3].Margin = new Padding(0, 0, 50, 0);

                    flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.AddRange(titulos);

                    PersonalizacionComponentes.decorarPanelesCalificaciones(alumnos, idMateria, upDnTareas.Value, upDnProyectos.Value, upDnExamenes.Value, ref flPanelEntregas[0, (int)Entregas.CALIFICACIONES], this);

                    agregarLabelControl();

                    //ScrollEvents Calificaciones
                    flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Scroll     += flPanelCalificaciones_Scroll;
                    flPanelEntregas[0, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificaciones_MouseScroll;
                    flPanelEntregas[1, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificacionesTitulos_MouseWheel;
                }
            }
        }
예제 #11
0
        /// <summary> muestra la ventana examenes </summary>
        private void btnExamenes_Click(object sender, EventArgs e)
        {
            desactivarPanelActivo((int)Entregas.EXAMENES);
            btnAgregar.Visible = true;
            grpBxModulo.Text   = "Exámenes";
            panelActivo        = Entregas.EXAMENES;

            if (instancesPaneles[(int)Entregas.EXAMENES])
            {
                //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas
                flPanelEntregas[0, (int)Entregas.EXAMENES].Show();
                flPanelEntregas[1, (int)Entregas.EXAMENES].Show();
            }
            else
            {
                //Le dice que ya se instanció para que la siguiente vez que se entre en est opción no cargue todo el panel de nuevo
                instancesPaneles[(int)Entregas.EXAMENES]   = true;
                flPanelEntregas[0, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelExamenes");
                flPanelEntregas[1, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosExamenes");

                grpBxModulo.AccessibleDescription = dbConection.tipoExam.ToString();

                tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.EXAMENES], 1, 1);
                tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.EXAMENES], 1, 0);

                flPanelEntregas[0, (int)Entregas.EXAMENES].Show();
                flPanelEntregas[1, (int)Entregas.EXAMENES].Show();


                Examen[] listExamenes = dbConection.getExamenes(idMateria);

                foreach (Examen exam in listExamenes)
                {
                    tiltLabel nombreEntrega = new tiltLabel(exam.nombre);
                    nombreEntrega.Name = exam.id.ToString();

                    //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado
                    nombreEntrega.Margin = new Padding(0, 0, 50, 0);

                    MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) };
                    menu[0].Name = exam.id.ToString();

                    nombreEntrega.ContextMenu = new ContextMenu(menu);
                    flPanelEntregas[1, (int)Entregas.EXAMENES].Controls.Add(nombreEntrega);
                }

                foreach (Alumno alumno in alumnos)
                {
                    FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelExamenes(alumno.getId(), listExamenes);
                    entregas.Margin = new Padding(0, 0, 0, 0);
                    flPanelEntregas[0, (int)Entregas.EXAMENES].Controls.Add(entregas);
                }

                if (listExamenes.Length <= 5)
                {
                    agregarLabelControl();
                }

                //ScrollEvents Exámenes
                flPanelEntregas[0, (int)Entregas.EXAMENES].Scroll     += flPanelExamenes_Scroll;
                flPanelEntregas[0, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenes_MouseScroll;
                flPanelEntregas[1, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenesTitulos_MouseWheel;
            }
        }
예제 #12
0
        /// <summary> muestra la ventana proyectos </summary>
        private void btnProyectos_Click(object sender, EventArgs e)
        {
            desactivarPanelActivo((int)Entregas.PROYECTOS);
            panelActivo        = Entregas.PROYECTOS;
            grpBxModulo.Text   = "Proyectos";
            btnAgregar.Visible = true;

            if (instancesPaneles[(int)Entregas.PROYECTOS])
            {
                flPanelEntregas[0, (int)Entregas.PROYECTOS].Show();
                flPanelEntregas[1, (int)Entregas.PROYECTOS].Show();
            }
            else
            {
                instancesPaneles[(int)Entregas.PROYECTOS]   = true;
                flPanelEntregas[0, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelProyectos");
                flPanelEntregas[1, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosProyectos");

                grpBxModulo.AccessibleDescription = dbConection.tipoProy.ToString();

                tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.PROYECTOS], 1, 1);
                tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.PROYECTOS], 1, 0);

                flPanelEntregas[0, (int)Entregas.PROYECTOS].Show();
                flPanelEntregas[1, (int)Entregas.PROYECTOS].Show();

                Proyecto[] listProyectos = dbConection.getProyectos(idMateria);

                foreach (Proyecto proyecto in listProyectos)
                {
                    tiltLabel nombreEntrega = new tiltLabel(proyecto.nombre);
                    nombreEntrega.Name = proyecto.id.ToString();

                    //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado
                    nombreEntrega.Margin = new Padding(0, 0, 50, 0);

                    MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) };
                    menu[0].Name = proyecto.id.ToString();

                    nombreEntrega.ContextMenu = new ContextMenu(menu);

                    flPanelEntregas[1, (int)Entregas.PROYECTOS].Controls.Add(nombreEntrega);
                }

                foreach (Alumno alumno in alumnos)
                {
                    FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelProyectos(alumno.getId(), listProyectos);
                    entregas.Margin = new Padding(0, 0, 0, 0);
                    flPanelEntregas[0, (int)Entregas.PROYECTOS].Controls.Add(entregas);
                }

                if (listProyectos.Length <= 5)
                {
                    agregarLabelControl();
                }

                //ScrollEvents Proyectos
                flPanelEntregas[0, (int)Entregas.PROYECTOS].Scroll     += flPanelProyectos_Scroll;
                flPanelEntregas[0, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectos_MouseScroll;
                flPanelEntregas[1, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectosTitulos_MouseWheel;
            }
        }