Index: trunk/apps/main/config/routing.yml =================================================================== --- trunk/apps/main/config/routing.yml (revision 75) +++ trunk/apps/main/config/routing.yml (revision 79) @@ -203,5 +203,5 @@ job_add: url: /job/add - param: { module: jobs, action: add } + param: { module: jobs, action: edit } job_edit: Index: trunk/apps/main/config/filters.yml =================================================================== --- trunk/apps/main/config/filters.yml (revision 48) +++ trunk/apps/main/config/filters.yml (revision 79) @@ -12,6 +12,6 @@ class: conditionalCacheFilter -highlight: - class: sfLuceneHighlightFilter +#highlight: +# class: sfLuceneHighlightFilter cache: ~ Index: trunk/apps/main/lib/myUser.class.php =================================================================== --- trunk/apps/main/lib/myUser.class.php (revision 66) +++ trunk/apps/main/lib/myUser.class.php (revision 79) @@ -27,7 +27,7 @@ return parent::getGuardUser(); } - + /** - * Returns current session storage instance + * Returns current session storage instance * * @return sfSessionStorage @@ -36,4 +36,14 @@ { return $this->storage; + } + + /** + * Retrieves related user companies + * + * @return array + */ + public function getRelatedCompanies() + { + return $this->getGuardUser()->getCompaniesArray($this->isAdmin() ? 'all' : 'related'); } Index: trunk/apps/main/modules/mail/actions/actions.class.php =================================================================== --- trunk/apps/main/modules/mail/actions/actions.class.php (revision 56) +++ trunk/apps/main/modules/mail/actions/actions.class.php (revision 79) @@ -8,15 +8,15 @@ class mailActions extends myActions { - + public function executeContact(sfWebRequest $request) { $this->message = $request->getAttribute('message'); } - + public function executeForgotPassword(sfWebRequest $request) { $this->password = $request->getAttribute('password'); } - + public function executeRegister(sfWebRequest $request) { @@ -24,10 +24,10 @@ $this->activation = $request->getAttribute('activation'); } - + public function executeResendActivation(sfWebRequest $request) { $this->activation = $request->getAttribute('activation'); } - + public function executeCompanyContact(sfWebRequest $request) { @@ -36,5 +36,5 @@ $this->company = $request->getAttribute('company'); } - + public function executePersonContact(sfWebRequest $request) { @@ -43,5 +43,5 @@ $this->message = $request->getAttribute('message'); } - + public function executeRecommendationReceived(sfWebRequest $request) { @@ -50,4 +50,9 @@ $this->recommendation = $request->getAttribute('recommendation'); } - + + public function executeTest() + { + + } + } Index: trunk/apps/main/modules/jobs/actions/actions.class.php =================================================================== --- trunk/apps/main/modules/jobs/actions/actions.class.php (revision 75) +++ trunk/apps/main/modules/jobs/actions/actions.class.php (revision 79) @@ -9,32 +9,31 @@ { - public function executeAdd() - { - $this->job = new Job(); - if ($this->getRequest()->getMethod() == sfRequest::POST) - { - $this->updateFromRequest(); + public function executeEdit($request) + { + if (!is_null($request->getParameter('slug'))) + { + $this->job = $this->getFromSlug(); + + if (!$this->getUser()->isAdmin() && $this->job->getContactId() != $this->getUser()->getId()) + { + $this->getUser()->setFlash('warning', $this->__('You are not allowed to edit this record')); + $this->redirect('@job_page?slug='.$this->job->getSlug()); + } + } + else + { + $this->job = new Job(); + $this->setTemplate('add'); + } + + $this->job->setContactId($this->getUser()->getId()); + $this->form = new JobForm($this->job, array('userCompanies' => $this->getUser()->getRelatedCompanies())); + + if ($request->isMethod('post') && $this->form->bindAndSave($request->getParameter('job'))) + { parent::purgeObjectRelatedCache($this->job); - $this->getUser()->setFlash('notice', $this->getI18N()->__('Job offer published')); - $this->redirect('@job_page?slug='.$this->job->getSlug()); - } - } - - public function executeEdit() - { - $this->job = $this->getFromSlug(); - - if (!$this->getUser()->isAdmin() && $this->job->getContactId() != $this->getUser()->getId()) - { - $this->getUser()->setFlash('warning', $this->getI18N()->__('You are not allowed to edit this record')); - $this->redirect('@job_page?slug='.$this->job->getSlug()); - } - - if ($this->getRequest()->getMethod() == sfRequest::POST) - { - $this->updateFromRequest(); - parent::purgeObjectRelatedCache($this->job); - $this->getUser()->setFlash('notice', $this->getI18N()->__('Job offer has been updated')); - $this->redirect('@job_page?slug='.$this->job->getSlug()); + + $this->getUser()->setFlash('notice', $this->__('Job offer has been updated')); + $this->redirect('@job_page?slug='.$this->form->getObject()->getSlug()); } } @@ -48,5 +47,5 @@ if (!is_null($this->job->getExpiresAt()) && $this->job->getExpiresAt(null) < time()) { - $this->getUser()->setFlash('warning', $this->getI18N()->__('This job offer is perempted')); + $this->getUser()->setFlash('warning', $this->__('This job offer is perempted')); } } @@ -57,5 +56,5 @@ if (!$this->getUser()->isAdmin() && $this->getUser()->getId() != $this->job->getContactId()) { - $this->getUser()->setFlash('warning', $this->getI18N()->__('You are not allowed to delete this job offer')); + $this->getUser()->setFlash('warning', $this->__('You are not allowed to delete this job offer')); } else @@ -63,5 +62,5 @@ parent::purgeObjectRelatedCache($this->job); $this->job->delete(); - $this->getUser()->setFlash('notice', $this->getI18N()->__('Job offer has been deleted')); + $this->getUser()->setFlash('notice', $this->__('Job offer has been deleted')); } $this->redirect('@jobs_home'); @@ -150,16 +149,4 @@ } - public function handleErrorAdd() - { - $this->job = new Job(); - return sfView::SUCCESS; - } - - public function handleErrorEdit() - { - $this->job = $this->getFromSlug(); - return sfView::SUCCESS; - } - protected function renderHomeAsFeed(Criteria $c) { @@ -221,31 +208,3 @@ $this->feed = $feed; } - - protected function updateFromRequest() - { - $job_data = $this->getRequestParameter('job', array()); - if (!isset($job_data['teleworking'])) - { - $job_data['teleworking'] = false; - } - if (isset($job_data['expires_at']) && $job_data['expires_at'] == '') - { - unset($job_data['expires_at']); - } - try - { - if (!$this->getUser()->isAdmin() or ($this->getUser()->isAdmin() && $this->job->isNew())) - { - $this->job->setContactId($this->getUser()->getId()); - } - $this->job->fromArray($job_data, BasePeer::TYPE_FIELDNAME); - return $this->job->save(); - } - catch (Exception $e) - { - $this->getRequest()->setError('errors', $this->getI18N()->__('Unable to save this record')); - sfContext::getInstance()->getLogger()->err('Blocking error at job save time: '.$e->getMessage()); - return sfView::SUCCESS; - } - } } Index: trunk/apps/main/modules/jobs/templates/editSuccess.php =================================================================== --- trunk/apps/main/modules/jobs/templates/editSuccess.php (revision 2) +++ trunk/apps/main/modules/jobs/templates/editSuccess.php (revision 79) @@ -5,6 +5,7 @@ $job, + array('job' => $form->getObject(), + 'form' => $form, 'title' => $page_title, - 'form_route' => '@job_edit?slug='.$job->getSlug(), + 'form_route' => '@job_edit?slug='.$form->getObject()->getSlug(), 'submit_label' => __('Update this job offer'))) ?> Index: trunk/apps/main/modules/jobs/templates/addSuccess.php =================================================================== --- trunk/apps/main/modules/jobs/templates/addSuccess.php (revision 2) +++ trunk/apps/main/modules/jobs/templates/addSuccess.php (revision 79) @@ -5,5 +5,6 @@ $job, + array('job' => $form->getObject(), + 'form' => $form, 'title' => $page_title, 'form_route' => '@job_add', Index: trunk/apps/main/modules/jobs/templates/_form.php =================================================================== --- trunk/apps/main/modules/jobs/templates/_form.php (revision 64) +++ trunk/apps/main/modules/jobs/templates/_form.php (revision 79) @@ -10,29 +10,27 @@

