Adding hack to handel start/end dates

ofaj
Julio 10 years ago
parent 953956f8fd
commit 4866714fa5
  1. 30
      main/inc/ajax/model.ajax.php
  2. 8
      main/inc/lib/sessionmanager.lib.php

@ -56,6 +56,8 @@ if (!in_array(
api_protect_teacher_script(true);
}
$toRemove = ['extra_access_start_date', 'extra_access_end_date'];
// Search features
//@todo move this in the display_class or somewhere else
@ -133,10 +135,30 @@ if ((isset($_REQUEST['filters2']) && $forceSearch) || ($search || $forceSearch)
break;
}
$accessStartDate = '';
$accessEndDate = '';
if (!empty($type)) {
// Extra field.
$extraField = new ExtraField($type);
foreach ($filters->rules as $key => $data) {
if ($data->field == 'extra_access_start_date') {
$accessStartDate = $data->data;
}
if ($data->field == 'extra_access_end_date') {
$accessEndDate = $data->data;
}
if (in_array($data->field, $toRemove)) {
unset($filters->rules[$key]);
}
}
$result = $extraField->getExtraFieldRules($filters, 'extra_');
$extra_fields = $result['extra_fields'];
$condition_array = $result['condition_array'];
@ -457,7 +479,9 @@ switch ($action) {
if ($list_type == 'simple') {
$count = SessionManager::get_sessions_admin(
array('where' => $whereCondition, 'extra' => $extra_fields),
true
true,
$accessStartDate,
$accessEndDate
);
} else {
$count = SessionManager::get_count_admin_complete(
@ -983,7 +1007,9 @@ switch ($action) {
'extra' => $extra_fields,
'limit' => "$start , $limit",
),
false
false,
$accessStartDate,
$accessEndDate
);
} else {
$result = SessionManager::get_sessions_admin_complete(

@ -388,7 +388,7 @@ class SessionManager
* @return mixed Integer for number of rows, or array of results
* @assert (array(),true) !== false
*/
public static function get_sessions_admin($options = array(), $get_count = false)
public static function get_sessions_admin($options = array(), $get_count = false, $accessStartDate = '', $accessEndDate = '')
{
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$sessionCategoryTable = Database::get_main_table(TABLE_MAIN_SESSION_CATEGORY);
@ -459,6 +459,12 @@ class SessionManager
$query = "$select FROM $tbl_session s $inject_joins $where $inject_where";
if (!empty($accessStartDate) && !empty($accessEndDate)) {
$accessStartDate = api_get_utc_datetime($accessStartDate);
$accessEndDate = api_get_utc_datetime($accessEndDate);
$query .= " AND '$accessStartDate' > access_start_date AND '$accessEndDate' < access_end_date ";
}
if (api_is_multiple_url_enabled()) {
$table_access_url_rel_session= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();

Loading…
Cancel
Save