コード例 #1
0
 /**
  * Extends an application object with some handy properties
  *
  * @param object com_meego_devprogram_application object
  * @return object extended com_meego_devprogram_application object
  */
 private static function extend_application($object = null)
 {
     $application = new com_meego_devprogram_application($object->guid);
     if ($application) {
         // some urls
         $application->read_url = com_meego_devprogram_utils::get_url('my_application_read', array('application_guid' => $application->guid));
         $application->update_url = com_meego_devprogram_utils::get_url('my_application_update', array('application_guid' => $application->guid));
         $application->delete_url = com_meego_devprogram_utils::get_url('my_application_delete', array('application_guid' => $application->guid));
         $application->judge_url = com_meego_devprogram_utils::get_url('application_judge', array('application_guid' => $application->guid));
         // submitter's username
         $user = com_meego_devprogram_utils::get_user_by_person_guid($application->metadata->creator);
         if (is_object($user)) {
             $application->submitter = $user->firstname;
             #. ' ' . $user->lastname;
         }
         // human readable decision state of the application
         $mvc = midgardmvc_core::get_instance();
         switch ($application->status) {
             case CMD_APPLICATION_PENDING:
                 $state = $mvc->i18n->get('label_application_state_pending');
                 $css = 'pending';
                 break;
             case CMD_APPLICATION_APPROVED:
                 $state = $mvc->i18n->get('label_application_state_approved');
                 $css = 'approved';
                 break;
             case CMD_APPLICATION_MOREINFO:
                 $state = $mvc->i18n->get('label_application_state_moreinfo');
                 $css = 'moreinfo';
                 break;
             case CMD_APPLICATION_CANCELLED:
                 $state = $mvc->i18n->get('label_application_state_cancelled');
                 $css = 'cancelled';
                 break;
             case CMD_APPLICATION_DENIED:
                 $state = $mvc->i18n->get('label_application_state_denied');
                 $css = 'denied';
                 break;
             default:
                 $state = $mvc->i18n->get('label_application_state_pending');
                 $css = 'pending';
         }
         $application->decision = ucfirst($state);
         $application->state_css = $css;
         // now check if the applicant has actually updated since the last decision of the program owner
         $application->has_update = false;
         if ($application->status == 1 && $application->metadata->revisor == $application->metadata->creator) {
             $application->has_update = true;
         }
         // get the program this app is submitted for; get the provider and set it a new property to the app
         $programs = com_meego_devprogram_progutils::get_programs(array('id' => $application->program));
         $application->programobject = $programs[0];
         $application->provider = $programs[0]->provider;
         return $application;
     }
 }
コード例 #2
0
 /**
  * Deletes the device
  * First it makes sure that all expired programs are deleted,
  * otherwise a device can not be deleted if it is assigned to a program
  */
 public function post_delete(array $args)
 {
     # make sure all closed (expired) programs are marked deleted
     # before attempting to delete a device
     com_meego_devprogram_progutils::delete_expired_programs();
     parent::post_delete($args);
 }
コード例 #3
0
 /**
  * Prepares and shows the program list page (cmd-list-programs)
  *
  * Access: anyone can list closed programs
  *
  * @param array args (not used)
  */
 public function get_closed_programs_list(array $args)
 {
     $this->data['type'] = 'closed';
     $this->data['index_url'] = com_meego_devprogram_utils::get_url('index', array());
     $this->data['programs'] = com_meego_devprogram_progutils::get_programs(array('status' => CMD_PROGRAM_CLOSED, 'deleted' => true));
 }
コード例 #4
0
 /**
  * Prepares the application page
  *
  * @param array args
  */
 public function get_create(array $args)
 {
     if (!strlen($args['program_name'])) {
         $url = com_meego_devprogram_utils::get_url('index', $args);
         $this->mvc->head->relocate($url);
     }
     // require login
     $redirect = com_meego_devprogram_utils::get_url('my_application_create', $args);
     $user = com_meego_devprogram_utils::require_login($redirect);
     // @todo: sanity check
     $programs = com_meego_devprogram_progutils::get_programs(array('name' => $args['program_name']));
     $program = $programs[0];
     if (!is_object($program)) {
         throw new InvalidArgumentException("Program: {$args['program_name']} con not be found");
     }
     $this->data['program'] = $program;
     // check if the user has applied for the program and
     // display a warning if yes
     // in case of multiple applications we only refer to the 1st
     $this->data['myapps'] = com_meego_devprogram_apputils::get_applications_of_current_user($program->id);
     $now = new DateTime();
     if ($program->duedate >= $now && (!count($this->data['myapps']) || $program->multiple)) {
         // we move on if user has not applied or
         // the program accepts multiple entries from the same person
         parent::get_create($args);
     }
     // load the text limiter js files
     $this->mvc->head->add_jsfile(MIDGARDMVC_STATIC_URL . '/' . $this->component . '/js/textLimit.js');
     $this->mvc->head->add_jsfile(MIDGARDMVC_STATIC_URL . '/' . $this->component . '/js/limiter_for_applications.js');
 }
コード例 #5
0
ファイル: index.php プロジェクト: nemein/com_meego_devprogram
 /**
  * Prepares and shows the index page (cmd-index)
  *
  * @param array args (not used)
  */
 public function get_index(array $args)
 {
     $this->data['latest'] = com_meego_devprogram_progutils::get_latest_program();
     $this->data['closing'] = com_meego_devprogram_progutils::get_closing_programs();
 }