Skip to content

Commit

Permalink
update translation storage (#642)
Browse files Browse the repository at this point in the history
  • Loading branch information
alavieille committed Sep 5, 2016
1 parent 1ac6ded commit b021132
Show file tree
Hide file tree
Showing 19 changed files with 351 additions and 328 deletions.
20 changes: 2 additions & 18 deletions ModelBundle/DataFixtures/MongoDB/AbstractLoadStatus.php
Expand Up @@ -5,7 +5,6 @@
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use OpenOrchestra\ModelBundle\Document\Status;
use OpenOrchestra\ModelBundle\Document\TranslatedValue;

/**
* Class AbstractLoadStatus
Expand All @@ -28,27 +27,12 @@ protected function loadStatus($enName, $frName, $name, $color, $published = fals
$value->setName($name);
$value->setPublished($published);
$value->setInitial($initial);
$value->addLabel($this->generateTranslatedValue('en', $enName));
$value->addLabel($this->generateTranslatedValue('fr', $frName));
$value->addLabel('en', $enName);
$value->addLabel('fr', $frName);
$value->setDisplayColor($color);

$this->addReference('status-' . $name, $value);

return $value;
}

/**
* @param string $language
* @param string $value
*
* @return TranslatedValue
*/
protected function generateTranslatedValue($language, $value)
{
$translatedValue = new TranslatedValue();
$translatedValue->setLanguage($language);
$translatedValue->setValue($value);

return $translatedValue;
}
}
141 changes: 24 additions & 117 deletions ModelBundle/DataFixtures/MongoDB/LoadContentTypeData.php
Expand Up @@ -8,7 +8,6 @@
use OpenOrchestra\ModelBundle\Document\ContentType;
use OpenOrchestra\ModelBundle\Document\FieldType;
use OpenOrchestra\ModelBundle\Document\FieldOption;
use OpenOrchestra\ModelBundle\Document\TranslatedValue;
use OpenOrchestra\ModelInterface\DataFixtures\OrchestraFunctionalFixturesInterface;

/**
Expand Down Expand Up @@ -63,23 +62,6 @@ protected function genereteDefaultListable()
);
}

/**
* Generate a translatedValue
*
* @param string $language
* @param string $value
*
* @return TranslatedValue
*/
protected function generateTranslatedValue($language, $value)
{
$label = new TranslatedValue();
$label->setLanguage($language);
$label->setValue($value);

return $label;
}

/**
* Generate a field type
*
Expand All @@ -89,16 +71,14 @@ protected function generateTranslatedValue($language, $value)
*
* @return FieldType
*/
protected function generateField($fieldType, $fieldId, $labels)
protected function generateField($fieldType, $fieldId, array $labels)
{
$field = new FieldType();
$field->setType($fieldType);
$field->setFieldId($fieldId);
$field->setDefaultValue(null);
$field->setSearchable(true);
foreach ($labels as $label) {
$field->addLabel($label);
}
$field->setLabels($labels);

return $field;
}
Expand Down Expand Up @@ -133,20 +113,14 @@ protected function generateContentTypeNews()

/* TITLE */

$enLabel = $this->generateTranslatedValue('en', 'Title');
$frLabel = $this->generateTranslatedValue('fr', 'Titre');

$newsTitle = $this->generateField('text', 'title', array($enLabel, $frLabel));
$newsTitle = $this->generateField('text', 'title', array('en' => 'Title', 'fr' => 'Titre'));
$newsTitle->setFieldTypeSearchable('text');
$newsTitle->addOption($maxLengthOption);
$newsTitle->addOption($required);

/* BEGINING DATE */

$enLabel = $this->generateTranslatedValue('en', 'Publicated from (yyyy-MM-dd)');
$frLabel = $this->generateTranslatedValue('fr', 'Publié du (aaaa-MM-jj)');

$newBeginning = $this->generateField('date', 'publish_start', array($enLabel, $frLabel));
$newBeginning = $this->generateField('date', 'publish_start', array('en' => 'Publicated from (yyyy-MM-dd)', 'fr' => 'Publié du (aaaa-MM-jj)'));
$newBeginning->addOption($required);
$newBeginning->addOption($dateWidgetOption);
$newBeginning->addOption($dateInputOption);
Expand All @@ -155,10 +129,7 @@ protected function generateContentTypeNews()

/* ENDING DATE */

$enLabel = $this->generateTranslatedValue('en', 'till (yyyy-MM-dd)');
$frLabel = $this->generateTranslatedValue('fr', 'au (aaaa-MM-jj)');

$newEnding = $this->generateField('date', 'publish_end', array($enLabel, $frLabel));
$newEnding = $this->generateField('date', 'publish_end', array('en' => 'till (yyyy-MM-dd)', 'fr' => 'au (aaaa-MM-jj)'));
$newEnding->addOption($required);
$newEnding->addOption($dateWidgetOption);
$newEnding->addOption($dateInputOption);
Expand All @@ -167,39 +138,27 @@ protected function generateContentTypeNews()

/* IMAGE */