-
+
- - get('job[title]')) ?> - + renderLabel(__('Job title')) ?> + render() ?> + renderError() ?>
- - get('job[summary]')) ?> - + renderLabel(__('Summary')) ?> + render() ?> + renderError() ?>
- - get('job[budget]')) ?> - + renderLabel(__('Budget')) ?> + render() ?> + renderError() ?>
- get('job[teleworking]')) ?> - - + render() ?> + renderLabel(__('Possible teleworking?'), array('class' => 'inline')) ?> + renderError() ?>
@@ -42,15 +40,11 @@
- - getGuardUser()->getCompaniesArray($sf_user->isAdmin() ? 'all' : 'related'), - $sf_request->getParameter('job[company_id]', $job->getCompanyId()), - array('include_custom' => __('No')))) ?> - + renderLabel(__('Is the job offered by a company you\'re related to?')) ?> + render() ?> + renderError() ?>

link_to(__('Add it now'), - '@company_add'))) ?> + array('%add_link%' => link_to(__('Add it now'), '@company_add'))) ?>

@@ -61,7 +55,7 @@
- - get('job[city]')) ?> - + renderLabel(__('City')) ?> + render() ?> + renderError() ?>
@@ -69,17 +63,19 @@
- - get('job[state]')) ?> - + renderLabel(__('State (if applicable)')) ?> + render() ?> + renderError() ?>
- - getRawValue()->get('job[country]')) ?> - + renderLabel(__('Country')) ?> + render() ?> + renderError() ?>
- - get('job[expires_at]')) ?> - +
+ renderLabel(__('Job offer expiration date (yyyy-mm-dd)')) ?> + render() ?> + renderError() ?> +
@@ -87,5 +83,7 @@

- + + +

Index: trunk/apps/main/templates/_messages.php =================================================================== --- trunk/apps/main/templates/_messages.php (revision 75) +++ trunk/apps/main/templates/_messages.php (revision 79) @@ -6,5 +6,5 @@ renderGlobalErrors() ?>
- getErrorSchema())): ?> + getErrorSchema()) > 0): ?>