Skip to content
Snippets Groups Projects
Commit e6c57ff0 authored by llaffont's avatar llaffont
Browse files

Les formulaires peuvent être validés

parent 29fa2704
Branches
Tags
No related merge requests found
......@@ -978,6 +978,14 @@ class Admin_ModoController extends Zend_Controller_Action {
}
public function validateFormulaireAction() {
$formulaire_to_validate = Class_Formulaire::find($this->_getParam('id'));
$formulaire_to_validate->beValidated()->save();
$this->_helper->notify($this->_('Formulaire validé'));
$this->_redirect('admin/modo/formulaires/id_article/'.$formulaire_to_validate->getIdArticle());
}
public function exportCsvFormulaireAction() {
$this->getHelper('ViewRenderer')->setNoRender();
......
......@@ -28,7 +28,15 @@ echo $this->tagModelTable(
$data_names
),
[ ['action' => 'delete-formulaire', 'content' => $this->boutonIco('type=del')] ],
[ ['action' => 'delete-formulaire', 'content' => $this->boutonIco('type=del')],
function($model) {
return $model->isValidated()
? ''
: $this->tagAnchor(['action' => 'validate-formulaire',
'id' => $model->getId()],
$this->boutonIco('type=validate'));
},
],
'formulaires',
......
......@@ -69,7 +69,8 @@ class Class_Formulaire extends Storm_Model_Abstract {
public function beforeSave() {
$this->setDateCreation(date('Y-m-d H:i:s', self::getTimeSource()->time()));
if ($this->isNew())
$this->setDateCreation(date('Y-m-d H:i:s', self::getTimeSource()->time()));
}
......@@ -95,4 +96,14 @@ class Class_Formulaire extends Storm_Model_Abstract {
},
$attributes);
}
public function isValidated() {
return true == $this->getValidated();
}
public function beValidated() {
return $this->setValidated(true);
}
}
......@@ -29,6 +29,9 @@ abstract class ModoControllerFormulaireForArticleTestCase extends Admin_Abstract
->whenCalled('delete')
->answers(true)
->whenCalled('save')
->answers(true)
->whenCalled('findAllBy')
->with([ 'role' => 'article',
'model' => $article,
......@@ -37,7 +40,8 @@ abstract class ModoControllerFormulaireForArticleTestCase extends Admin_Abstract
Class_Formulaire::newInstanceWithId(3, ['data' => serialize(['nom' => 'Tinguette',
'prenom' => 'Quentine']),
'date_creation' => '2012-12-05 12:00:23',
'article' => $article]),
'article' => $article,
'validated' => true]),
Class_Formulaire::newInstanceWithId(5, ['data' => serialize(['nom' => 'Bougie',
'Prenom' => 'Mireille']),
......@@ -99,6 +103,12 @@ class ModoControllerFormulaireForArticleListTest extends ModoControllerFormulair
}
/** @test */
public function formulaireQuentineShouldNotHaveLinkToValidate() {
$this->assertNotXPath('//a[contains(@href, "validate-formulaire/id_article/12/id/3")]');
}
/** @test */
public function mireilleRowShouldContainsUserZork() {
$this->assertXPathContentContains('//tr[2]//td', 'zork');
......@@ -123,6 +133,12 @@ class ModoControllerFormulaireForArticleListTest extends ModoControllerFormulair
}
/** @test */
public function aTDShouldContainsActionToValidateFormulaireMireille() {
$this->assertXPath('//tr[2]//td/a[contains(@href, "admin/modo/validate-formulaire/id_article/12/id/5")]');
}
/** @test */
public function linkToExportCsvShouldBePresent() {
$this->assertXPathContentContains('//a[contains(@href, "admin/modo/export-csv-formulaire/id_article/12")]',
......@@ -133,6 +149,41 @@ class ModoControllerFormulaireForArticleListTest extends ModoControllerFormulair
class ModoControllerFormulaireForArticleValidateFormulaireMireilleTest extends ModoControllerFormulaireForArticleTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('admin/modo/validate-formulaire/id_article/12/id/5', true);
}
/** @test */
public function formulaireShouldBeValidated() {
$this->assertTrue(Class_Formulaire::find(5)->isValidated());
}
/** @test */
public function formulaireShouldHaveBeenSaved() {
$this->assertEquals(5, Class_Formulaire::getFirstAttributeForLastCallOn('save')->getId());
}
/** @test */
public function responseShouldRedirectToFormulairesIdArticle12() {
$this->assertRedirectTo('/admin/modo/formulaires/id_article/12');
}
/** @test */
public function dateCreationShouldNotChange() {
$this->assertEquals('2012-12-06 10:00:01', Class_Formulaire::find(5)->getDateCreation());
}
}
class ModoControllerFormulaireForArticleDeleteTest extends ModoControllerFormulaireForArticleTestCase {
public function setUp() {
parent::setUp();
......
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