$enLabel = $this->generateTranslatedValue('en', 'Image');
$frLabel = $this->generateTranslatedValue('fr', 'Image');

$newImage = $this->generateField('orchestra_media', 'image', array($enLabel, $frLabel));
$newImage = $this->generateField('orchestra_media', 'image', array('en' => 'Image', 'fr' => 'Image'));
$newImage->setFieldTypeSearchable('text');

/* INTRODUCTION */

$enLabel = $this->generateTranslatedValue('en', 'Introduction');
$frLabel = $this->generateTranslatedValue('fr', 'Introduction');

$newsIntro = $this->generateField('text', 'intro', array($enLabel, $frLabel));
$newsIntro = $this->generateField('text', 'intro', array('en' => 'Introduction', 'fr' => 'Introduction'));
$newsIntro->addOption($maxLengthOption);
$newsIntro->addOption($required);
$newsIntro->setFieldTypeSearchable('text');

/* TEXT */

$enLabel = $this->generateTranslatedValue('en', 'Text');
$frLabel = $this->generateTranslatedValue('fr', 'Texte');

$newsText = $this->generateField('tinymce', 'text', array($enLabel, $frLabel));
$newsText = $this->generateField('tinymce', 'text', array('en' => 'Text', 'fr' => 'Texte'));
$newsText->setFieldTypeSearchable('text');

/* CONTENT TYPE */

$enLabel = $this->generateTranslatedValue('en', 'News');
$frLabel = $this->generateTranslatedValue('fr', 'Actualité');

$news = new ContentType();
$news->setContentTypeId('news');
$news->addName($enLabel);
$news->addName($frLabel);
$news->addName('en', 'News');
$news->addName('fr', 'Actualité');
$news->setDeleted(false);
$news->setVersion(1);
$news->setDefaultListable($this->genereteDefaultListable());
Expand All @@ -223,55 +182,32 @@ protected function generateContentTypeCar()

$required = $this->generateOption('required', true);

$enLabel = new TranslatedValue();
$enLabel->setLanguage('en');
$enLabel->setValue('Name');

$frLabel = new TranslatedValue();
$frLabel->setLanguage('fr');
$frLabel->setValue('Nom');

$carName = new FieldType();
$carName->setFieldId('car_name');
$carName->addLabel($enLabel);
$carName->addLabel($frLabel);
$carName->addLabel('en', 'Name');
$carName->addLabel('fr', 'Nom');
$carName->setDefaultValue('');
$carName->setSearchable(true);
$carName->setType('text');
$carName->addOption($maxLengthOption);
$carName->addOption($required);
$carName->setFieldTypeSearchable('text');

$enLabel = new TranslatedValue();
$enLabel->setLanguage('en');
$frLabel = new TranslatedValue();
$frLabel->setLanguage('fr');
$enLabel->setValue('Description');
$frLabel->setValue('Description');

$carDescription = new FieldType();
$carDescription->setFieldId('description');
$carDescription->addLabel($enLabel);
$carDescription->addLabel($frLabel);
$carDescription->addLabel('en', 'Description');
$carDescription->addLabel('fr', 'Description');
$carDescription->setDefaultValue('');
$carDescription->setSearchable(true);
$carDescription->setType('text');
$carDescription->addOption($maxLengthOption);
$carDescription->addOption($required);
$carDescription->setFieldTypeSearchable('text');

$en = new TranslatedValue();
$en->setLanguage('en');
$en->setValue('Car');

$fr = new TranslatedValue();
$fr->setLanguage('fr');
$fr->setValue('Voiture');

$car = new ContentType();
$car->setContentTypeId('car');
$car->addName($en);
$car->addName($fr);
$car->addName('en', 'Car');
$car->addName('fr', 'Voiture');
$car->setDeleted(false);
$car->setVersion(2);
$car->setDefaultListable($this->genereteDefaultListable());
Expand All @@ -290,72 +226,43 @@ protected function generateContentTypeCustomer()
$maxLengthOption = $this->generateOption('max_length', 25);
$required = $this->generateOption('required', true);

$enLabel = new TranslatedValue();
$enLabel->setLanguage('en');
$frLabel = new TranslatedValue();
$frLabel->setLanguage('fr');
$enLabel->setValue('Firstname');
$frLabel->setValue('Prénom');

$customerFirstName = new FieldType();
$customerFirstName->setFieldId('firstname');
$customerFirstName->addLabel($enLabel);
$customerFirstName->addLabel($frLabel);
$customerFirstName->addLabel('en', 'Firstname');
$customerFirstName->addLabel('fr', 'Prénom');
$customerFirstName->setDefaultValue('');
$customerFirstName->setSearchable(true);
$customerFirstName->setType('text');
$customerFirstName->addOption($maxLengthOption);
$customerFirstName->addOption($required);
$customerFirstName->setFieldTypeSearchable('text');

$enLabel = new TranslatedValue();
$enLabel->setLanguage('en');
$frLabel = new TranslatedValue();
$frLabel->setLanguage('fr');
$enLabel->setValue('Lastname');
$frLabel->setValue('Nom de famille');

