summaryrefslogtreecommitdiff
path: root/abstract_bulk_approval.inc
diff options
context:
space:
mode:
authorSashi202018-10-12 12:44:09 +0530
committerSashi202018-10-12 12:44:09 +0530
commit7dcdf4160a48f53f3312d3461add0d8a6a61536f (patch)
treee2ecc4b9c3c5bb8804dcf866e69d0fc9144c579e /abstract_bulk_approval.inc
parent4d7d7ebab467cd373dd9d71e36dea67c24c7ba56 (diff)
downloadom_pssp-7dcdf4160a48f53f3312d3461add0d8a6a61536f.tar.gz
om_pssp-7dcdf4160a48f53f3312d3461add0d8a6a61536f.tar.bz2
om_pssp-7dcdf4160a48f53f3312d3461add0d8a6a61536f.zip
created proposal submission interface
Diffstat (limited to 'abstract_bulk_approval.inc')
-rw-r--r--abstract_bulk_approval.inc512
1 files changed, 512 insertions, 0 deletions
diff --git a/abstract_bulk_approval.inc b/abstract_bulk_approval.inc
new file mode 100644
index 0000000..9796931
--- /dev/null
+++ b/abstract_bulk_approval.inc
@@ -0,0 +1,512 @@
+<?php
+
+function om_pssp_abstract_bulk_approval_form($form, &$form_state)
+{
+ $options_first = _bulk_list_of_om_pssp_project();
+ $selected = isset($form_state['values']['om_pssp_project']) ? $form_state['values']['om_pssp_project'] : key($options_first);
+ $form = array();
+ $form['om_pssp_project'] = array(
+ '#type' => 'select',
+ '#title' => t('Title of the power system simulation project'),
+ '#options' => _bulk_list_of_om_pssp_project(),
+ '#default_value' => $selected,
+ '#ajax' => array(
+
+ 'callback' => 'ajax_bulk_om_pssp_abstract_details_callback'
+ ),
+ '#suffix' => '<div id="ajax_selected_om_pssp"></div><div id="ajax_selected_om_pssp_pdf"></div>'
+ );
+ $form['om_pssp_actions'] = array(
+ '#type' => 'select',
+ '#title' => t('Please select action for power system simulation project'),
+ '#options' => _bulk_list_om_pssp_actions(),
+ '#default_value' => 0,
+ '#prefix' => '<div id="ajax_selected_om_pssp_action" style="color:red;">',
+ '#suffix' => '</div>',
+ '#states' => array(
+ 'invisible' => array(
+ ':input[name="om_pssp_project"]' => array(
+ 'value' => 0
+ )
+ )
+ )
+ );
+ $form['message'] = array(
+ '#type' => 'textarea',
+ '#title' => t('If Dis-Approved please specify reason for Dis-Approval'),
+ '#prefix' => '<div id= "message_submit">',
+ '#states' => array(
+ 'visible' => array(
+ array(
+ ':input[name="om_pssp_actions"]' => array(
+ 'value' => 3
+ )
+ ),
+ 'or',
+ array(
+ ':input[name="om_pssp_actions"]' => array(
+ 'value' => 4
+ )
+ )
+ )
+ )
+ );
+ $form['submit'] = array(
+ '#type' => 'submit',
+ '#value' => t('Submit'),
+ '#states' => array(
+ 'invisible' => array(
+ ':input[name="lab"]' => array(
+ 'value' => 0
+ )
+ )
+ )
+ );
+ return $form;
+}
+function ajax_bulk_om_pssp_abstract_details_callback($form, $form_state)
+{
+ $commands = array();
+ $om_pssp_project_default_value = $form_state['values']['om_pssp_project'];
+ if ($om_pssp_project_default_value != 0)
+ {
+ $commands[] = ajax_command_html('#ajax_selected_om_pssp', _om_pssp_details($om_pssp_project_default_value));
+ $form['om_pssp_actions']['#options'] = _bulk_list_om_pssp_actions();
+ $commands[] = ajax_command_replace('#ajax_selected_om_pssp_action', drupal_render($form['om_pssp_actions']));
+ } //$om_pssp_project_default_value != 0
+ else
+ {
+ $commands[] = ajax_command_html('#ajax_selected_om_pssp', '');
+ $commands[] = ajax_command_data('#ajax_selected_om_pssp', 'form_state_value_select', $form_state['values']['om_pssp_project']);
+ }
+ return array(
+ '#type' => 'ajax',
+ '#commands' => $commands
+ );
+}
+/************************************************************/
+function om_pssp_abstract_bulk_approval_form_submit($form, &$form_state)
+{
+ global $user;
+ $msg = '';
+ $root_path = om_pssp_path();
+ if ($form_state['clicked_button']['#value'] == 'Submit')
+ {
+ if ($form_state['values']['om_pssp_project'])
+ // om_pssp_abstract_del_lab_pdf($form_state['values']['om_pssp_project']);
+ if (user_access('om pssp bulk manage abstract'))
+ {
+ $query = db_select('om_pssp_proposal');
+ $query->fields('om_pssp_proposal');
+ $query->condition('id', $form_state['values']['om_pssp_project']);
+ $user_query = $query->execute();
+ $user_info = $user_query->fetchObject();
+ $user_data = user_load($user_info->uid);
+ if ($form_state['values']['om_pssp_actions'] == 1)
+ {
+ // approving entire project //
+ $query = db_select('om_pssp_submitted_abstracts');
+ $query->fields('om_pssp_submitted_abstracts');
+ $query->condition('proposal_id', $form_state['values']['om_pssp_project']);
+ $abstracts_q = $query->execute();
+ $experiment_list = '';
+ while ($abstract_data = $abstracts_q->fetchObject())
+ {
+ db_query("UPDATE {om_pssp_submitted_abstracts} SET abstract_approval_status = 1, is_submitted = 1, approver_uid = :approver_uid WHERE id = :id", array(
+ ':approver_uid' => $user->uid,
+ ':id' => $abstract_data->id
+ ));
+ db_query("UPDATE {om_pssp_submitted_abstracts_file} SET file_approval_status = 1, approvar_uid = :approver_uid WHERE submitted_abstract_id = :submitted_abstract_id", array(
+ ':approver_uid' => $user->uid,
+ ':submitted_abstract_id' => $abstract_data->id
+ ));
+ } //$abstract_data = $abstracts_q->fetchObject()
+ drupal_set_message(t('Approved power system simulation project.'), 'status');
+ // email
+ $email_subject = t('[!site_name][power system simulation Project] Your uploaded power system simulation project have been approved', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $email_body = array(
+ 0 => t('
+
+Dear !user_name,
+
+Your uploaded abstract for the power system simulation project has been approved:
+
+Title of power system simulation project : ' . $user_info->project_title . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ /** sending email when everything done **/
+ $email_to = $user_data->mail;
+ $from = variable_get('om_pssp_from_email', '');
+ $bcc = variable_get('om_pssp_emails', '');
+ $cc = variable_get('om_pssp_cc_emails', '');
+ $params['standard']['subject'] = $email_subject;
+ $params['standard']['body'] = $email_body;
+ $params['standard']['headers'] = array(
+ 'From' => $from,
+ 'MIME-Version' => '1.0',
+ 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
+ 'Content-Transfer-Encoding' => '8Bit',
+ 'X-Mailer' => 'Drupal',
+ 'Cc' => $cc,
+ 'Bcc' => $bcc
+ );
+ if (!drupal_mail('om_pssp', 'standard', $email_to, language_default(), $params, $from, TRUE))
+ {
+ $msg = drupal_set_message('Error sending email message.', 'error');
+ } //!drupal_mail('om_pssp', 'standard', $email_to, language_default(), $params, $from, TRUE)
+ } //$form_state['values']['om_pssp_actions'] == 1
+ elseif ($form_state['values']['om_pssp_actions'] == 2)
+ {
+ //pending review entire project
+ $query = db_select('om_pssp_submitted_abstracts');
+ $query->fields('om_pssp_submitted_abstracts');
+ $query->condition('proposal_id', $form_state['values']['om_pssp_project']);
+ $abstracts_q = $query->execute();
+ $experiment_list = '';
+ while ($abstract_data = $abstracts_q->fetchObject())
+ {
+ db_query("UPDATE {om_pssp_submitted_abstracts} SET abstract_approval_status = 0, is_submitted = 0, approver_uid = :approver_uid WHERE id = :id", array(
+ ':approver_uid' => $user->uid,
+ ':id' => $abstract_data->id
+ ));
+ db_query("UPDATE {om_pssp_proposal} SET is_submitted = 0, approver_uid = :approver_uid WHERE id = :id", array(
+ ':approver_uid' => $user->uid,
+ ':id' => $abstract_data->proposal_id
+ ));
+ db_query("UPDATE {om_pssp_submitted_abstracts_file} SET file_approval_status = 0, approvar_uid = :approver_uid WHERE submitted_abstract_id = :submitted_abstract_id", array(
+ ':approver_uid' => $user->uid,
+ ':submitted_abstract_id' => $abstract_data->id
+ ));
+ } //$abstract_data = $abstracts_q->fetchObject()
+ drupal_set_message(t('Resubmit the project files'), 'status');
+ // email
+ $email_subject = t('[!site_name][power system simulation Project] Your uploaded power system simulation project have been marked as pending', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $email_body = array(
+ 0 => t('
+
+Dear !user_name,
+
+Kindly resubmit the project files for the project : ' . $user_info->project_title . '.
+
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ /** sending email when everything done **/
+ $email_to = $user_data->mail;
+ $from = variable_get('om_pssp_from_email', '');
+ $bcc = variable_get('om_pssp_emails', '');
+ $cc = variable_get('om_pssp_cc_emails', '');
+ $params['standard']['subject'] = $email_subject;
+ $params['standard']['body'] = $email_body;
+ $params['standard']['headers'] = array(
+ 'From' => $from,
+ 'MIME-Version' => '1.0',
+ 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
+ 'Content-Transfer-Encoding' => '8Bit',
+ 'X-Mailer' => 'Drupal',
+ 'Cc' => $cc,
+ 'Bcc' => $bcc
+ );
+ if (!drupal_mail('om_pssp', 'standard', $email_to, language_default(), $params, $from, TRUE))
+ {
+ drupal_set_message('Error sending email message.', 'error');
+ } //!drupal_mail('om_pssp', 'standard', $email_to, language_default(), $params, $from, TRUE)
+ } //$form_state['values']['om_pssp_actions'] == 2
+ elseif ($form_state['values']['om_pssp_actions'] == 3) //disapprove and delete entire power system simulation project
+ {
+ if (strlen(trim($form_state['values']['message'])) <= 30)
+ {
+ form_set_error('message', t(''));
+ $msg = drupal_set_message("Please mention the reason for disapproval. Minimum 30 character required", 'error');
+ return $msg;
+ } //strlen(trim($form_state['values']['message'])) <= 30
+ if (!user_access('om pssp bulk delete code'))
+ {
+ $msg = drupal_set_message(t('You do not have permission to Bulk Dis-Approved and Deleted Entire Lab.'), 'error');
+ return $msg;
+ } //!user_access('om_pssp bulk delete code')
+ if (om_pssp_abstract_delete_project($form_state['values']['om_pssp_project'])) //////
+ {
+ drupal_set_message(t('Dis-Approved and Deleted Entire power system simulation project.'), 'status');
+ $email_subject = t('[!site_name][power system simulation Project] Your uploaded power system simulation project have been marked as dis-approved', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $email_body = array(
+ 0 => t('
+Dear !user_name,
+
+Your uploaded power system simulation project files for the power system simulation project Title : ' . $user_info->project_title . ' have been marked as dis-approved.
+
+Reason for dis-approval: ' . $form_state['values']['message'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ $email_to = $user_data->mail;
+ $from = variable_get('om_pssp_from_email', '');
+ $bcc = variable_get('om_pssp_emails', '');
+ $cc = variable_get('om_pssp_cc_emails', '');
+ $params['standard']['subject'] = $email_subject;
+ $params['standard']['body'] = $email_body;
+ $params['standard']['headers'] = array(
+ 'From' => $from,
+ 'MIME-Version' => '1.0',
+ 'Content-Type' => 'text/plain; charset=UTF-8; format=flowed; delsp=yes',
+ 'Content-Transfer-Encoding' => '8Bit',
+ 'X-Mailer' => 'Drupal',
+ 'Cc' => $cc,
+ 'Bcc' => $bcc
+ );
+ if (!drupal_mail('om_pssp', 'standard', $email_to, language_default(), $params, $from, TRUE))
+ {
+ drupal_set_message('Error sending email message.', 'error');
+ }
+ } //om_pssp_abstract_delete_project($form_state['values']['om_pssp_project'])
+ else
+ {
+ drupal_set_message(t('Error Dis-Approving and Deleting Entire power system simulation project.'), 'error');
+ }
+ // email
+
+ } //$form_state['values']['om_pssp_actions'] == 3
+ /*elseif ($form_state['values']['om_pssp_actions'] == 4)
+ {
+ if (strlen(trim($form_state['values']['message'])) <= 30)
+ {
+ form_set_error('message', t(''));
+ $msg = drupal_set_message("Please mention the reason for disapproval/deletion. Minimum 30 character required", 'error');
+ return $msg;
+ } //strlen(trim($form_state['values']['message'])) <= 30
+ $query = db_select('om_pssp_abstract_experiment');
+ $query->fields('om_pssp_abstract_experiment');
+ $query->condition('proposal_id', $form_state['values']['lab']);
+ $query->orderBy('number', 'ASC');
+ $experiment_q = $query->execute();
+ $experiment_list = '';
+ while ($experiment_data = $experiment_q->fetchObject())
+ {
+ $experiment_list .= '<p>' . $experiment_data->number . ') ' . $experiment_data->title . '<br> Description : ' . $experiment_data->description . '<br>';
+ $experiment_list .= ' ';
+ $experiment_list .= '</p>';
+ } //$experiment_data = $experiment_q->fetchObject()
+ if (!user_access('lab migration bulk delete code'))
+ {
+ $msg = drupal_set_message(t('You do not have permission to Bulk Delete Entire Lab Including Proposal.'), 'error');
+ return $msg;
+ } //!user_access('lab migration bulk delete code')
+ // check if dependency files are present
+ $dep_q = db_query("SELECT * FROM {om_pssp_abstract_dependency_files} WHERE proposal_id = :proposal_id", array(
+ ":proposal_id" => $form_state['values']['lab']
+ ));
+ if ($dep_data = $dep_q->fetchObject())
+ {
+ $msg = drupal_set_message(t("Cannot delete lab since it has dependency files that can be used by others. First delete the dependency files before deleting the lab."), 'error');
+ return $msg ;
+ } //$dep_data = $dep_q->fetchObject()
+ if (om_pssp_abstract_delete_lab($form_state['values']['lab']))
+ {
+ drupal_set_message(t('Dis-Approved and Deleted Entire Lab solutions.'), 'status');
+ $query = db_select('om_pssp_abstract_experiment');
+ $query->fields('om_pssp_abstract_experiment');
+ $query->condition('proposal_id', $form_state['values']['lab']);
+ $experiment_q = $query->execute()->fetchObject();
+ $dir_path = $root_path . $experiment_q->directory_name;
+ if (is_dir($dir_path))
+ {
+ $res = rmdir($dir_path);
+ if (!$res)
+ {
+ $msg = drupal_set_message(t("Cannot delete Lab directory : " . $dir_path . ". Please contact administrator."), 'error');
+ return $msg;
+ } //!$res
+ } //is_dir($dir_path)
+ else
+ {
+ drupal_set_message(t("Lab directory not present : " . $dir_path . ". Skipping deleting lab directory."), 'status');
+ }
+ $proposal_q = db_query("SELECT * FROM {om_pssp_abstract_proposal} WHERE id = :id", array(
+ ":id" => $form_state['values']['lab']
+ ));
+ $proposal_data = $proposal_q->fetchObject();
+ $proposal_id = $proposal_data->id;
+ db_query("DELETE FROM {om_pssp_abstract_experiment} WHERE proposal_id = :proposal_id", array(
+ ":proposal_id" => $proposal_id
+ ));
+ db_query("DELETE FROM {om_pssp_abstract_proposal} WHERE id = :id", array(
+ ":id" => $proposal_id
+ ));
+ drupal_set_message(t('Deleted Lab Proposal.'), 'status');
+ //email
+ $email_subject = t('[!site_name] Your uploaded Lab Migration solutions including the Lab proposal have been deleted', array(
+ '!site_name' => variable_get('site_name', '')
+ ));
+ $email_body = array(
+ 0 => t('
+
+Dear !user_name,
+
+We regret to inform you that all the uploaded Experiments of your Lab with following details have been deleted permanently.
+
+Title of Lab :' . $user_info->lab_title . '
+
+List of experiments : ' . $experiment_list . '
+
+Reason for dis-approval: ' . $form_state['values']['message'] . '
+
+Best Wishes,
+
+!site_name Team,
+FOSSEE,IIT Bombay', array(
+ '!site_name' => variable_get('site_name', ''),
+ '!user_name' => $user_data->name
+ ))
+ );
+ // email
+ // $email_subject = t('Your uploaded Lab Migration solutions including the Lab proposal have been deleted');
+ $email_body = array(
+ 0 => t('Your all the uploaded solutions including the Lab proposal have been deleted permanently.')
+ );
+ } //om_pssp_abstract_delete_lab($form_state['values']['lab'])
+ else
+ {
+ $msg = drupal_set_message(t('Error Dis-Approving and Deleting Entire Lab.'), 'error');
+ }
+ } //$form_state['values']['om_pssp_actions'] == 4
+ else
+ {
+ $msg = drupal_set_message(t('You do not have permission to bulk manage code.'), 'error');
+ }*/
+ } //user_access('om_pssp project bulk manage code')
+ return $msg;
+ } //$form_state['clicked_button']['#value'] == 'Submit'
+}
+/**********************************************************/
+function _bulk_list_of_om_pssp_project()
+{
+ $project_titles = array(
+ '0' => 'Please select...'
+ );
+ $query = db_select('om_pssp_proposal');
+ $query->fields('om_pssp_proposal');
+ $query->condition('is_submitted', 1);
+ $query->condition('approval_status', 1);
+ $query->orderBy('project_title', 'ASC');
+ $project_titles_q = $query->execute();
+ while ($project_titles_data = $project_titles_q->fetchObject())
+ {
+ $project_titles[$project_titles_data->id] = $project_titles_data->project_title . ' (Proposed by ' . $project_titles_data->contributor_name . ')';
+ } //$project_titles_data = $project_titles_q->fetchObject()
+ return $project_titles;
+}
+function _bulk_list_om_pssp_actions()
+{
+ $om_pssp_actions = array(
+ 0 => 'Please select...'
+ );
+ $om_pssp_actions[1] = 'Approve Entire power system simulation Project';
+ $om_pssp_actions[2] = 'Resubmit Project files';
+ $om_pssp_actions[3] = 'Dis-Approve Entire power system simulation Project (This will delete power system simulation Project)';
+ //$om_pssp_actions[4] = 'Delete Entire power system simulation Project Including Proposal';
+ return $om_pssp_actions;
+}
+function _om_pssp_details($om_pssp_proposal_id)
+{
+ $return_html = "";
+ $query_pro = db_select('om_pssp_proposal');
+ $query_pro->fields('om_pssp_proposal');
+ $query_pro->condition('id', $om_pssp_proposal_id);
+ $abstracts_pro = $query_pro->execute()->fetchObject();
+ //var_dump($abstracts_pro);die;
+ $query_pdf = db_select('om_pssp_submitted_abstracts_file');
+ $query_pdf->fields('om_pssp_submitted_abstracts_file');
+ $query_pdf->condition('proposal_id', $om_pssp_proposal_id);
+ $query_pdf->condition('filetype', 'A');
+ $abstracts_pdf = $query_pdf->execute()->fetchObject();
+ if ($abstracts_pdf == TRUE)
+ {
+ if ($abstracts_pdf->filename != "NULL" || $abstracts_pdf->filename != "")
+ {
+ $abstract_filename = $abstracts_pdf->filename;
+ } //$abstracts_pdf->filename != "NULL" || $abstracts_pdf->filename != ""
+ else
+ {
+ $abstract_filename = "File not uploaded";
+ }
+ } //$abstracts_pdf == TRUE
+ else
+ {
+ $abstract_filename = "File not uploaded";
+ }
+ $query_process = db_select('om_pssp_submitted_abstracts_file');
+ $query_process->fields('om_pssp_submitted_abstracts_file');
+ $query_process->condition('proposal_id', $om_pssp_proposal_id);
+ $query_process->condition('filetype', 'S');
+ $abstracts_query_process = $query_process->execute()->fetchObject();
+ $query = db_select('om_pssp_submitted_abstracts');
+ $query->fields('om_pssp_submitted_abstracts');
+ $query->condition('proposal_id', $om_pssp_proposal_id);
+ $abstracts_q = $query->execute()->fetchObject();
+ if($abstracts_q->other_libraries_used == 1)
+ {
+ $other_libraries_used = "Yes";
+ }
+ else
+ {
+ $other_libraries_used = "No";
+ }
+ if ($abstracts_q)
+ {
+ if ($abstracts_q->is_submitted == 0)
+ {
+ //drupal_set_message(t('Abstract is not submmited yet.'), 'error', $repeat = FALSE);
+ //return;
+ } //$abstracts_q->is_submitted == 0
+ } //$abstracts_q
+ //var_dump($abstracts_query_process);die;
+ if ($abstracts_query_process == TRUE)
+ {
+ if ($abstracts_query_process->filename != "NULL" || $abstracts_query_process->filename != "")
+ {
+ $abstracts_query_process_filename = $abstracts_query_process->filename;
+ } //$abstracts_query_process->filename != "NULL" || $abstracts_query_process->filename != ""
+ else
+ {
+ $abstracts_query_process_filename = "File not uploaded";
+ }
+ } //$abstracts_query_process == TRUE
+ else
+ {
+ $url = l('Upload abstract', 'powersystems/pssp/abstract-code/upload');
+ $abstracts_query_process_filename = "File not uploaded";
+ }
+ $download_om_pssp = l('Download power system simulation project','powersystems/pssp/full-download/project/'.$om_pssp_proposal_id);
+ $return_html .= '<strong>Proposer Name:</strong><br />' . $abstracts_pro->name_title . ' ' . $abstracts_pro->contributor_name . '<br /><br />';
+ $return_html .= '<strong>Title of the power system simulation Project:</strong><br />' . $abstracts_pro->project_title . '<br /><br />';
+ $return_html .= '<strong>Other libraries used:</strong><br />' . $other_libraries_used . '<br /><br />';
+ $return_html .= '<strong>Uploaded an abstract (brief outline) of the project:</strong><br />' . $abstract_filename . '<br /><br />';
+ $return_html .= '<strong>Upload the power system simulation for the developed process:</strong><br />' . $abstracts_query_process_filename . '<br /><br />';
+ $return_html .= $download_om_pssp;
+ return $return_html;
+} \ No newline at end of file