Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 697

Přidáno uživatelem Michal Kliment před asi 14 roky(ů)

Dodelany zobrazeni praci uzivatele. Funkce pro zobrazeni prace rozdelena do dvou - pro zobrazeni praci s otevrenym hlasovanim a pro zobrazeni praci s uzavrenym hlasovanim.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'ip addresses' => 'IP adresy',
'ip_address' => 'IP adresa',
'it can means that username/password/host are bad or host is unavailable' => 'To může znamenat, že uživatelské jméno/heslo/hostitel je špatné nebo je hostitel nedostupný.',
'it is not possible delete used template' => 'Není možné smazat použitou šablonu.',
'it is not possible vote about locked work' => 'Není možné hlasovat o zamčené práci.',
'it is possible to deduct fees only in one year' => 'Členské příspěvky je možné strhávat jen v rámci jednoho roku.',
'it\'s not possible to write your htacess file for clean urls' => 'Není možné zapsat váš soubor .htacess pro čistá URL.',
freenetis/trunk/kohana/application/models/aro_group.php
{
return self::$db->query('SELECT id, name, lft, parent_id, rgt, value FROM aro_groups ORDER BY lft');
}
public function get_aro_groups_by_fk_id($fk_id, $type)
{
return self::$db->query('SELECT a.* FROM votes v
LEFT JOIN aro_groups a ON v.aro_group_id = a.id
WHERE v.fk_id = '.$fk_id.' AND v.type = '.$type.'
GROUP BY v.aro_group_id
ORDER BY v.priority');
}
}
?>
freenetis/trunk/kohana/application/models/approval_template.php
class Approval_template_Model extends ORM
{
protected $has_many = array('approval_template_items');
protected $has_many = array('approval_template_items', 'jobs');
/**
* @author Michal Kliment
freenetis/trunk/kohana/application/models/job.php
<?php
class Job_Model extends ORM {
protected $belongs_to = array('user','confirmed_by' => 'user');
protected $belongs_to = array('user', 'approval_template');
/**
* @author Michal Kliment
......
public function get_all_pending_works($limit_from = 0, $limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC', $filter_values = array())
{
return self::$db->query('SELECT j.id, j.job_report_id, r.description AS work_report, j.approval_template_id, j.user_id, CONCAT( u.name, \' \', u.surname ) AS uname, j.description, j.date, j.hours, j.km, j.suggest_amount, v.vote, v.comment
return self::$db->query('SELECT j.*, CONCAT(u.name, \' \', u.surname) AS uname, v.vote, v.comment
FROM jobs j
LEFT JOIN users u ON j.user_id = u.id
LEFT JOIN job_reports r ON j.job_report_id = r.id
LEFT JOIN transfers t ON j.transfer_id = t.id
LEFT JOIN votes v ON j.id = v.fk_id AND v.type =1 AND v.user_id = '.Session::instance()->get('user_id').'
WHERE j.state <= 1 AND j.job_report_id IS NULL
ORDER BY '.$order_by.' '.$order_by_direction.' LIMIT '.$limit_from.', '.$limit_results);
......
public function count_all_approved_works($filter_values = array())
{
$works = self::$db->query('SELECT * FROM jobs j WHERE j.state = 3 AND j.job_report_id IS NULL');
return count($works);
}
public function count_all_rejected_works($filter_values = array())
{
$works = self::$db->query('SELECT * FROM jobs j WHERE j.state = 2 AND j.job_report_id IS NULL');
return count($works);
}
public function count_all_pending_works($filter_values = array())
{
$works = self::$db->query('SELECT j.* FROM jobs j
WHERE j.state <= 1 AND j.job_report_id IS NULL');
$works = self::$db->query('SELECT j.* FROM jobs j WHERE j.state <= 1 AND j.job_report_id IS NULL');
return count($works);
}
public function get_all_pending_works_by_user($user_id)
{
return self::$db->query('SELECT j.id, j.user_id, j.job_report_id, r.description AS work_report, j.description, j.date, j.hours, j.km, j.suggest_amount, v.vote, v.comment
return self::$db->query('SELECT j.*, CONCAT(u.name, \' \', u.surname) AS uname, v.vote, v.comment
FROM jobs j
LEFT JOIN job_reports r ON j.job_report_id = r.id
LEFT JOIN transfers t ON j.transfer_id = t.id
LEFT JOIN users u ON j.user_id = u.id
LEFT JOIN votes v ON j.id = v.fk_id AND v.type =1 AND v.user_id = '.Session::instance()->get('user_id').'
WHERE j.locked = 0 AND j.job_report_id IS NULL AND j.user_id = '.$user_id);
WHERE j.state <= 1 AND j.job_report_id IS NULL AND j.user_id = '.$user_id);
}
public function get_all_approved_works_by_user ($user_id)
{
return self::$db->query('SELECT q.id, q.job_report_id, r.description as work_report, q.description, q.date, q.hours, q.km, q.transfer_id, t.amount as rating
FROM (SELECT j.*, SUM(v.vote) AS sum, COUNT(v.vote) AS count FROM jobs j
LEFT JOIN votes v ON j.id = v.fk_id AND v.type = 1
WHERE j.locked > 0
GROUP BY j.id) as q
LEFT JOIN job_reports r ON q.job_report_id = r.id
LEFT JOIN transfers t ON q.transfer_id = t.id
WHERE q.sum > 0 AND q.job_report_id IS NULL AND q.user_id = '.$user_id);
return self::$db->query('SELECT j.*, t.amount as rating
FROM jobs j
LEFT JOIN transfers t ON j.transfer_id = t.id
WHERE j.state = 3 AND j.job_report_id IS NULL AND j.user_id = '.$user_id);
}
public function get_all_rejected_works_by_user ($user_id)
{
return self::$db->query('SELECT q.id, q.job_report_id, r.description as work_report, q.description, q.date, q.hours, q.km, q.suggest_amount
FROM (SELECT j.*, SUM(v.vote) AS sum, COUNT(v.vote) AS count FROM jobs j
LEFT JOIN votes v ON j.id = v.fk_id AND v.type = 1
WHERE j.locked > 0
GROUP BY j.id) as q
LEFT JOIN job_reports r ON q.job_report_id = r.id
LEFT JOIN transfers t ON q.transfer_id = t.id
WHERE q.sum <= 0 AND q.job_report_id IS NULL AND q.user_id = '.$user_id);
return self::$db->query('SELECT j.*
FROM jobs j
WHERE j.state = 2 AND j.job_report_id IS NULL AND j.user_id = '.$user_id);
}
public function get_all_works_by_job_report_id ($job_report_id)
freenetis/trunk/kohana/application/controllers/approval_templates.php
/**
* @author Michal Kliment
* Function to delete approval template (it have to empthy - without any items)
* Function to delete approval template (it have to be empthy - without any items)
* @param number $approval_template_id
*/
public function delete($approval_template_id = NULL)
......
}
else
{
// template is empthy - delete it
$approval_template->delete();
$this->session->set_flash('message', url_lang::lang('texts.Approval template has been successfully deleted.'));
url::redirect(url_lang::base().'approval_templates/show_all');
$work_model = new Job_Model();
$works = $work_model->where('approval_template_id', $approval_template->id)->find_all();
if (count($works))
{
$this->session->set_flash('message', url_lang::lang('texts.It is not possible delete used template.'));
url::redirect(url_lang::base().'approval_templates/show/'.$approval_template->id);
}
else
{
// template is empthy - delete it
$approval_template->delete();
$this->session->set_flash('message', url_lang::lang('texts.Approval template has been successfully deleted.'));
url::redirect(url_lang::base().'approval_templates/show_all');
}
}
}
freenetis/trunk/kohana/application/controllers/works.php
{
protected $user_id = false;
function index()
public function index()
{
url::redirect(url_lang::base().'works/pending');
}
......
* @param string $page_word
* @param number $page
*/
function pending($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
public function pending($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
{
// acccess control
if (!$this->acl_check_view('Users_Controller','work'))
......
}
$work->state = Votes_Controller::get_state($work, Vote_Model::$work);
// work is approved
if ($work->state == 3)
{
// creates new transfer
$account_model = new Account_Model();
$transfer = new Transfer_Model();
// finding of operating account
$operating_account = $account_model->where('account_attribute_id', Account_attribute_Model::$operating)->find();
$transfer->origin_id = $operating_account->id;
// findind of account of member
$member_account = $account_model->where('member_id', $work->user->member_id)->where('account_attribute_id', Account_attribute_Model::$credit)->find();
$transfer->destination_id = $member_account->id;
$transfer->datetime = date('Y-m-d');
$transfer->creation_datetime = date('Y-m-d H:i:s');
$transfer->text = url_lang::lang('texts.Work approval');
$transfer->amount = $work->suggest_amount;
$transfer->user_id = $this->session->get('user_id');
$transfer->save();
$work->transfer_id = $transfer->id;
}
$work->save();
$this->session->set_flash('message', url_lang::lang('texts.Votes has been successfully updated.'));
......
* @param string Unused variable
* @param number Number of page
*/
function approved($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
public function approved($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
{
// acccess control
if (!$this->acl_check_view('Users_Controller','work'))
......
$view->render(TRUE);
}
function rejected($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
/**
* @author Michal Kliment
* Function to show all rejected works
* @param number $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param string $page_word
* @param number $page
*/
public function rejected($limit_results = 100, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
{
// acccess control
if (!$this->acl_check_view('Users_Controller','work'))
......
$view->render(TRUE);
}
function show_by_user ($user_id = NULL)
/**
* @author Michal Kliment
* Function to show all works of user
* @param number $user_id
*/
public function show_by_user ($user_id = NULL)
{
if (!$user_id || !is_numeric ($user_id))
Controller::warning (PARAMETER);
......
if (!$this->acl_check_view('Users_Controller', 'work', $user->member_id))
Controller::error(ACCESS);
$job_model = new Job_Model();
$work_model = new Job_Model();
$pending_works = $job_model->get_all_pending_works_by_user($user->id);
$pending_works = $work_model->get_all_pending_works_by_user($user->id);
$total_pending = array();
$total_pending['hours'] = 0;
......
$pending_works_grid->field('km')->label(url_lang::lang('texts.Km'));
$pending_works_grid->callback_field('suggest_amount')->label(url_lang::lang('texts.Suggest amount'))->callback('Works_Controller::suggest_amount');
if ($this->acl_check_new('Votes_Controller', 'work', $this->session->get('member_id')))
{
$pending_works_grid->form_field('vote')->label(url_lang::lang('texts.Vote'))->type('dropdown')->options(array(NULL => '--------', 1 => url_lang::lang('texts.Agree'), -1 => url_lang::lang('texts.Disagree'), 0 => url_lang::lang('texts.Abstain')))->callback('Works_Controller::vote_form_field');
$pending_works_grid->form_field('comment')->label(url_lang::lang('texts.Comment'))->type('textarea');
}
$pending_works_grid->form_field('vote')->label(url_lang::lang('texts.Vote'))->type('dropdown')->options(array(NULL => '--------', 1 => url_lang::lang('texts.Agree'), -1 => url_lang::lang('texts.Disagree'), 0 => url_lang::lang('texts.Abstain')))->callback('Works_Controller::vote_form_field');
$pending_works_grid->form_field('comment')->label(url_lang::lang('texts.Comment'))->type('textarea');
// access control
if ($this->acl_check_view('Users_Controller','work'))
......
$pending_works_grid->datasource($pending_works);
$approved_works = $job_model->get_all_approved_works_by_user($user->id);
$approved_works = $work_model->get_all_approved_works_by_user($user->id);
$total_approved = array();
$total_approved['hours'] = 0;
......
$approved_works_grid->datasource($approved_works);
$rejected_works = $job_model->get_all_rejected_works_by_user($user->id);
$rejected_works = $work_model->get_all_rejected_works_by_user($user->id);
$total_rejected = array();
$total_rejected['hours'] = 0;
......
$rejected_works_grid->datasource($rejected_works);
if (isset ($_POST) && count ($_POST))
{
$vote_model = new Vote_Model();
......
foreach ($post_votes as $id => $post_vote)
{
$vote = $vote_model->where('user_id',$this->session->get('user_id'))->where('fk_id', $id)->where('type',Vote_Model::$work)->find();
$work = $work_model->where('id',$id)->find();
if (!$vote->id && $post_vote=="")
continue;
$approval_template_item_model = new Approval_template_item_Model();
$aro_group = $approval_template_item_model->get_aro_group_by_approval_template_id_and_user_id($work->approval_template_id, $this->session->get('user_id'), $work->suggest_amount);
if ($vote->id && $post_vote=="")
if ($aro_group && $aro_group->id)
{
$vote->delete();
continue;
}
$vote = $vote_model->where('user_id',$this->session->get('user_id'))->where('fk_id', $id)->where('type',Vote_Model::$work)->find();
if ($vote->id && $post_vote!="")
{
$vote->vote = $post_vote;
$vote->comment = $comments[$id];
$vote->save();
continue;
}
if ($vote->id && $post_vote=="")
{
$vote->delete();
}
else if ($vote->id && $post_vote!="")
{
$vote->vote = $post_vote;
$vote->comment = $comments[$id];
$vote->save();
}
else if (!$vote->id)
{
$vote->clear();
$vote->user_id = $this->session->get('user_id');
$vote->fk_id = $id;
$vote->aro_group_id = $aro_group->id;
$vote->type = Vote_Model::$work;
$vote->vote = $post_vote;
$vote->comment = $comments[$id];
$vote->save();
}
if (!$vote->id)
{
$vote->clear();
$vote->user_id = $this->session->get('user_id');
$vote->fk_id = $id;
$vote->type = Vote_Model::$work;
$vote->vote = $post_vote;
$vote->comment = $comments[$id];
$vote->save();
$work->state = Votes_Controller::get_state($work, Vote_Model::$work);
// work is approved
if ($work->state == 3)
{
// creates new transfer
$account_model = new Account_Model();
$transfer = new Transfer_Model();
// finding of operating account
$operating_account = $account_model->where('account_attribute_id', Account_attribute_Model::$operating)->find();
$transfer->origin_id = $operating_account->id;
// findind of account of member
$member_account = $account_model->where('member_id', $work->user->member_id)->where('account_attribute_id', Account_attribute_Model::$credit)->find();
$transfer->destination_id = $member_account->id;
$transfer->datetime = date('Y-m-d');
$transfer->creation_datetime = date('Y-m-d H:i:s');
$transfer->text = url_lang::lang('texts.Work approval');
$transfer->amount = $work->suggest_amount;
$transfer->user_id = $this->session->get('user_id');
$transfer->save();
$work->transfer_id = $transfer->id;
}
$work->save();
$this->session->set_flash('message', url_lang::lang('texts.Votes has been successfully updated.'));
}
}
url::redirect(url::base().url::current(TRUE));
}
$view = new View('main');
$view->title = url_lang::lang('texts.List of works of user').' '.$user->name.' '.$user->surname;
$view->content = new View('works_show_by_user');
......
$view->content->total_rejected = $total_rejected;
$view->render(TRUE);
}
/**
* @author Michal Kliment
* Function to show work
* Function to show work (by private functions show_opened and show_closed)
* @param number $work_id
*/
function show($work_id = NULL)
public function show($work_id = NULL)
{
// bad parameter
if (!$work_id || !is_numeric($work_id))
......
if (!$this->acl_check_view('Users_Controller','work',$work->user->member_id))
Controller::error(ACCESS);
$transfer = new Transfer_Model($work->transfer_id);
if ($work->state <= 1)
// work is opened
$this->show_opened ($work);
else
// work is closed
$this->show_closed ($work);
}
/**
* @author Michal Kliment
* Private function to show opened work
* @param object $work
*/
private function show_opened($work = NULL)
{
// bad parameter
if (!$work)
Controller::warning(PARAMETER);
$approval_template_item_model = new Approval_template_item_Model();
$aro_groups = $approval_template_item_model->get_aro_groups_by_approval_template_id($work->approval_template_id, $work->suggest_amount);
......
$vote_grids[$i]->callback_field('user_id')->label(url_lang::lang('texts.User'))->callback('Works_Controller::user_name');
$vote_grids[$i]->callback_field('vote')->label(url_lang::lang('texts.Vote'))->callback('Works_Controller::vote');
$vote_grids[$i]->callback_field('comment')->label(url_lang::lang('texts.Comment'))->callback('Works_Controller::comment_field');
$vote_grids[$i]->callback_field('id')->label(url_lang::lang('texts.Edit'))->callback('Works_Controller::edit_field');
$vote_grids[$i]->callback_field('id')->label(url_lang::lang('texts.Delete'))->callback('Works_Controller::delete_field');
$vote_grids[$i]->datasource($votes);
$percents[$i] = ($total_votes[$i]) ? round($agrees[$i] / $total_votes[$i] * 100, 1) : 0;
$i++;
}
$links = array();
$state_text = url_lang::lang('texts.Pending');
if (!$work->job_report_id)
{
$links[] = html::anchor(url_lang::base().'works/pending', url_lang::lang('texts.of all pending works'));
$links[] = html::anchor(url_lang::base().'works/show_by_user/'.$work->user_id, url_lang::lang('texts.of all users works'));
if ($this->acl_check_edit('Users_Controller','work',$work->user->member_id) && $work->state == 0)
$links[] = html::anchor(url_lang::base().'works/edit/'.$work->id,url_lang::lang('texts.Edit'));
$links = url_lang::lang('texts.Back to list').': '.implode(" | ", $links);
}
else
{
$links = html::anchor(url_lang::base().'work_reports/show/'.$work->job_report_id, url_lang::lang('texts.Back to the work report'));
}
$view = new View('main');
$view->title = url_lang::lang('texts.Show work');
$view->content = new View('works_show');
$view->content->work = $work;
$view->content->links = $links;
$view->content->vote_groups = $vote_groups;
$view->content->vote_grids = $vote_grids;
$view->content->total_votes = $total_votes;
$view->content->agrees = $agrees;
$view->content->sums = $sums;
$view->content->state_text = $state_text;
$view->content->percents = $percents;
$view->render(TRUE);
}
/**
* @author Michal Kliment
* Private function to show closed work
* @param object $work
*/
private function show_closed($work = NULL)
{
// bad parameter
if (!$work)
Controller::warning(PARAMETER);
$transfer = new Transfer_Model($work->transfer_id);
$vote_model = new Vote_Model();
$aro_group_model = new Aro_group_Model();
$aro_groups = $aro_group_model->get_aro_groups_by_fk_id($work->id, Vote_Model::$work);
//$user_aro_group = $approval_template_item_model->get_aro_group_by_approval_template_id_and_user_id($work->approval_template_id, $this->session->get('user_id'), $work->suggest_amount);
$i = 0;
$vote_groups = array();
$vote_grids = array();
$total_votes = array();
$sums = array();
$agrees = array();
$percents = array();
//$user_vote = NULL;
foreach ($aro_groups as $aro_group)
{
$vote_groups[$i] = $aro_group->name;
$votes = $vote_model->select('votes.id', 'votes.user_id', 'CONCAT(users.name,\' \',users.surname) as uname', 'vote', 'votes.comment')->join('users','users.id = votes.user_id')->where('votes.type',Vote_Model::$work)->where('fk_id',$work->id)->where('aro_group_id', $aro_group->id)->find_all();
$total_votes[$i] = count($votes);
$sums[$i] = 0;
$agrees[$i] = 0;
foreach ($votes as $vote)
{
$sums[$i] += $vote->vote;
if ($vote->vote == 0)
{
$total_votes[$i]--;
continue;
}
if ($vote->vote == 1)
{
$agrees[$i]++;
continue;
}
}
// create grid
$vote_grids[$i] = new Grid(url_lang::base().'works/show/'.$work->id, '', array(
//'separator' => '',
'use_paginator' => false,
'use_selector' => false,
'selector_increace' => 200, // increace
'selector_min' => 200,// minimum where selector start
'selector_max_multiplier' => 10,
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
'style' => 'classic',
));
$vote_grids[$i]->field('id')->label('ID');
$vote_grids[$i]->callback_field('user_id')->label(url_lang::lang('texts.User'))->callback('Works_Controller::user_name');
$vote_grids[$i]->callback_field('vote')->label(url_lang::lang('texts.Vote'))->callback('Works_Controller::vote');
$vote_grids[$i]->callback_field('comment')->label(url_lang::lang('texts.Comment'))->callback('Works_Controller::comment_field');
if ($work->state < 2)
{
$vote_grids[$i]->callback_field('id')->label(url_lang::lang('texts.Edit'))->callback('Works_Controller::edit_field');
......
switch ($work->state)
{
case 0:
case 1:
$state_text = url_lang::lang('texts.Pending');
if (!$work->job_report_id)
$links[] = html::anchor(url_lang::base().'works/pending', url_lang::lang('texts.of all pending works'));
break;
case 2:
foreach ($sums as $i => $sum)
......
Controller::error(ACCESS);
$user_model = new User_Model();
$users = $user_model->select('id','name','surname','login')->orderby('id')->find_all();
$arr_users[0] = '----- '.url_lang::lang('texts.select user').' -----';
$selected = 0;
$selected = NULL;
foreach ($users as $user)
{
$arr_users[$user->id] = $user->surname.' '.$user->name.' - '.$user->login;
}
asort($arr_users, SORT_LOCALE_STRING);
$arr_users = arr::merge(array(NULL => '----- '.url_lang::lang('texts.select user').' -----'), $arr_users);
}
// form
$form = new Forge(url_lang::base().'works/add'.(isset($user_id)?'/'.$user_id:''), '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
if ($this->acl_check_view('approval','templates'))
{
$approval_template_model = new Approval_template_Model();
$approval_templates = $approval_template_model->find_all();
$form->group('')->label(url_lang::lang('texts.Basic information'));
$form->dropdown('user_id')->label(url_lang::lang('texts.User'))->options($arr_users)->rules('required')->selected($selected);
$form->textarea('description')->label(url_lang::lang('texts.Description').':')->rules('required|length[0,65535]');
$form->date('date')->label(url_lang::lang('texts.Date').':')->years(date('Y')-10, date('Y'))->rules('required');
$form->input('hours')->label(url_lang::lang('texts.Hours').':')->rules('required|length[0,250]|valid_numeric');
$form->input('km')->label(url_lang::lang('texts.Km').':')->rules('length[0,250]|valid_numeric');
$form->input('suggest_amount')->label(url_lang::lang('texts.Suggest amount').':')->rules('required|valid_numeric');
// transforms array of objects to classic array
$arr_approval_templates = arr::from_objects($approval_templates);
$arr_approval_templates = arr::merge(array(NULL => '----- '.url_lang::lang('texts.select approval template').' -----'),$arr_approval_templates);
}
$form->submit('submit')->value(url_lang::lang('texts.Save'));
special::required_forge_style($form, ' *', 'required');
// form
$form = new Forge(url_lang::base().'works/add'.(isset($user_id)?'/'.$user_id:''), '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic information'));
$form->dropdown('user_id')->label(url_lang::lang('texts.User').':')->options($arr_users)->rules('required')->selected($selected);
$form->textarea('description')->label(url_lang::lang('texts.Description').':')->rules('required|length[0,65535]');
$form->date('date')->label(url_lang::lang('texts.Date').':')->years(date('Y')-10, date('Y'))->rules('required');
$form->input('hours')->label(url_lang::lang('texts.Hours').':')->rules('required|length[0,250]|valid_numeric');
$form->input('km')->label(url_lang::lang('texts.Km').':')->rules('length[0,250]|valid_numeric');
$form->input('suggest_amount')->label(url_lang::lang('texts.Suggest amount').':')->rules('required|valid_numeric');
if ($this->acl_check_view('approval','templates'))
{
$form->group('')->label(url_lang::lang('texts.Advanced information'));
$form->dropdown('approval_template_id')->label(url_lang::lang('texts.Approval template'))->options($arr_approval_templates)->selected($this->settings->get('default_work_approval_template'));
}
$form->submit('submit')->value(url_lang::lang('texts.Save'));
special::required_forge_style($form, ' *', 'required');
if (isset($user_id))
{
$link_back = url_lang::base().'works/show_by_user/'.$user_id;
......
$work->km = $form_data['km'];
$work->locked = 0;
if (isset($form_data['approval_template_id']) && $form_data['approval_template_id'])
$work->approval_template_id = $form_data['approval_template_id'];
else
$work->approval_template_id = $this->settings->get('default_work_approval_template');
// success
if ($work->save())
{
......
if (isset($id))
{
$job_model = new Job_Model($id);
$user_id=$job_model->user_id;
$job_model->delete($id);
if ($job_model->save())
$work_model = new Job_Model($id);
$user_id=$work_model->user_id;
$work_model->delete($id);
if ($work_model->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Work has been successfully deleted').'.');
url::redirect(url_lang::base().'works/show_by_user/'.$user_id);
......
if ($approval_template_item_model->check_user_vote_rights($item->approval_template_id, Session::instance()->get('user_id'), $item->suggest_amount))
{
if (Session::instance()->get('user_id') == $item->user_id)
$input->options(array(0 => url_lang::lang('texts.Abstain')));
$input->options(array(NULL => '--------', 0 => url_lang::lang('texts.Abstain')));
echo $input->html();
}
}

Také k dispozici: Unified diff