Conjunto 221dd7a en sipp


Ignorar:
Fecha y hora:
01/12/2015 14:58:36 (hace 8 años)
Autor:
José Gregorio Puentes <jpuentes@…>
Branches:
0.3-stable
Children:
5f5e921
Parents:
bddfe56
Mensaje:

se creo una vista para listar los comentarios realizados a los campos, asi como se mejoro este proceso

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • 0.3-stable-modules/entes_detail_workflow/entes_detail_workflow.module

    r8467160 r221dd7a  
    564564function entes_detail_workflow_menu() {
    565565  $items = array();
    566 
    567   $items['entes_detail_workflow_js_util'] = array(
     566  $items['entes_detail_workflow_js_util/proyectos'] = array(
    568567    'title' => 'JS utilities',
    569     'page callback' => 'entes_detail_workflow_js_util',
     568    'page callback' => 'entes_detail_workflow_js_util_proyectos',
    570569    'access arguments' => array('ver planificador'),
    571570    'type' => MENU_CALLBACK,
    572571  );
     572  //consulta proyecto operativo (comentarios)
     573  $items['proyectosop/%proyectosop/comentarios'] = array(
     574    'title' => t('Comentarios'),
     575    'page callback' => '_list_proyectos_operativos_detail_workflow',
     576    'page arguments' => array(1),
     577    'access callback' => '_proyectos_operativos_ver_datos_wk_access',
     578    'access arguments' => array(1),
     579    'weight' => -5,
     580    'type' => MENU_LOCAL_TASK,
     581  );
    573582  return $items;
     583}
     584
     585/*
     586 * Implementation of hook_acciones_obtiene_links_alter()
     587 */
     588function entes_detail_workflow_proyecto_obtiene_links_alter(&$links, $proyecto, $acceso = FALSE) {
     589  $node_accion = node_load($proyecto->nid);
     590  if (_proyectos_operativos_ver_datos_wk_access($node_accion)) {
     591    $links['proyecto_view_comentarios'] = array(
     592      'data' => l(t('Consultar Comentarios'), 'proyectosop/' . $proyecto->nid . '/comentarios'),
     593      'class' => 'proyectos-operativos-comentarios',
     594    );
     595  }
     596}
     597
     598function _list_proyectos_operativos_detail_workflow($node){
     599  module_load_include('inc', 'workflow', 'workflow.pages');
     600  $campos_leidos = _entes_detail_proyectos_operativos_get_campos_proyectos();
     601  $options_campos = array();
     602  $node_type = content_types('proyectos_operativos');
     603  $fields = $node_type['fields'];
     604  $node_type1 = content_types('accion_especifica');
     605  $fields1 = $node_type1['fields'];
     606  $node_workflow_display = node_build_content($node);
     607  $result = db_query("SELECT e.*, u.name, u.uid, w.old_sid, w.comment FROM {entes_detail_workflow} AS e INNER JOIN {workflow_node_history} AS w ON w.hid = e.hid INNER JOIN {users} AS u ON w.uid =u.uid WHERE id = %d AND tipo = 'proyectos_operativos' AND active = 1 ORDER BY field_name, time DESC", $node->nid);
     608  $comentarios =array();
     609  while($comentario = db_fetch_object($result)) {
     610    if (!isset($comentarios[$comentario->field_name])) {
     611      $comentarios[$comentario->field_name] = array();
     612    }
     613    if (trim($comentario->comentario) != '') {
     614      $comentarios[$comentario->field_name][] = '<div class="comentario-ver"><div class="comentario-contenido">' . check_plain($comentario->comentario) . '</div><div class="comentario-usuario-fecha">' . theme('username', $comentario) . ' | ' . format_date($comentario->time) . '</div></div>';
     615    }
     616  }
     617  $contenido = array();
     618  $array_titles = array();
     619  $todas_opciones = array();
     620  $output = '';
     621  foreach($campos_leidos['campos'] as $idcat => $array){
     622    foreach($array as $idcamp => $arrat1){
     623      $output .= '<fieldset><legend>' . $campos_leidos['categorias'][$idcat][$idcamp]['title'] . '</legend>';
     624      $array_soptions = array();
     625      foreach($arrat1 as $ind2 => $array2){
     626        if ($ind2 == 'title'){
     627          $contenido[$ind2] = '<div class="field field-type-title field-field-proyecto-title"><div class="field-label">' . t('Nombre del Proyecto') . ':&nbsp;</div><div class="field-items"><div class="field-item odd">' . check_plain($node->title) . '</div></div></div>';
     628          $array_soptions[$ind2] = t('Nombre del Proyecto');
     629        }
     630        else {
     631          $contenido[$ind2] = drupal_render($node_workflow_display->content[$ind2]);
     632          $array_soptions[$ind2] = $fields[$ind2]['widget']['label'];
     633        }
     634        $array_titles[$ind2] = $array_soptions[$ind2];
     635        $todas_opciones[$ind2] = $ind2;
     636        if ($fields[$ind2]['display_settings']['full']['format'] != 'hidden' && trim($contenido[$ind2]) != '') {
     637          $ncomentario = isset($comentarios[$ind2]) && count($comentarios[$ind2])? '<div class="todos-comentarios"><b>' . t('Comentarios') . ':</b>' . implode ('', $comentarios[$ind2]) . '</div>' : '';
     638          $output .= $contenido[$ind2] . $ncomentario;
     639        }
     640      }
     641      if ($campos_leidos['categorias'][$idcat][$idcamp]['type'] == 'node'){
     642        $options_campos[$campos_leidos['categorias'][$idcat][$idcamp]['title']] = $array_soptions;
     643      }
     644      $output .= '</fieldset>';
     645    }
     646  }
     647  $contenidoae = array();
     648  $acciones_especificas = array();
     649  if (isset($node->field_proyecto_accion_esp)){
     650    foreach($node->field_proyecto_accion_esp as $accion) {
     651      if ($accion['nid']) {
     652        $accionep = node_load($accion['nid']);
     653        $output .= '<fieldset><legend>' . 'AE: ' . check_plain($accionep->title) . '</legend>';
     654        $opcionAE = array();
     655        $contenidoae[$accionep->nid] = array();
     656        $nodeae_workflow_display = node_build_content($accionep);
     657        foreach($fields1 as $idcat => $array){
     658          $idcat1 = $accion['nid'] . '_' . $idcat;
     659          $contenidoae[$accionep->nid][$idcat] = drupal_render($nodeae_workflow_display->content[$idcat]);
     660          $opcionAE[$accionep->nid . '_' . $idcat] = $fields1[$idcat]['widget']['label'];
     661          $array_titles[$accionep->nid . '_' . $idcat] = 'AE_' .$i . ': ' . $opcionAE[$accionep->nid . '_' . $idcat];
     662          $todas_opciones[$accionep->nid . '_' . $idcat] = $accionep->nid . '_' . $idcat;
     663          if ($fields1[$idcat]['display_settings']['full']['format'] != 'hidden' && trim($contenidoae[$accionep->nid][$idcat]) != '') {
     664            $ncomentario = isset($comentarios[$idcat1]) && count($comentarios[$idcat1])? '<div class="todos-comentarios"><b>' . t('Comentarios') . ':</b>' . implode ('', $comentarios[$idcat1]) . '</div>' : '';
     665            $output .= $contenidoae[$accionep->nid][$idcat] . $ncomentario;
     666          }
     667        }
     668        $output .= '</fieldset>';
     669      }
     670    }
     671  }
     672  return $output;
    574673}
    575674
     
    578677 * Utilidad javascript para realizar ajax en el formulario
    579678 */
    580 function entes_detail_workflow_js_util() {
    581   $options_select = isset($_POST['workflow_details']) && is_array($_POST['workflow_details'])? $_POST['workflow_details']: array();
    582   //$options_select = array_reverse($options_select);
     679function entes_detail_workflow_js_util_proyectos($categoria = '', $campo = '') {
     680  $options_select = isset($_POST[$campo])? $_POST[$campo]: 0;
    583681  $form_state = array('submitted' => FALSE);
    584682  $form_build_id = $_POST['form_build_id'];
     
    587685  // process it. We retreive the cached form, add the element, and resave.
    588686  $form = form_get_cache($form_build_id, $form_state);
    589   $new_form = array();
    590   $new_form['campos_modificar'] = array(
    591     '#type' => 'fieldset',
    592     '#weight' => 11,
    593     '#title' => t('Observaciones por campos'),
    594   );
    595   $new_select = array();
    596   foreach($options_select as $select){
    597     $new_select[$select] = $select;
    598   }
    599   foreach($form['#node_workflow_todas_opciones'] as $select => $title){
    600     if (array_key_exists($select, $new_select)){
    601       $nidae = explode('_', $select);
    602       if (is_numeric($nidae[0])){
    603         $fieldae = str_replace($nidae[0] . '_', '', $select);
    604         $output = $form['#nodeae_workflow_display'][$nidae[0]][$fieldae];
    605       }
    606       else {
    607         $output = $form['#node_workflow_display'][$select];
    608       }
    609       $new_form['campos_modificar'][$select] = array(
    610         '#type' => 'fieldset',
    611         '#title' => $form['#node_workflow_titles'][$select],
    612       );
    613       $new_form['campos_modificar'][$select]['comentario_' . $select] = array(
    614         '#title' => t('Comentario'),
    615         '#prefix' => '<div class="comentario-workflow">' . $output . '</div>',
    616         '#type' => 'textarea',
    617         '#default_value' => '',
    618       );
    619     }
    620   }
    621   $form['campos_modificar'] = $new_form['campos_modificar'];
     687  if ($options_select) {
     688    $form[$categoria][$campo]['comentario_' . $campo] = array(
     689      '#title' => t('Comentario'),
     690      '#type' => 'textarea',
     691      '#default_value' => '',
     692    );
     693  }
     694  elseif (isset($form[$categoria][$campo]['comentario_' . $campo])) {
     695    unset($form[$categoria][$campo]['comentario_' . $campo]);
     696  }
    622697  form_set_cache($form_build_id, $form, $form_state);
    623698  $form += array(
     
    627702  // Rebuild the form.
    628703  $form = form_builder($_POST['form_id'], $form, $form_state);
    629   $output = drupal_render($form['campos_modificar']);
     704  $output = drupal_render($form[$categoria][$campo]['comentario_' . $campo]);
    630705  print drupal_to_js(array('data' => $output, 'status' => true));
    631706  exit();
     
    770845      $fields1 = $node_type1['fields'];
    771846      $node_workflow_display = node_build_content($node);
     847      $result = db_query("SELECT e.*, u.name, u.uid, w.old_sid, w.comment FROM {entes_detail_workflow} AS e INNER JOIN {workflow_node_history} AS w ON w.hid = e.hid INNER JOIN {users} AS u ON w.uid =u.uid WHERE id = %d AND tipo = 'proyectos_operativos' AND active = 1 ORDER BY field_name, time DESC", $node->nid);
     848      $comentarios =array();
     849      while($comentario = db_fetch_object($result)) {
     850        if (!isset($comentarios[$comentario->field_name])) {
     851          $comentarios[$comentario->field_name] = array();
     852        }
     853        if (trim($comentario->comentario) != '') {
     854          $comentarios[$comentario->field_name][] = '<div class="comentario-ver"><div class="comentario-contenido">' . check_plain($comentario->comentario) . '</div><div class="comentario-usuario-fecha">' . theme('username', $comentario) . ' | ' . format_date($comentario->time) . '</div></div>';
     855        }
     856      }
    772857      $contenido = array();
    773858      $array_titles = array();
    774859      $todas_opciones = array();
     860      $form['proyectos_operativos_remove'] = array(
     861        '#type' => 'checkbox',
     862        '#title' => t('Borrar los comentarios de campos Previos.'),
     863        '#default_value' => FALSE,
     864        '#access' => user_access('remove observaciones'),
     865      );
    775866      foreach($campos_leidos['campos'] as $idcat => $array){
    776867        foreach($array as $idcamp => $arrat1){
     868          $form[$idcamp] = array(
     869            '#type' => 'fieldset',
     870            '#title' => $campos_leidos['categorias'][$idcat][$idcamp]['title'],
     871          );
    777872          $array_soptions = array();
    778873          foreach($arrat1 as $ind2 => $array2){
    779             $contenido[$ind2] = drupal_render($node_workflow_display->content[$ind2]);
    780874            if ($ind2 == 'title'){
     875              $contenido[$ind2] = '<div class="field field-type-title field-field-proyecto-title"><div class="field-label">' . t('Nombre del Proyecto') . ':&nbsp;</div><div class="field-items"><div class="field-item odd">' . check_plain($node->title) . '</div></div></div>';
    781876              $array_soptions[$ind2] = t('Nombre del Proyecto');
    782877            }
    783878            else {
     879              $contenido[$ind2] = drupal_render($node_workflow_display->content[$ind2]);
    784880              $array_soptions[$ind2] = $fields[$ind2]['widget']['label'];
    785881            }
    786882            $array_titles[$ind2] = $array_soptions[$ind2];
    787883            $todas_opciones[$ind2] = $ind2;
    788           }
     884            if ($fields[$ind2]['display_settings']['full']['format'] != 'hidden' && trim($contenido[$ind2]) != '') {
     885              $ncomentario = isset($comentarios[$ind2]) && count($comentarios[$ind2])? '<div class="todos-comentarios"><b>' . t('Comentarios Previos') . ':</b>' . implode ('', $comentarios[$ind2]) . '</div>' : '';
     886              $form[$idcamp][$ind2 . '_display']['#value'] = $contenido[$ind2] . $ncomentario;
     887              $form[$idcamp][$ind2][$ind2] = array(
     888                '#type' => 'checkbox',
     889                '#title' => t('Agregar comentario al campos (@campo9).', array('@campo9' => $array_soptions[$ind2])),
     890                '#default_value' => FALSE,
     891                '#suffix' => '<div id ="' . $ind2 . '_comentario"></div>',
     892                '#ahah' => array(
     893                'path' => 'entes_detail_workflow_js_util/proyectos/' . $idcamp . '/' . $ind2,
     894                  'wrapper' => $ind2 . '_comentario',
     895                  'method' => 'replace',
     896                  'progress' => array('type' => 'bar', 'message' => t('Please wait...')),
     897                ),
     898              ); 
     899            }
     900          }
     901
    789902          if ($campos_leidos['categorias'][$idcat][$idcamp]['type'] == 'node'){
    790903            $options_campos[$campos_leidos['categorias'][$idcat][$idcamp]['title']] = $array_soptions;
    791           }
    792         }
    793 
     904          }
     905        }
    794906      }
    795907      //add weight to submit button
     
    804916          if ($accion['nid']) {
    805917            $accionep = node_load($accion['nid']);
     918            $form['AE_' . $accionep->nid] = array(
     919              '#type' => 'fieldset',
     920              '#title' => 'AE: ' . check_plain($accionep->title),
     921            );
    806922            $opcionAE = array();
    807923            $contenidoae[$accionep->nid] = array();
     
    812928              $array_titles[$accionep->nid . '_' . $idcat] = 'AE_' .$i . ': ' . $opcionAE[$accionep->nid . '_' . $idcat];
    813929              $todas_opciones[$accionep->nid . '_' . $idcat] = $accionep->nid . '_' . $idcat;
     930              if ($fields1[$idcat]['display_settings']['full']['format'] != 'hidden' && trim($contenidoae[$accionep->nid][$idcat]) != '') {
     931                $idcat1 = $accion['nid'] . '_' . $idcat;
     932                $ncomentario = isset($comentarios[$idcat1]) && count($comentarios[$idcat1])? '<div class="todos-comentarios"><b>' . t('Comentarios Previos') . ':</b>' . implode ('', $comentarios[$idcat1]) . '</div>' : '';
     933                $form['AE_' . $accionep->nid][$accionep->nid . '_' . $idcat . '_display']['#value'] = $contenidoae[$accionep->nid][$idcat] . $ncomentario;
     934                $form['AE_' . $accionep->nid][$accionep->nid . '_' . $idcat][$accionep->nid . '_' . $idcat] = array(
     935                  '#type' => 'checkbox',
     936                  '#title' => t('Agregar comentario al campo (@campo9).', array('@campo9' => $array_titles[$accionep->nid . '_' . $idcat])),
     937                  '#default_value' => FALSE,
     938                  '#suffix' => '<div id ="' . $accionep->nid . '_' . $idcat . '_comentario"></div>',
     939                  '#ahah' => array(
     940                    'path' => 'entes_detail_workflow_js_util/proyectos/' . 'AE_' . $accionep->nid . '/' . $accionep->nid . '_' . $idcat,
     941                    'wrapper' => $accionep->nid . '_' . $idcat . '_comentario',
     942                    'method' => 'replace',
     943                    'progress' => array('type' => 'bar', 'message' => t('Please wait...')),
     944                  ),
     945                );
     946              }
    814947            }
    815948            $options_campos['AE_' .$i] = $opcionAE;
     
    821954      $form['#node_workflow_titles'] = $array_titles;
    822955      $form['#node_workflow_todas_opciones'] = $todas_opciones;
    823       $form['proyectos_operativos_remove'] = array(
    824         '#type' => 'checkbox',
    825         '#title' => t('Borrar los comentarios de campos Previos.'),
    826         '#default_value' => FALSE,
    827         '#access' => user_access('remove observaciones'),
    828       );
    829       $form['workflow_details'] = array(
    830         '#title' => t('Comentarios por Campos'),
    831         '#type' => 'select',
    832         '#default_value' => array(),
    833         '#options' => $options_campos,
    834         '#multiple' => TRUE,
    835         '#weight' => 10,
    836         '#ahah' => array(
    837           'path' => 'entes_detail_workflow_js_util',
    838           'wrapper' => 'fields_problems',
    839           'method' => 'replace',
    840           'progress' => array('type' => 'bar', 'message' => t('Please wait...')),
    841         ),
    842       );
    843       $form['campos_modificar'] = array(
    844         '#type' => 'fieldset',
    845         '#prefix' => '<div id="fields_problems">',
    846         '#suffix' => '</div>',
    847         '#weight' => 11,
    848         '#title' => t('Observaciones por campos'),
    849       );
    850       $form['campos_modificar']['no_comentarios'] = array(
    851         '#value' => t('No exiten comentarios de los campos del proyecto'),
    852       );
    853956      //remove previous submit
    854957      $new_submit = array();
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.