Skip to content
Snippets Groups Projects
Commit 84e2bbe3 authored by Andrew Rudenets's avatar Andrew Rudenets
Browse files

Выгрузка кодов активации: теперь пустые файлы выгрузить не получится

parent e299a710
Branches
Tags
No related merge requests found
......@@ -451,7 +451,7 @@ BEGIN
user_roles.RoleName AS 'AccRole',
user_roles.Mark AS 'AccRoleMark',
accounts.isEnabled,
( accounts.ActivationCode IS NULL) AS 'isActivated',
accounts.ActivationCode AS 'AccCode',
accounts.UserAgent
FROM `accounts`
INNER JOIN `user_roles` ON accounts.UserRoleID = user_roles.ID
......
......@@ -8,6 +8,45 @@ class Controller_Handler_AdmAccounts extends Controller_Handler {
parent::before();
}
public function action_getActivationForTeachers()
{
$facultyID = $this->post->offsetGet('facultyID');
$departmentsHandled = array(); $i = 0;
$departments = $this->model->getDepartmentsByFaculty($facultyID);
foreach ($departments as $department)
{
$i++; $j = 0;
$accounts = $this->model->getTeachersByDepartment($department['DepID']);
$departmentsHandled[$i]['Name'] = $department['DepName'];
foreach ($accounts as $row)
{
$accInfo = $this->model->getAccountInfoByID($row['TeacherAccID']);
if($code = $accInfo->get('AccCode'))
{
$j++;
$departmentsHandled[$i]['People'][$j]['LastName'] = $row['TeacherLast'];
$departmentsHandled[$i]['People'][$j]['FirstName'] = $row['TeacherFirst'];
$departmentsHandled[$i]['People'][$j]['SecondName'] = $row['TeacherSecond'];
$departmentsHandled[$i]['People'][$j]['ActivationCode'] = $code;
}
}
if($j == 0)
{
$departmentsHandled[$i] = array();
$i--;
}
}
if($i > 0)
{
$this->_sendPDF('activationTeachers'.$facultyID,
'pdf/activationTeacher',
array('Departments' => $departmentsHandled, 'System' => array('Title' => ASSEMBLY_SYSTEM_NAME, 'Version' => ASSEMBLY_VERSION)));
}
else {
throw HTTP_Exception::factory(404, 'No data found');
}
}
public function action_getActivationForStudents()
{
$facultyID = $this->post->offsetGet('facultyID');
......@@ -33,25 +72,35 @@ class Controller_Handler_AdmAccounts extends Controller_Handler {
$groupsHandled[$i]['People'][$j]['ActivationCode'] = $code;
}
}
$groupsHandled[$i]['PeopleCount'] = $j;
if($j == 0)
{
$groupsHandled[$i] = array();
$i--;
}
}
if($i > 0)
{
$this->_sendPDF('activationStudents'.$facultyID.'-'.$gradeNum,
'pdf/activationStudent',
array('Groups' => $groupsHandled, 'System' => array('Title' => ASSEMBLY_SYSTEM_NAME, 'Version' => ASSEMBLY_VERSION)));
}
$mpdf = View_MPDF::factory('pdf/activationTemplate', array('Groups' => $groupsHandled,
'System' => array('Title' => ASSEMBLY_SYSTEM_NAME, 'Version' => ASSEMBLY_VERSION)));
else {
throw HTTP_Exception::factory(404, 'No data found');
}
}
protected function _sendPDF($filename, $template, $data)
{
$mpdf = View_MPDF::factory($template, $data);
$cssPath = 'media/css/acTpl.css';
$css = file_get_contents($cssPath);
$mpdf->get_mpdf()->WriteHTML($css, 1);
//$mpdf->write_to_disk('media/pdf/activationStudent'.$facultyID.'-'.$gradeNum.'.pdf');
$this->response->headers('Set-Cookie', 'fileDownload=true; path=/');
$this->response->headers('Content-Type', 'application/octet-stream');
$this->response->headers('Accept-Ranges', 'bytes');
$this->response->headers('Content-Length', strlen($mpdf));
$this->response->headers('Content-Disposition', 'attachment; filename=activationStudent'.$facultyID.'-'.$gradeNum.'.pdf');
$this->response->headers('Content-Disposition', 'attachment; filename='.$filename.'.pdf');
$this->response->headers('Content-Transfer-Encoding', 'Binary');
$this->response->body($mpdf);
}
public function action_getActivationForTeachers()
{
}
}
\ No newline at end of file
......@@ -18,7 +18,19 @@ class Model_Admin_Accounts extends Model
{
$sql = "CALL `GetStudentsByStudyGroups`('$groupID'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
}
public function getDepartmentsByFaculty($facultyID)
{
$sql = "CALL `GetDepartmentsByFaculty`('$facultyID'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getTeachersByDepartment($departmentID)
{
$sql = "CALL `GetTeachersByDepartment`('$departmentID'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getAccountInfoByID($ID)
{
......
......@@ -13,7 +13,7 @@
<div class="stepBox" id="FirstStep">
<div class="step_title" >
<span class='step_title_count'>Шаг 1 из 4:</span> <span class='step_title_description'>Выберите круг пользователей</span>
<span class='step_title_count'>Шаг 1:</span> <span class='step_title_description'>Выберите круг пользователей</span>
</div>
<div class="step_body">
<div class='radGroup'>
......@@ -30,7 +30,7 @@
</div>
<div class="stepBox" id="SecondStep">
<div class="step_title">
<span class='step_title_count'>Шаг 2 из 4:</span> <span class='step_title_description'>Выберите подразделение университета</span>
<span class='step_title_count'>Шаг 2:</span> <span class='step_title_description'>Выберите подразделение университета</span>
</div>
<div class="step_body">
<select id="facultySelect">
......@@ -43,7 +43,7 @@
</div>
<div class="stepBox" id="ThirdStep_Student">
<div class="step_title">
<span class='step_title_count'>Шаг 3 из 4:</span> <span class='step_title_description'>Выберите номер курса</span>
<span class='step_title_count'>Шаг 3:</span> <span class='step_title_description'>Выберите номер курса</span>
</div>
<div class="step_body">
<select id="gradeSelect">
......@@ -62,31 +62,21 @@
</div>
</div>
<div class="stepBox" id="ThirdStep_Teacher">
<div class="step_title">
<span class='step_title_count'>Шаг 3 из 4:</span> <span class='step_title_description'>Выберите кафедру</span>
</div>
<div class="step_body">
<select id="departmentSelect">
<option value="0">--- Кафедра ---</option>
</select>
</div>
</div>
<div class="stepBox" id="FourthStep_Student">
<div class="step_title" >
<span class='step_title_count'>Шаг 4 из 4:</span> <span class='step_title_description'>Сохраните сгенерированный файл</span>
<span class='step_title_count'>Шаг 3:</span> <span class='step_title_description'>Сохраните сгенерированный файл</span>
</div>
<div class="step_body">
<button id="downloadStudentPDF">
<button id="downloadTeacherPDF">
Загрузить PDF-файл
</button>
</div>
</div>
<div class="stepBox" id="FourthStep_Teacher">
<div class="stepBox" id="FourthStep_Student">
<div class="step_title" >
<span class='step_title_count'>Шаг 4 из 4:</span> <span class='step_title_description'>Сохраните сгенерированный файл</span>
<span class='step_title_count'>Шаг 4:</span> <span class='step_title_description'>Сохраните сгенерированный файл</span>
</div>
<div class="step_body">
<button id="downloadTeacherPDF">
<button id="downloadStudentPDF">
Загрузить PDF-файл
</button>
</div>
......
{% for department in Departments %}
<h1>{{ System.Title }} - коды активации</h1>
<h3>{{ department.Name }}</h3>
{% for account in department.People %}
<table width='80%' cellspacing='0'>
<tr>
<td class="cutline" width='10%'>&nbsp;</td>
<td class='personal_info' width='70%'>
{{ loop.index }}. {{ account.LastName }} {{ account.FirstName }} {{ account.SecondName }}
</td>
<td class='activation_code' width='30%'>
{{ account.ActivationCode }}
</td>
</tr>
</table>
{% endfor %}
{% if not loop.last %}
<pagebreak />
{% endif %}
{% endfor %}
&nbsp;
\ No newline at end of file
......@@ -46,25 +46,21 @@ $(function()
$('#FourthStep_'+radioValue).css('display', 'block');
}
});
// Выбор курса
$('#departmentSelect').change(function(){
if (($('#departmentSelect option:selected').val()!= '0')) {
$('#FourthStep_'+radioValue).css('display', 'block');
}
});
$('body').on('click', '#downloadTeacherPDF', function(){
$('#downloadTeacherPDF').attr('disabled', 'disabled');
$.post('/~dev_rating/handler/admAccounts/getActivationForTeachers',
{
'facultyID': $('#facultySelect option:selected').val(),
'departmentID': $('#departmentSelect option:selected').val()
},
function(data){
$('#downloadTeacherPDF').removeAttr('disabled');
$.fileDownload('/~dev_rating/handler/admAccounts/getActivationForTeachers', {
httpMethod: "POST",
data:
{
'facultyID': $('#facultySelect option:selected').val()
},
successCallback: function (url) {
$('#downloadTeacherPDF').removeAttr('disabled');
},
failCallback: function (html, url) {
$('#downloadTeacherPDF').removeAttr('disabled');
}
});
});
......@@ -82,7 +78,6 @@ $(function()
},
failCallback: function (html, url) {
$('#downloadStudentPDF').removeAttr('disabled');
alert(html);
}
});
});
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment