/**
  * Crea una nova solicitud per a entrar a un grup 
  * @param integer [$id] identificador del grup
  */
 public function novaSolicitud($id)
 {
     $emaillog = Auth::user()->email_estudiant;
     try {
         $estudiant = Estudiant::findOrFail($emaillog);
     } catch (ModelNotFoundException $e1) {
         return Redirect::route('grups.meus');
     }
     try {
         $grup = Grup::findOrFail($id);
     } catch (ModelNotFoundException $e2) {
         return Redirect::route('grups.meus');
     }
     $estudiant->solicitudGrup($grup);
     $slug = $grup->getSlug();
     return Redirect::route('grup.consulta', array('slug' => $slug));
 }
 /**
  * Crea un nou esdeveniment
  */
 public function nouEsdeveniment()
 {
     $num_grups = Auth::user()->num_grups();
     if ($num_grups > 0) {
         $emaillog = Auth::user()->email_estudiant;
         $estudiant = Estudiant::findOrFail($emaillog);
         if (Input::has('nom')) {
             $nom = Input::get('nom');
             $nom = strip_tags($nom);
             $nom = trim($nom);
             $descripcio = Input::get('descripcio');
             $descripcio = strip_tags($descripcio);
             $descripcio = trim($descripcio);
             $data = Input::get('data');
             $hora = Input::get('hora');
             $minut = Input::get('minut');
             $id_grup = Input::get('grup');
             $id_grup = strip_tags($id_grup);
             $validator = Validator::make(array('nombre' => $nom, 'fecha' => $data, 'hora' => $hora, 'minuto' => $minut, 'descripción' => $descripcio, 'grupo' => $id_grup), array('nombre' => array('required', 'max:60'), 'fecha' => array('required', 'date_format:"d/m/Y"'), 'hora' => array('required', 'numeric', 'between:0,23'), 'minuto' => array('required', 'numeric', 'between:0,55'), 'descripción' => array('max:255'), 'grupo' => array('required')));
             if ($validator->fails()) {
                 return Redirect::route('esdeveniment.nou')->withErrors($validator);
             }
             $dia = substr($data, 0, 2);
             $mes = substr($data, 3, 2);
             $any = substr($data, 6, 8);
             /*Afegim un zero davant per	complir amb 
               l'especificaió del tipus DATE*/
             if ($hora < 10) {
                 $hora2 = '0' . $hora;
             } else {
                 $hora2 = $hora;
             }
             $data_final = $any . '-' . $mes . '-' . $dia . ' ' . $hora2 . ':' . $minut . ':' . '00';
             $esdeveniment = new Esdeveniment();
             $esdeveniment->nom_esdeveniment = $nom;
             $esdeveniment->descripcio_esdeveniment = $descripcio;
             $esdeveniment->estudiant_email = $emaillog;
             $esdeveniment->grup_id_grup = $id_grup;
             $esdeveniment->slug_esdeveniment = $nom . uniqid();
             $esdeveniment->data_esdeveniment = $data_final;
             try {
                 $grup = Grup::findOrFail($id_grup);
             } catch (ModelNotFoundException $e) {
                 return Redirect::route('esdeveniments.consulta');
             }
             $grups = Auth::user()->grups()->lists('id_grup');
             /*Comprovació de que l'estudiant estigui matriculat
             	 al grup i estigui actiu*/
             if (in_array($grup->getID(), $grups) && $grup->getActiu()) {
                 $esdeveniment->save();
             } else {
                 return Redirect::route('esdeveniments.consulta');
             }
             return Redirect::route('esdeveniments.consulta');
         } else {
             $grups = $estudiant->grups;
             $this->layout->title = 'Workshome - Nuevo evento';
             $this->layout->description = 'Crear un nuevo evento';
             $this->layout->content = View::make('esdeveniments/nou', array('grups' => $grups));
         }
     } else {
         return Redirect::route('esdeveniments.consulta');
     }
 }
 /**
  * Elimina una assignatura d'un grup i totes les seves aportacions
  * i comentaris
  * @param string [$slug] slug d'una assignatura
  */
 public function eliminarAssignatura($slug)
 {
     $emaillog = Auth::user()->email_estudiant;
     try {
         $estudiant = Estudiant::findOrFail($emaillog);
     } catch (ModelNotFoundException $e) {
         return Redirect::route('grups.meus');
     }
     try {
         $assignatura = Assignatura::bySlug($slug);
     } catch (ModelNotFoundException $e) {
         return Redirect::route('grups.meus');
     }
     $grup = $assignatura->grup;
     /*Comprovam que sigui el moderador del grup 
       al qual pertany l'assignatura i el grup estigui actiu*/
     if ($emaillog == $grup->getEmail() && $grup->getActiu()) {
         if ($assignatura->num_aportacions() > 0) {
             $aportacions = $assignatura->aportacions;
             foreach ($aportacions as $aportacio) {
                 if ($aportacio->num_comentaris() > 0) {
                     $comentaris = $aportacio->comentaris;
                     foreach ($comentaris as $comentari) {
                         $comentari->delete();
                     }
                 }
                 $aportacio->delete();
             }
         }
         $assignatura->delete();
     }
     return Redirect::route('grups.meus');
 }
 /**
  * Permet a l'estudiant canviar la seva contrasenya
  */
 public function canviarContrasenya()
 {
     if (Input::has('antigaContrasenya')) {
         $contAntiga = Input::get('antigaContrasenya');
         $contAntiga = strip_tags($contAntiga);
         $contAntiga = trim($contAntiga);
         $contNova = Input::get('novaContrasenya');
         $contNova = strip_tags($contNova);
         $contNova = trim($contNova);
         $email = Auth::user()->email_estudiant;
         $validator = Validator::make(array('Contraseña actual' => $contAntiga, 'Contraseña nueva' => $contNova), array('Contraseña actual' => array('required', 'min:6', 'max:20'), 'Contraseña nueva' => array('required', 'min:6', 'max:20')));
         if ($validator->fails()) {
             return Redirect::route('canviar.contrasenya')->withErrors($validator);
         }
         if (Auth::validate(array('email_estudiant' => $email, 'password' => $contAntiga, 'actiu_estudiant' => 1))) {
             try {
                 $estudiant = Estudiant::findOrFail($email);
             } catch (ModelNotFoundException $e) {
                 return Redirect::route('grups.meus');
             }
             $estudiant->contrasenya_estudiant = Hash::make($contNova);
             $estudiant->save();
             Auth::logout();
             Auth::attempt(array('email_estudiant' => $email, 'password' => $contNova));
             return Redirect::route('grups.meus');
         } else {
             return Redirect::route('canviar.contrasenya')->with('canvi', 'error');
         }
     } else {
         $this->layout->title = 'Workshome - Cambiar contraseña';
         $this->layout->description = 'Cambiar contraseña actual';
         $this->layout->content = View::make('estudiants/canviarContrasenya');
     }
 }