$customerLastName = new FieldType();
$customerLastName->setFieldId('lastname');
$customerLastName->addLabel($enLabel);
$customerLastName->addLabel($frLabel);
$customerLastName->addLabel('en', 'Lastname');
$customerLastName->addLabel('fr', 'Nom de famille');
$customerLastName->setDefaultValue('');
$customerLastName->setSearchable(true);
$customerLastName->setType('text');
$customerLastName->addOption($maxLengthOption);
$customerLastName->addOption($required);
$customerLastName->setFieldTypeSearchable('text');

$enLabel = new TranslatedValue();
$enLabel->setLanguage('en');
$frLabel = new TranslatedValue();
$frLabel->setLanguage('fr');
$enLabel->setValue('Identifier');
$frLabel->setValue('Identifiant');

$customerIdentifier = new FieldType();
$customerIdentifier->setFieldId('identifier');
$customerIdentifier->addLabel($enLabel);
$customerIdentifier->addLabel($frLabel);
$customerIdentifier->addLabel('en', 'Identifier');
$customerIdentifier->addLabel('fr', 'Identifiant');
$customerIdentifier->setDefaultValue(0);
$customerIdentifier->setSearchable(false);
$customerIdentifier->setType('integer');
$customerIdentifier->addOption($maxLengthOption);
$customerIdentifier->addOption($required);
$customerIdentifier->setFieldTypeSearchable('number');

$en = new TranslatedValue();
$en->setLanguage('en');
$en->setValue('Customer');

$fr = new TranslatedValue();
$fr->setLanguage('fr');
$fr->setValue('Client');

$customer = new ContentType();
$customer->setContentTypeId('customer');
$customer->addName($en);
$customer->addName($fr);
$customer->addName('en', 'Customer');
$customer->addName('fr', 'Client');
$customer->setDeleted(false);
$customer->setVersion(1);
$customer->setDefaultListable($this->genereteDefaultListable());
Expand Down
29 changes: 6 additions & 23 deletions ModelBundle/DataFixtures/MongoDB/LoadRoleDataFunctional.php
Expand Up @@ -6,7 +6,6 @@
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use OpenOrchestra\ModelBundle\Document\Role;
use OpenOrchestra\ModelBundle\Document\TranslatedValue;
use OpenOrchestra\ModelInterface\DataFixtures\OrchestraFunctionalFixturesInterface;

/**
Expand All @@ -21,26 +20,26 @@ public function load(ObjectManager $manager)
{
$draftToPending = new Role();
$draftToPending->setName('ROLE_FROM_DRAFT_TO_PENDING');
$draftToPending->addDescription($this->generateTranslatedValue('en', 'Change status from draft to pending'));
$draftToPending->addDescription($this->generateTranslatedValue('fr', 'Modifier le status de brouillon à en attente'));
$draftToPending->addDescription('en', 'Change status from draft to pending');
$draftToPending->addDescription('fr', 'Modifier le status de brouillon à en attente');
$draftToPending->setFromStatus($this->getReference('status-draft'));
$draftToPending->setToStatus($this->getReference('status-pending'));
$this->addReference('role-functional-draft-to-pending', $draftToPending);
$manager->persist($draftToPending);

$pendintToPusblished = new Role();
$pendintToPusblished->setName('ROLE_FROM_PENDING_TO_PUBLISHED');
$pendintToPusblished->addDescription($this->generateTranslatedValue('en', 'Change status from pending to draft'));
$pendintToPusblished->addDescription($this->generateTranslatedValue('fr', 'Modifier le status de en attente à brouillon'));
$pendintToPusblished->addDescription('en', 'Change status from pending to draft');
$pendintToPusblished->addDescription('fr', 'Modifier le status de en attente à brouillon');
$pendintToPusblished->setFromStatus($this->getReference('status-pending'));
$pendintToPusblished->setToStatus($this->getReference('status-published'));
$this->addReference('role-functional-pending-to-published', $pendintToPusblished);
$manager->persist($pendintToPusblished);

$pendingToDraft = new Role();
$pendingToDraft->setName('ROLE_FROM_PUBLISHED_TO_DRAFT');
$pendingToDraft->addDescription($this->generateTranslatedValue('en', 'Change status from pending to draft'));
$pendingToDraft->addDescription($this->generateTranslatedValue('fr', 'Modifier le status de en attente à brouillon'));
$pendingToDraft->addDescription('en', 'Change status from pending to draft');
$pendingToDraft->addDescription('fr', 'Modifier le status de en attente à brouillon');
$pendingToDraft->setFromStatus($this->getReference('status-published'));
$pendingToDraft->setToStatus($this->getReference('status-draft'));
$this->addReference('role-functional-published-to-draft', $pendingToDraft);
Expand All @@ -59,20 +58,4 @@ public function getOrder()
return 110;
}

/**
* Generate a translatedValue
*
* @param string $language
* @param string $value
*
* @return TranslatedValue
*/
protected function generateTranslatedValue($language, $value)
{
$label = new TranslatedValue();
$label->setLanguage($language);
$label->setValue($value);

return $label;
}
}

0 comments on commit b021132

Please sign in to comment.