SVN Alba r4589 - in prosistem/alba/trunk/alba/apps/principal/modules/evento: actions templates
Author: josx Date: 2007-04-30 15:03:22 -0300 (Mon, 30 Apr 2007) New Revision: 4589 Modified: prosistem/alba/trunk/alba/apps/principal/modules/evento/actions/actions.class.php prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_fin.php prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_inicio.php prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/editSuccess.php Log: Ahora ya se puede dar de alta y modificar un evento Modified: prosistem/alba/trunk/alba/apps/principal/modules/evento/actions/actions.class.php =================================================================== --- prosistem/alba/trunk/alba/apps/principal/modules/evento/actions/actions.class.php 2007-04-27 15:07:48 UTC (rev 4588) +++ prosistem/alba/trunk/alba/apps/principal/modules/evento/actions/actions.class.php 2007-04-30 18:03:22 UTC (rev 4589) @@ -54,8 +54,6 @@ if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->updateEventoFromRequest(); - -/* $this->saveEvento($this->evento); $this->setFlash('notice', 'Your modifications have been saved'); if ($this->getRequestParameter('save_and_add')) { @@ -65,8 +63,6 @@ } else { return $this->redirect('evento/edit?id='.$this->evento->getId()); } -*/ - } else { // $this->labels = $this->getLabels(); } @@ -96,38 +92,148 @@ protected function updateEventoFromRequest() { $evento = $this->getRequestParameter('evento'); - print_R($evento); - $evento_obj = new Evento(); -/* - if(isset($alumno['apellido'])) { - $evento_obj->setApellido($alumno['apellido']); + + if (isset($evento['fecha_inicio'])) { + if ($evento['fecha_inicio']) { + try { + $dateFormat = new sfDateFormat($this->getUser()->getCulture()); + if(!is_array($evento['fecha_inicio'])) { + + if(isset($evento['hora_asociada']) AND $evento['hora_asociada'] == 1) { + if($evento['hora_inicio']) { + $evento['fecha_inicio'] .= " ".$evento['hora_inicio']['hour'].":".$evento['hora_inicio']['minute']; + } else { + $evento['fecha_inicio'] .= " 00:00:00"; + } + } else { + $evento['fecha_inicio'] .= " 00:00:00"; + } + + $value = $dateFormat->format($evento['fecha_inicio'], 'I', $dateFormat->getInputPattern('g')); + } else { + $value_array = $evento['fecha_inicio']; + + $value_array['hour']['hour'] = "00"; + $value_array['hour']['minute'] = "00"; + $value_array['hour']['second'] = "00"; + if($evento['hora_asociada'] == 1) { + if($evento['hora_inicio']) { + $value_array['hour'] = $evento['hora_inicio']['hour']; + $value_array['minute'] = $evento['hora_inicio']['minute']; + } + } + + $value = $value_array['year'].'-'.$value_array['month'].'-'.$value_array['day'].(isset($value_array['hour']) ? ' '.$value_array['hour'].':'.$value_array['minute'].(isset($value_array['second']) ? ':'.$value_array['second'] : '') : ''); + } + + $this->evento->setFechaInicio($value); + } + catch (sfException $e) { + // not a date + } + } else { + $this->evento->setFechaInicio(null); + } } - if (isset($alumno['fecha_nacimiento'])) { - if ($alumno['fecha_nacimiento']) { + + if (isset($evento['fecha_fin'])) { + if ($evento['fecha_fin']) { try { $dateFormat = new sfDateFormat($this->getUser()->getCulture()); - if (!is_array($alumno['fecha_nacimiento'])) { - $value = $dateFormat->format($alumno['fecha_nacimiento'], 'I', $dateFormat->getInputPattern('g')); + if (!is_array($evento['fecha_fin'])) { + + if(isset($evento['hora_asociada']) AND $evento['hora_asociada'] == 1) { + if($evento['hora_fin']) { + $evento['fecha_fin'] .= " ".$evento['hora_fin']['hour'].":".$evento['hora_fin']['minute']; + } else { + $evento['fecha_fin'] .= " 00:00:00"; + } + } else { + $evento['fecha_fin'] .= " 00:00:00"; + } + + $value = $dateFormat->format($evento['fecha_fin'], 'I', $dateFormat->getInputPattern('g')); } else { - $value_array = $alumno['fecha_nacimiento']; + $value_array = $evento['fecha_fin']; + + $value_array['hour']['hour'] = "00"; + $value_array['hour']['minute'] = "00"; + $value_array['hour']['second'] = "00"; + if($evento['hora_asociada'] == 1) { + if($evento['hora_fin']) { + $value_array['hour'] = $evento['hora_fin']['hour']; + $value_array['minute'] = $evento['hora_fin']['minute']; + } + } + $value = $value_array['year'].'-'.$value_array['month'].'-'.$value_array['day'].(isset($value_array['hour']) ? ' '.$value_array['hour'].':'.$value_array['minute'].(isset($value_array['second']) ? ':'.$value_array['second'] : '') : ''); } - $this->alumno->setFechaNacimiento($value); + $this->evento->setFechaFin($value); } catch (sfException $e) { // not a date } } else { - $this->alumno->setFechaNacimiento(null); + $this->evento->setFechaFin(null); } } - $this->alumno->setActivo(isset($alumno['activo']) ? $alumno['activo'] : 0); -*/ - return $evento_obj; + if(isset($evento['titulo'])) { + $this->evento->setTitulo($evento['titulo']); + } + + + if(isset($evento['tipo'])) { + $this->evento->setTipo($evento['titulo']); + } else { + $this->evento->setTipo(1); // (0 = PRIVATE | 1 = PUBLIC | 2 = CONFIDENTIAL) + } + + if(isset($evento['estado'])) { + $this->evento->setEstado($evento['estado']); + } else { + $this->evento->setEstado(1); // (0 = TENTATIVE, 1 = CONFIRMED, 2 = CANCELLED) + } + + + + + if(isset($evento['activar_repeticion']) AND $evento['activar_repeticion'] == 1) { + if(isset($evento['frecuencia']) AND is_array($evento['frecuencia']) ) { + $this->evento->setFrecuencia($evento['frecuencia'][0]); + + switch($evento['frecuencia'][0]) { // dia: 4, semana: 5, mes: 6, año: 7 + case '4': $this->evento->setFrecuenciaIntervalo($evento['frecuencia_intervalo_diaria']); + break; + case '5': $this->evento->setFrecuenciaIntervalo($evento['frecuencia_intervalo_semana']); + $aSemanaBinario = array ( 1, 2, 4, 8, 16, 32, 64 ); + $suma_total = 0; + foreach($evento['recurrencia_dias'] as $dia) { + $suma_total += $aSemanaBinario[$dia]; + } + // guardamos en binario para saber todos los dias de la semana seleccionados + $this->evento->setRecurrenciaDias($suma_total); + break; + case '6': break; + case '7': break; + } + } + + switch($evento['recurrencia_fin_tipo'][0]) { + case '0': $this->evento->setRecurrenciaFin(''); + break; + case '1': $this->evento->setRecurrenciaFin($evento['recurrencia_fin_repeticion']); + break; + case '2': $dateFormat = new sfDateFormat($this->getUser()->getCulture()); + $value = $dateFormat->format($evento['recurrencia_fin_fecha']." 00:00:00", 'I', $dateFormat->getInputPattern('g')); + $this->evento->setRecurrenciaFin($value); + break; + } + } + } } -?> \ No newline at end of file +?> \ No newline at end of file Modified: prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_fin.php =================================================================== --- prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_fin.php 2007-04-27 15:07:48 UTC (rev 4588) +++ prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_fin.php 2007-04-30 18:03:22 UTC (rev 4589) @@ -1,2 +1,4 @@ -<?php use_helper('DateForm') ?> -<?php echo select_time_tag("evento[hora_fin]", $evento->getHoraFin(), array('include_second' => false, '12hour_time' => true ), array('disabled' => true));?> \ No newline at end of file +<?php + use_helper('DateForm'); + echo select_time_tag("evento[hora_fin]", $hora_fin, array('include_second' => false, '12hour_time' => true ), ($hora_asociada == 0)? array('disabled' => true):array() ); +?> \ No newline at end of file Modified: prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_inicio.php =================================================================== --- prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_inicio.php 2007-04-27 15:07:48 UTC (rev 4588) +++ prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/_hora_inicio.php 2007-04-30 18:03:22 UTC (rev 4589) @@ -1,2 +1,4 @@ -<?php use_helper('DateForm') ?> -<?php echo select_time_tag("evento[hora_inicio]", $evento->getHoraInicio(), array('include_second' => false, '12hour_time' => true), array('disabled' => true));?> \ No newline at end of file +<?php + use_helper('DateForm'); + echo select_time_tag("evento[hora_inicio]", $hora_inicio, array('include_second' => false, '12hour_time' => true), ($hora_asociada == 0)? array('disabled' => true):array()); +?> \ No newline at end of file Modified: prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/editSuccess.php =================================================================== --- prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/editSuccess.php 2007-04-27 15:07:48 UTC (rev 4588) +++ prosistem/alba/trunk/alba/apps/principal/modules/evento/templates/editSuccess.php 2007-04-30 18:03:22 UTC (rev 4589) @@ -1,5 +1,61 @@ -<?php use_helper('I18N','Object') ?> +<?php + use_helper('I18N','Object'); + $hora_fin = ""; + $hora_inicio = ""; + $seleccion_4 = true; + $seleccion_5 = $seleccion_6 = $seleccion_7 = $hora_asociada = $activar_repeticion = false; + $mostrar_div_anual = $mostrar_div_mensual = $mostrar_div_semana = $mostrar_div_diaria = "display:none"; + $recurrencia_fin_fecha = ''; + $recurrencia_fin_repeticion = ''; + $recurrencia_fin_0 = true; + $recurrencia_fin_1 = false; + $recurrencia_fin_2 = false; + $numero_binario = "0000000"; + + if($evento->getId()) { + $hora_inicio = date( "H:i" , strtotime($evento->getFechaInicio())); + $hora_fin = date( "H:i" , strtotime($evento->getFechaFin())); + if($hora_inicio == "00:00" AND $hora_fin == "00:00") { + $hora_asociada = false; + } else { + $hora_asociada = true; + } + + switch($evento->getFrecuencia()) { + case '0': $activar_repeticion = false; break; + case '4': $activar_repeticion = true; $seleccion_4 = true; $seleccion_5 = $seleccion_6 = $seleccion_7 = false; $mostrar_div_diaria = ""; break; + case '5': $activar_repeticion = true; $seleccion_5 = true; $seleccion_4 = $seleccion_6 = $seleccion_7 = false; $mostrar_div_semana = ""; break; + case '6': $activar_repeticion = true; $seleccion_6 = true; $seleccion_5 = $seleccion_4 = $seleccion_7 = false; $mostrar_div_mensual = ""; break; + case '7': $activar_repeticion = true; $seleccion_7 = true; $seleccion_5 = $seleccion_6 = $seleccion_4 = false; $mostrar_div_anual = ""; break; + } + + + if($evento->getRecurrenciaFin() != "") { + if(is_numeric($evento->getRecurrenciaFin())) { + $recurrencia_fin_fecha = ''; + $recurrencia_fin_repeticion = $evento->getRecurrenciaFin(); + $recurrencia_fin_2 = $recurrencia_fin_0 = false; + $recurrencia_fin_1 = true; + } else { + $dateFormat = new sfDateFormat($sf_user->getCulture()); + $value = $dateFormat->format($evento->getRecurrenciaFin()." 00:00:00", 'I', $dateFormat->getInputPattern('g')); + + $recurrencia_fin_fecha = $value; + $recurrencia_fin_repeticion = ''; + $recurrencia_fin_2 = true; + $recurrencia_fin_0 = $recurrencia_fin_1 = false; + } + } + + + $numero_binario = str_pad(decbin($evento->getRecurrenciaDias()), 7, "0", STR_PAD_LEFT); + + + + } +?> + <script type="text/javascript"> function cambiarDeEstado(element) { if (document.getElementById(element).disabled == true) @@ -47,11 +103,11 @@ } if(document.getElementById('evento_recurrencia_fin_tipo_1').disabled == false && document.getElementById('evento_recurrencia_fin_tipo_1').checked == true) { - HabilitaDeshabilitaRangoFrecuencia('evento_frecuencia_fin_repeticion'); + HabilitaDeshabilitaRangoFrecuencia('evento_recurrencia_fin_repeticion'); } if(document.getElementById('evento_recurrencia_fin_tipo_2').disabled == false && document.getElementById('evento_recurrencia_fin_tipo_2').checked == true) { - HabilitaDeshabilitaRangoFrecuencia('evento_frecuencia_fin_fecha'); + HabilitaDeshabilitaRangoFrecuencia('evento_recurrencia_fin_fecha'); } } @@ -63,8 +119,8 @@ } function deshabilitaRangoFrecuencia() { - document.getElementById('evento_frecuencia_fin_repeticion').disabled=true; - document.getElementById('evento_frecuencia_fin_fecha').disabled=true; + document.getElementById('evento_recurrencia_fin_repeticion').disabled=true; + document.getElementById('evento_recurrencia_fin_fecha').disabled=true; } function mostrarRegla(element) { @@ -77,8 +133,17 @@ document.getElementById('evento_recurrencia_dias_4').disabled = false; document.getElementById('evento_recurrencia_dias_5').disabled = false; document.getElementById('evento_recurrencia_dias_6').disabled = false; - document.getElementById('evento_frecuencia_intervalo_diaria').disabled = false; - document.getElementById('evento_frecuencia_intervalo_semana').disabled = false; + + if(element == 'diaria') { + document.getElementById('evento_frecuencia_intervalo_diaria').disabled = false; + document.getElementById('evento_frecuencia_intervalo_semana').disabled = true; + } + + if(element == 'semana') { + document.getElementById('evento_frecuencia_intervalo_diaria').disabled = true; + document.getElementById('evento_frecuencia_intervalo_semana').disabled = false; + } + } function deshabilitaReglas() { @@ -154,7 +219,7 @@ 'control_name' => 'evento[fecha_inicio]', )) ?> - <?php include_partial('hora_inicio', array ('evento' => $evento));?> + <?php include_partial('hora_inicio', array ('evento' => $evento, 'hora_inicio' => $hora_inicio, 'hora_asociada' => $hora_asociada ));?> </div> </div> @@ -173,14 +238,14 @@ 'control_name' => 'evento[fecha_fin]', )) ?> - <?php include_partial('hora_fin', array ('evento' => $evento));?> + <?php include_partial('hora_fin', array ('evento' => $evento, 'hora_fin' => $hora_fin, 'hora_asociada' => $hora_asociada ));?> </div> </div> <div class="form-row"> <?php echo label_for('hora_asociada', __('Hora asociada:')) ?> <div class="content"> - <?php echo checkbox_tag('evento[hora_asociada]', 1, false, array('onChange'=>'javascrip:HabilitaDeshabilitaHora();')) ?> + <?php echo checkbox_tag('evento[hora_asociada]', 1, $hora_asociada , array('onChange'=>'javascrip:HabilitaDeshabilitaHora();')) ?> </div> </div> @@ -190,50 +255,51 @@ <h2> <?php echo __('Activar Repetición') ?> - <?php echo checkbox_tag('evento[activar]', 1, false, array('onChange'=>'javascrip:HabilitaDeshabilitaRepeticion();')) ?> + <?php echo checkbox_tag('evento[activar_repeticion]', 1, $activar_repeticion, array('onChange'=>'javascrip:HabilitaDeshabilitaRepeticion();')) ?> </h2> <h4>Regla de recurrencia</h4> <div class="form-row"> - <?php echo radiobutton_tag('evento[frecuencia][]', '4', true, array('disabled' => true, 'onChange' => 'javascript:mostrarRegla(\'diaria\')') ) ?>Diaria - <?php echo radiobutton_tag('evento[frecuencia][]', '5', false, array('disabled' => true, 'onChange' => 'javascript:mostrarRegla(\'semana\')')) ?>Semanal - <?php echo radiobutton_tag('evento[frecuencia][]', '6', false, array('disabled' => true, 'onChange' => 'javascript:mostrarRegla(\'mensual\')')) ?>Mensual - <?php echo radiobutton_tag('evento[frecuencia][]', '7', false, array('disabled' => true, 'onChange' => 'javascript:mostrarRegla(\'anual\')')) ?>Anual + <?php echo radiobutton_tag('evento[frecuencia][]', '4', $seleccion_4, array('disabled' => !$activar_repeticion, 'onChange' => 'javascript:mostrarRegla(\'diaria\')') ) ?>Diaria + <?php echo radiobutton_tag('evento[frecuencia][]', '5', $seleccion_5, array('disabled' => !$activar_repeticion, 'onChange' => 'javascript:mostrarRegla(\'semana\')')) ?>Semanal + <?php echo radiobutton_tag('evento[frecuencia][]', '6', $seleccion_6, array('disabled' => !$activar_repeticion, 'onChange' => 'javascript:mostrarRegla(\'mensual\')')) ?>Mensual + <?php echo radiobutton_tag('evento[frecuencia][]', '7', $seleccion_7, array('disabled' => !$activar_repeticion, 'onChange' => 'javascript:mostrarRegla(\'anual\')')) ?>Anual </div> - <div class="form-row" id="diaria" style="display:none"> - Repetir cada <?php echo input_tag('evento[frecuencia_intervalo_diaria]', '1', array('disabled' => true, 'maxlength' => 3, 'size' => 3 )) ?> día(s) + <div class="form-row" id="diaria" style="<?php echo $mostrar_div_diaria; ?>"> + Repetir cada <?php echo object_input_tag($evento, 'getFrecuenciaIntervalo', array('disabled' => !$seleccion_4, 'maxlength' => 3, 'size' => 3, 'control_name' => 'evento[frecuencia_intervalo_diaria]' )); ?> día(s) </div> - <div class="form-row" id="semana" style="display:none"> - Repetir cada <?php echo input_tag('evento[frecuencia_intervalo_semana]', '1', array('disabled' => true, 'maxlength' => 2, 'size' => 2 )) ?> semana(s)<br><br> - <?php echo checkbox_tag('evento[recurrencia_dias][]', '0', false, array('disabled' => true) ) ?>Domingo - <?php echo checkbox_tag('evento[recurrencia_dias][]', '1', false, array('disabled' => true) ) ?>Lunes - <?php echo checkbox_tag('evento[recurrencia_dias][]', '2', false, array('disabled' => true) ) ?>Martes - <?php echo checkbox_tag('evento[recurrencia_dias][]', '3', false, array('disabled' => true) ) ?>Miercoles - <?php echo checkbox_tag('evento[recurrencia_dias][]', '4', false, array('disabled' => true) ) ?>Jueves - <?php echo checkbox_tag('evento[recurrencia_dias][]', '5', false, array('disabled' => true) ) ?>Viernes - <?php echo checkbox_tag('evento[recurrencia_dias][]', '6', false, array('disabled' => true) ) ?>Sabado + <div class="form-row" id="semana" style="<?php echo $mostrar_div_semana?>"> + Repetir cada <?php echo object_input_tag($evento, 'getFrecuenciaIntervalo', array('disabled' => !$seleccion_5, 'maxlength' => 3, 'size' => 3, 'control_name' => 'evento[frecuencia_intervalo_semana]')); ?> semana(s)<br><br> + + <?php echo checkbox_tag('evento[recurrencia_dias][]', '0', ($numero_binario[6])?true:false, array('disabled' => !$seleccion_5) ) ?>Domingo + <?php echo checkbox_tag('evento[recurrencia_dias][]', '1', ($numero_binario[5])?true:false, array('disabled' => !$seleccion_5) ) ?>Lunes + <?php echo checkbox_tag('evento[recurrencia_dias][]', '2', ($numero_binario[4])?true:false, array('disabled' => !$seleccion_5) ) ?>Martes + <?php echo checkbox_tag('evento[recurrencia_dias][]', '3', ($numero_binario[3])?true:false, array('disabled' => !$seleccion_5) ) ?>Miercoles + <?php echo checkbox_tag('evento[recurrencia_dias][]', '4', ($numero_binario[2])?true:false, array('disabled' => !$seleccion_5) ) ?>Jueves + <?php echo checkbox_tag('evento[recurrencia_dias][]', '5', ($numero_binario[1])?true:false, array('disabled' => !$seleccion_5) ) ?>Viernes + <?php echo checkbox_tag('evento[recurrencia_dias][]', '6', ($numero_binario[0])?true:false, array('disabled' => !$seleccion_5) ) ?>Sabado </div> - <div class="form-row" id="mensual" style="display:none"> + <div class="form-row" id="mensual" style="<?php echo $mostrar_div_mensual?>"> </div> - <div class="form-row" id="anual" style="display:none"> + <div class="form-row" id="anual" style="<?php echo $mostrar_div_anual?>"> </div> <h4>Rango de frecuencia</h4> <div class="form-row"> - <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '0', true, array('disabled' => true, 'onClick' => 'javascript:deshabilitaRangoFrecuencia()') ) ?>Sin fecha de Finalización <br> + <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '0', $recurrencia_fin_0, array('disabled' => !$activar_repeticion, 'onClick' => 'javascript:deshabilitaRangoFrecuencia()') ) ?>Sin fecha de Finalización <br> - <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '1', false, array('disabled' => true, 'onClick' => 'javascript:HabilitaDeshabilitaRangoFrecuencia(\'evento_frecuencia_fin_repeticion\')') ) ?>Terminar despues: - <?php echo input_tag('evento[frecuencia_fin_repeticion]', '1', array('disabled' => true, 'maxlength' => 4, 'size' => 4 )) ?> <br> + <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '1', $recurrencia_fin_1, array('disabled' => !$activar_repeticion, 'onClick' => 'javascript:HabilitaDeshabilitaRangoFrecuencia(\'evento_recurrencia_fin_repeticion\')') ) ?>Terminar despues: + <?php echo input_tag('evento[recurrencia_fin_repeticion]', $recurrencia_fin_repeticion, array('disabled' => !$activar_repeticion, 'maxlength' => 4, 'size' => 4 )) ?> <br> - <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '2', false, array('disabled' => true, 'onClick' => 'javascript:HabilitaDeshabilitaRangoFrecuencia(\'evento_frecuencia_fin_fecha\')') ) ?>Terminar el: - <?php echo input_date_tag('evento[frecuencia_fin_fecha]', '', array ( 'rich' => true, 'calendar_button_img' => sfConfig::get('sf_admin_web_dir').'/images/date.png', - 'control_name' => 'evento[frecuencia_fin_fecha]', 'disabled' => true + <?php echo radiobutton_tag('evento[recurrencia_fin_tipo][]', '2', $recurrencia_fin_2, array('disabled' => !$activar_repeticion, 'onClick' => 'javascript:HabilitaDeshabilitaRangoFrecuencia(\'evento_recurrencia_fin_fecha\')') ) ?>Terminar el: + <?php echo input_date_tag('evento[recurrencia_fin_fecha]', $recurrencia_fin_fecha, array ( 'rich' => true, 'calendar_button_img' => sfConfig::get('sf_admin_web_dir').'/images/date.png', + 'control_name' => 'evento[recurrencia_fin_fecha]', 'disabled' => !$activar_repeticion )) ?><br> </div>
participants (1)
-
commits@pressenter.com.ar