Relate Check Boxes with Radio Buttons

1

I'm with a project where I have to put occurrences. This is a project from a school. Then the occurrences would be like this: An occurrence would be a warning or a suspension, and its causes, that is, it messed up in a room, cursed a teacher, did no duty, etc. My question is: How do you relate these elements? I say the radio button with the check box. Remembering that I already have the student model, and how to relate it to the student? I mean, creating another table in the bank and relating the two? Or can you do it on a table only and how popular is it the right way? And how can I put a status on this occurrence? I say whether the issue has already been resolved or not, type: Status - > Pending, to know that it has not yet been resolved, and - > Resolved, if it has already been resolved. Remembering that I want this occurrence to be editable too.

In short, I wanted you to register and then display, if you want to edit it is also possible and delete it too!

Here is the code I put (HTML: using bootstrap cllapse):

<div class="panel-group" id="accordion">
<div class="panel panel-default">
    <div class="panel-heading">
        <h4 class="panel-title">
            <a data-toggle="collapse" data-parent="#accordion" href="#ocorrencias">
                Ocorrências do Aluno
            </a>
        </h4>
    </div>

    <div id="ocorrencias" class="panel-collapse collapse in">
        <div class="panel-body">
            <div class="radio-inline">
                <label class="radio-inline">
                    <input type="radio" value="Advertencia" id="Advertencia" />
                    Advertência
                </label>
                <label class="radio-inline">
                    <input type="radio" value="Suspensao" id="Suspensao" />
                    Suspensão por: <input type="text" class="col-xs-1" name="dias" id="dias"/> dias.
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="atividade" id="atividade" value="" checked>
                    Estar deixando de fazer as atividades discentes ou não ter concluido a mesma
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="material" id="material" value="">
                    Não trazer o material necessario para as aulas do dia
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="uniforme" id="uniforme" value="">
                    Não estar devidamente uniformizado
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="conversa" id="conversa" value="">
                    Estar conversando excessivamente em sala de aula
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="atrapalhando" id="atrapalhando" value="">
                    Estar brincando e atrapalhando os colegarr em sala de aula
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="atividadesDocentes" id="atividadesDocentes" value="">
                    Estar impedindo as atividades docentes
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="brincando" id="brincando" value="">
                    Estar com brincadeira de mau gosto na escola <input type="text" name="motivo" id="motivo"/>
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="aula" id="aula" value="">
                    Estar frequentemente "matando aula" ou chegando atrasado
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="fugindo" id="fugindo" value="">
                    Ter saído da escola sem autorização, fugiu ás <input type="text" name="hora" id="hora"/>
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="foraDeSala" id="foraDeSala" value="">
                    Estar fora da sala de aulas <input type="text" name="fora" id="fora"/>
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="agredido" id="agredido" value="">
                    Ter agredido, faltado com o devido respeito aos colegas <input type="text" name="respeito" id="respeito" />
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="respeito" id="respeito" value="">
                    Ter faltado com respeito ao professor
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="equipamentos" id="equipamentos" value="">
                    Estar usando equipamentos eletro-eletrônicos em sala de aula <input type="text" name="equipamentos" id="equipamentos" />
                </label>
            </div>

            <div class="checkbox">
                <label>
                    <input type="checkbox" name="outros" id="outros" value="">
                    Outros <textarea name="outros" id="outros"></textarea>
                </label>
            </div>

            <div class="form-group">
                <input type="submit" value="Salvar" class="btn btn-success" />
            </div>

        </div>
    </div>
</div>

And here's my model (Student.cs):

 public long Id { get; set; }

    [Required(ErrorMessage = "O nome do aluno é obrigatório")]
    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Aluno")]
    public string Nome { get; set; }

    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Pai")]
    public string NomePai { get; set; }

   // [Required(ErrorMessage = "O nome da mãe é obrigatório")]
    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome da Mãe")]
    public string NomeMae { get; set; }

    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Responsável")]
    public string NomeResponsavel { get; set; }

   // [Required(ErrorMessage = "O endereço é obrigatório")]
    [MinLength(10, ErrorMessage = "O endereço deve ter no mínimo 10 caracteres")]
    [Display(Name = "Endereço")]
    public string Endereco { get; set; }

   // [Required(ErrorMessage = "A data de nascimento é obrigatória")]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    [Display(Name = "Data de Nascimento")]
    public DateTime DataDeNascimento { get; set; }

    [MaxLength(4, ErrorMessage = "O ano letivo deve ter no máximo 4 caracteres: AAAA ")]
    [Display(Name = "Ano Letivo")]
    public string AnoLetivo { get; set; }

    [Required(ErrorMessage = "Informe o ano que o aluno está cursando")]
    public int Ano { get; set; }

    [Required(ErrorMessage = "Informe a turma do aluno")]
    public string Turma { get; set; }

   // [Required(ErrorMessage = "Informe o numero da turma")]
    public int Numero { get; set; }

    [Required(ErrorMessage = "informe o turno")]
    public string Turno { get; set; }

    //[Required(ErrorMessage="O telefone é obrigatório")]
    [Display(Name="Telefone")]
    public string Telefone { get; set; }

    [Display(Name="Telefone Alternativo")]
    public string TelefoneContato { get; set; }

    [Display(Name="Telefone Responsável")]
    public string TelefoneResponsavel { get; set; }

    [Display(Name = "Foto")]
    public string Foto { get; set; }

