/**
  * Constructor
  *
  * @param void
  * @return AssignmentsController
  */
 function __construct($request)
 {
     parent::__construct($request);
     $filter_id = $this->request->getId('filter_id');
     if (!$filter_id) {
         $filter_id = UserConfigOptions::getValue('default_assignments_filter', $this->logged_user);
     }
     // if
     if ($filter_id) {
         $this->active_filter = AssignmentFilters::findById($filter_id);
     }
     // if
     if (!instance_of($this->active_filter, 'AssignmentFilter')) {
         $this->httpError(HTTP_ERR_NOT_FOUND);
     }
     // if
     $this->smarty->assign('active_filter', $this->active_filter);
     if (AssignmentFilter::canAdd($this->logged_user)) {
         $this->wireframe->addPageAction(lang('New Filter'), assemble_url('assignments_filter_add'));
     }
     // if
     $this->wireframe->addBreadCrumb(lang('Assignments'), assemble_url('assignments'));
     $this->wireframe->current_menu_item = 'assignments';
 }
 /**
  * Create new filter
  *
  * @param void
  * @return null
  */
 function add()
 {
     $this->wireframe->print_button = false;
     if (!AssignmentFilter::canAdd($this->logged_user)) {
         $this->httpError(HTTP_ERR_FORBIDDEN);
     }
     // if
     $filter_data = $this->request->post('filter');
     if (!is_array($filter_data)) {
         $filter_data = array('user_filter' => USER_FILTER_LOGGED_USER, 'objects_per_page' => 30);
     }
     // if
     $this->smarty->assign('filter_data', $filter_data);
     if ($this->request->isSubmitted()) {
         $this->active_filter = new AssignmentFilter();
         $this->active_filter->setAttributes($filter_data);
         $save = $this->active_filter->save();
         if ($save && !is_error($save)) {
             flash_success("Filter ':name' has been created", array('name' => $this->active_filter->getName()));
             $this->redirectToUrl($this->active_filter->getUrl());
         } else {
             $this->smarty->assign('errors', $save);
         }
         // if
     }
     // if
 }