Conjunto 221dd7a en sipp
- Fecha y hora:
- 01/12/2015 14:58:36 (hace 8 años)
- Branches:
- 0.3-stable
- Children:
- 5f5e921
- Parents:
- bddfe56
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
0.3-stable-modules/entes_detail_workflow/entes_detail_workflow.module
r8467160 r221dd7a 564 564 function entes_detail_workflow_menu() { 565 565 $items = array(); 566 567 $items['entes_detail_workflow_js_util'] = array( 566 $items['entes_detail_workflow_js_util/proyectos'] = array( 568 567 'title' => 'JS utilities', 569 'page callback' => 'entes_detail_workflow_js_util ',568 'page callback' => 'entes_detail_workflow_js_util_proyectos', 570 569 'access arguments' => array('ver planificador'), 571 570 'type' => MENU_CALLBACK, 572 571 ); 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 ); 573 582 return $items; 583 } 584 585 /* 586 * Implementation of hook_acciones_obtiene_links_alter() 587 */ 588 function 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 598 function _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') . ': </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; 574 673 } 575 674 … … 578 677 * Utilidad javascript para realizar ajax en el formulario 579 678 */ 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); 679 function entes_detail_workflow_js_util_proyectos($categoria = '', $campo = '') { 680 $options_select = isset($_POST[$campo])? $_POST[$campo]: 0; 583 681 $form_state = array('submitted' => FALSE); 584 682 $form_build_id = $_POST['form_build_id']; … … 587 685 // process it. We retreive the cached form, add the element, and resave. 588 686 $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 } 622 697 form_set_cache($form_build_id, $form, $form_state); 623 698 $form += array( … … 627 702 // Rebuild the form. 628 703 $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]); 630 705 print drupal_to_js(array('data' => $output, 'status' => true)); 631 706 exit(); … … 770 845 $fields1 = $node_type1['fields']; 771 846 $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 } 772 857 $contenido = array(); 773 858 $array_titles = array(); 774 859 $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 ); 775 866 foreach($campos_leidos['campos'] as $idcat => $array){ 776 867 foreach($array as $idcamp => $arrat1){ 868 $form[$idcamp] = array( 869 '#type' => 'fieldset', 870 '#title' => $campos_leidos['categorias'][$idcat][$idcamp]['title'], 871 ); 777 872 $array_soptions = array(); 778 873 foreach($arrat1 as $ind2 => $array2){ 779 $contenido[$ind2] = drupal_render($node_workflow_display->content[$ind2]);780 874 if ($ind2 == 'title'){ 875 $contenido[$ind2] = '<div class="field field-type-title field-field-proyecto-title"><div class="field-label">' . t('Nombre del Proyecto') . ': </div><div class="field-items"><div class="field-item odd">' . check_plain($node->title) . '</div></div></div>'; 781 876 $array_soptions[$ind2] = t('Nombre del Proyecto'); 782 877 } 783 878 else { 879 $contenido[$ind2] = drupal_render($node_workflow_display->content[$ind2]); 784 880 $array_soptions[$ind2] = $fields[$ind2]['widget']['label']; 785 881 } 786 882 $array_titles[$ind2] = $array_soptions[$ind2]; 787 883 $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 789 902 if ($campos_leidos['categorias'][$idcat][$idcamp]['type'] == 'node'){ 790 903 $options_campos[$campos_leidos['categorias'][$idcat][$idcamp]['title']] = $array_soptions; 791 } 792 } 793 904 } 905 } 794 906 } 795 907 //add weight to submit button … … 804 916 if ($accion['nid']) { 805 917 $accionep = node_load($accion['nid']); 918 $form['AE_' . $accionep->nid] = array( 919 '#type' => 'fieldset', 920 '#title' => 'AE: ' . check_plain($accionep->title), 921 ); 806 922 $opcionAE = array(); 807 923 $contenidoae[$accionep->nid] = array(); … … 812 928 $array_titles[$accionep->nid . '_' . $idcat] = 'AE_' .$i . ': ' . $opcionAE[$accionep->nid . '_' . $idcat]; 813 929 $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 } 814 947 } 815 948 $options_campos['AE_' .$i] = $opcionAE; … … 821 954 $form['#node_workflow_titles'] = $array_titles; 822 955 $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 );853 956 //remove previous submit 854 957 $new_submit = array();
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.