If I need to, I'll put my controller!

    
asked by anonymous 05.05.2014 / 18:07

2 answers

1

I would do so:

  • A Model of Occurrences for the Student (suggestion of name: AlunoOcorrencia ) of cardinality N, that is, its model of Student like this:

    public class Aluno {
        /* Aqui vão todas as propriedades já mencionadas */
    
        public virtual ICollection<AlunoOcorrencia> AlunoOcorrencias {get;set;}
    }
    
  • A Model AlunoOcorrencia :

    public class AlunoOcorrencia {
        [Key]
        public long AlunoOcorrenciaId {get;set;}
    
        [Required]
        public TipoOcorrencia TipoOcorrencia {get;set;}
    
        /* Coloque aqui mais propriedades */
    }
    
  • would be an Enum :

    namespace SeuProjeto.Enums {
        public enum TipoOcorrencia {
            BaguncaSala, 
            DesacatoProfessor,
            NaoEntregouDeverDeCasa
        }
    }
    
  • Type of event in View (Razor):

    @Html.RadioButtonFor(model => model.TipoOcorrencia, Enums.TipoOcorrencia.BaguncaSala) Bagunça em Sala
    @Html.RadioButtonFor(model => model.DesacatoProfessor, Enums.TipoOcorrencia.BaguncaSala) Desacato ao Professor
    @Html.RadioButtonFor(model => model.NaoEntregouDeverDeCasa, Enums.TipoOcorrencia.BaguncaSala) Não Entregou Dever de Casa
    
  • CheckBoxes in View (Razor):

    CheckBoxes is already much more complicated to put in, but it is possible using a component called MvcCheckBoxList . For the answer do not get too extensive, I'll pass the link for a tutorial to see if the component meets your need: link

05.05.2014 / 18:22
1

I would do so:

public class Aluno
{
    public long Id { get; set; }

    [Required(ErrorMessage = "O nome do aluno é obrigatório")]
    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Aluno")]
    public string Nome { get; set; }

    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Pai")]
    public string NomePai { get; set; }

    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome da Mãe")]
    public string NomeMae { get; set; }

    [MinLength(3, ErrorMessage = "O nome deve ter no mínimo 3 caracteres")]
    [Display(Name = "Nome do Responsável")]
    public string NomeResponsavel { get; set; }

    [MinLength(10, ErrorMessage = "O endereço deve ter no mínimo 10 caracteres")]
    [Display(Name = "Endereço")]
    public string Endereco { get; set; }

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [DataType(DataType.Date)]
    [Display(Name = "Data de Nascimento")]
    public DateTime DataDeNascimento { get; set; }

    [MaxLength(4, ErrorMessage = "O ano letivo deve ter no máximo 4 caracteres: AAAA ")]
    [Display(Name = "Ano Letivo")]
    public string AnoLetivo { get; set; }

    [Required(ErrorMessage = "Informe o ano que o aluno está cursando")]
    public int Ano { get; set; }

    [Required(ErrorMessage = "Informe a turma do aluno")]
    public string Turma { get; set; }

    public int Numero { get; set; }

    [Required(ErrorMessage = "informe o turno")]
    public string Turno { get; set; }

    [Display(Name = "Telefone")]
    public string Telefone { get; set; }

    [Display(Name = "Telefone Alternativo")]
    public string TelefoneContato { get; set; }

    [Display(Name = "Telefone Responsável")]
    public string TelefoneResponsavel { get; set; }

    [Display(Name = "Foto")]
    public string Foto { get; set; }

    //adicionado ao seu exemplo a lista e o construtor
    public ICollection<Ocorrencia> Ocorrencias { get; set; }

    public Aluno()
    {
        this.Ocorrencias = new HashSet<Ocorrencia>();
    }
}

public class Ocorrencia
{
    public int Id { get; set; }

    public int AlunoId { get; set; }
    public virtual Aluno Aluno { get; set; }

    public int OcorrenciaTipoId { get; set; }
    public virtual OcorrenciaTipo OcorrenciaTipo { get; set; }

    public string Descricao { get; set; }

    /**outros campos referente as Ocorrencias*/
}

public class OcorrenciaTipo
{
    public int Id { get; set; }
    public string Descricao { get; set; }

    /**outros campos referente as OcorrenciaTipo*/
}

along with Model Aluno.cs , and as you reported it gives some work with enum , in which case you could have the changes in OcorrenciaTipo the way you want.

In case there are two more tables to have this Occurrences control on your system.

    
05.05.2014 / 18:44