font-size: 40px; | font-size: 40px; | ||||
} | } | ||||
p { | |||||
.description { | |||||
font-size: 17px; | font-size: 17px; | ||||
} | } | ||||
.other-startup { | .other-startup { | ||||
color: $green; | |||||
color: $orange; | |||||
font-size: 20px; | font-size: 20px; | ||||
display: inline-block; | display: inline-block; | ||||
margin-top: 20px; | margin-top: 20px; | ||||
margin-bottom: 30px; | |||||
font-weight: bold; | font-weight: bold; | ||||
margin-bottom: 100px; | margin-bottom: 100px; | ||||
} | } | ||||
margin-top: 30px; | margin-top: 30px; | ||||
} | } | ||||
p { | |||||
.description { | |||||
width: 80%; | width: 80%; | ||||
display: inline-block; | display: inline-block; | ||||
} | } | ||||
font-size: 40px; | font-size: 40px; | ||||
} | } | ||||
p { | |||||
.description { | |||||
margin-top: 50px; | margin-top: 50px; | ||||
} | } | ||||
max-height: 100%; | max-height: 100%; | ||||
} | } | ||||
li, p, a, select, option { | |||||
li, p, a, select, option, .description { | |||||
font-family: FranklinGothic; | font-family: FranklinGothic; | ||||
} | } | ||||
p { | |||||
p, .description { | |||||
font-size: 20px; | font-size: 20px; | ||||
} | } | ||||
margin-bottom: 30px; | margin-bottom: 30px; | ||||
} | } | ||||
p { | |||||
.description { | |||||
color: $orange; | color: $orange; | ||||
font-style: italic; | font-style: italic; | ||||
font-size: 20px; | font-size: 20px; | ||||
margin-bottom: 50px; | margin-bottom: 50px; | ||||
font-family: FranklinGothic; | |||||
} | } | ||||
.bloc-contrib { | .bloc-contrib { |
margin-bottom: 30px; | margin-bottom: 30px; | ||||
} | } | ||||
p { | |||||
.description { | |||||
color: $orange; | color: $orange; | ||||
font-style: italic; | font-style: italic; | ||||
font-size: 20px; | font-size: 20px; | ||||
margin-bottom: 50px; | margin-bottom: 50px; | ||||
font-family: FranklinGothic; | |||||
} | } | ||||
.carto-dream { | .carto-dream { |
<?php | |||||
declare(strict_types=1); | |||||
namespace DoctrineMigrations; | |||||
use Doctrine\DBAL\Schema\Schema; | |||||
use Doctrine\Migrations\AbstractMigration; | |||||
/** | |||||
* Auto-generated Migration: Please modify to your needs! | |||||
*/ | |||||
final class Version20210914103716 extends AbstractMigration | |||||
{ | |||||
public function getDescription(): string | |||||
{ | |||||
return ''; | |||||
} | |||||
public function up(Schema $schema): void | |||||
{ | |||||
// this up() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('CREATE TABLE block (id INT AUTO_INCREMENT NOT NULL, page_id INT DEFAULT NULL, dev_alias VARCHAR(255) NOT NULL, title VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, INDEX IDX_831B9722C4663E4 (page_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB'); | |||||
$this->addSql('ALTER TABLE block ADD CONSTRAINT FK_831B9722C4663E4 FOREIGN KEY (page_id) REFERENCES page (id)'); | |||||
} | |||||
public function down(Schema $schema): void | |||||
{ | |||||
// this down() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('DROP TABLE block'); | |||||
} | |||||
} |
<?php | |||||
declare(strict_types=1); | |||||
namespace DoctrineMigrations; | |||||
use Doctrine\DBAL\Schema\Schema; | |||||
use Doctrine\Migrations\AbstractMigration; | |||||
/** | |||||
* Auto-generated Migration: Please modify to your needs! | |||||
*/ | |||||
final class Version20210914113711 extends AbstractMigration | |||||
{ | |||||
public function getDescription(): string | |||||
{ | |||||
return ''; | |||||
} | |||||
public function up(Schema $schema): void | |||||
{ | |||||
// this up() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE block DROP FOREIGN KEY FK_831B9722C4663E4'); | |||||
$this->addSql('DROP INDEX IDX_831B9722C4663E4 ON block'); | |||||
$this->addSql('ALTER TABLE block DROP page_id'); | |||||
} | |||||
public function down(Schema $schema): void | |||||
{ | |||||
// this down() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE block ADD page_id INT DEFAULT NULL'); | |||||
$this->addSql('ALTER TABLE block ADD CONSTRAINT FK_831B9722C4663E4 FOREIGN KEY (page_id) REFERENCES page (id)'); | |||||
$this->addSql('CREATE INDEX IDX_831B9722C4663E4 ON block (page_id)'); | |||||
} | |||||
} |
<?php | |||||
declare(strict_types=1); | |||||
namespace DoctrineMigrations; | |||||
use Doctrine\DBAL\Schema\Schema; | |||||
use Doctrine\Migrations\AbstractMigration; | |||||
/** | |||||
* Auto-generated Migration: Please modify to your needs! | |||||
*/ | |||||
final class Version20210914114109 extends AbstractMigration | |||||
{ | |||||
public function getDescription(): string | |||||
{ | |||||
return ''; | |||||
} | |||||
public function up(Schema $schema): void | |||||
{ | |||||
// this up() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE block ADD status DOUBLE PRECISION NOT NULL'); | |||||
} | |||||
public function down(Schema $schema): void | |||||
{ | |||||
// this down() migration is auto-generated, please modify it to your needs | |||||
$this->addSql('ALTER TABLE block DROP status'); | |||||
} | |||||
} |
"entrypoints": { | "entrypoints": { | ||||
"adminlte-plugins": { | "adminlte-plugins": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
}, | }, | ||||
"adminlte-index": { | "adminlte-index": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
}, | }, | ||||
"adminlte-form": { | "adminlte-form": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
"/build/adminlte-form.4079807b.js" | "/build/adminlte-form.4079807b.js" | ||||
}, | }, | ||||
"adminlte-sort": { | "adminlte-sort": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
}, | }, | ||||
"adminlte-field-filemanager": { | "adminlte-field-filemanager": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/adminlte-field-filemanager.d8302fb7.js" | "/build/adminlte-field-filemanager.d8302fb7.js" | ||||
], | ], | ||||
}, | }, | ||||
"adminlte-field-collection": { | "adminlte-field-collection": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
}, | }, | ||||
"adminlte-main": { | "adminlte-main": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/adminlte-main.e8feeffc.js" | "/build/adminlte-main.e8feeffc.js" | ||||
}, | }, | ||||
"sov-reminder": { | "sov-reminder": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/sov-reminder.27580486.js" | "/build/sov-reminder.27580486.js" | ||||
], | ], | ||||
"css": [ | "css": [ | ||||
}, | }, | ||||
"sov-ticket": { | "sov-ticket": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/sov-ticket.df76c7a0.js" | "/build/sov-ticket.df76c7a0.js" | ||||
] | ] | ||||
}, | }, | ||||
"app-backend": { | "app-backend": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | "/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | ||||
"/build/app-backend.9246973d.js" | "/build/app-backend.9246973d.js" | ||||
}, | }, | ||||
"app-frontend": { | "app-frontend": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | "/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | ||||
"/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | "/build/vendors-node_modules_core-js_modules_es_string_replace_js.06749256.js", | ||||
"/build/vendors-node_modules_jquery_src_jquery_js.2a8ff255.js", | "/build/vendors-node_modules_jquery_src_jquery_js.2a8ff255.js", | ||||
"/build/app-frontend.212543dd.js" | "/build/app-frontend.212543dd.js" | ||||
], | ], | ||||
"css": [ | "css": [ | ||||
"/build/app-frontend.1fba758f.css" | |||||
"/build/app-frontend.a126fd2d.css" | |||||
] | ] | ||||
}, | }, | ||||
"app-bulle": { | "app-bulle": { | ||||
"js": [ | "js": [ | ||||
"/build/runtime.564e1eda.js", | |||||
"/build/runtime.01c101e5.js", | |||||
"/build/vendors-node_modules_amcharts_amcharts4_charts_js-node_modules_amcharts_amcharts4_core_js-nod-e7c189.7a170faa.js", | "/build/vendors-node_modules_amcharts_amcharts4_charts_js-node_modules_amcharts_amcharts4_core_js-nod-e7c189.7a170faa.js", | ||||
"/build/app-bulle.08404383.js" | "/build/app-bulle.08404383.js" | ||||
] | ] |
"build/sov-ticket.js": "/build/sov-ticket.df76c7a0.js", | "build/sov-ticket.js": "/build/sov-ticket.df76c7a0.js", | ||||
"build/app-backend.css": "/build/app-backend.3d882954.css", | "build/app-backend.css": "/build/app-backend.3d882954.css", | ||||
"build/app-backend.js": "/build/app-backend.9246973d.js", | "build/app-backend.js": "/build/app-backend.9246973d.js", | ||||
"build/app-frontend.css": "/build/app-frontend.1fba758f.css", | |||||
"build/app-frontend.css": "/build/app-frontend.a126fd2d.css", | |||||
"build/app-frontend.js": "/build/app-frontend.212543dd.js", | "build/app-frontend.js": "/build/app-frontend.212543dd.js", | ||||
"build/app-bulle.js": "/build/app-bulle.08404383.js", | "build/app-bulle.js": "/build/app-bulle.08404383.js", | ||||
"build/runtime.js": "/build/runtime.564e1eda.js", | |||||
"build/runtime.js": "/build/runtime.01c101e5.js", | |||||
"build/pdfmake.js": "/build/pdfmake.fbf70324.js", | "build/pdfmake.js": "/build/pdfmake.fbf70324.js", | ||||
"build/canvg.js": "/build/canvg.5e04b23d.js", | "build/canvg.js": "/build/canvg.5e04b23d.js", | ||||
"build/xlsx.js": "/build/xlsx.05855660.js", | "build/xlsx.js": "/build/xlsx.05855660.js", |
<?php | |||||
namespace App\Controller\Admin; | |||||
use App\Entity\Block; | |||||
use Lc\SovBundle\Controller\AbstractAdminController as AbstractCrudController; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextEditorField; | |||||
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField; | |||||
use Lc\SovBundle\Field\StatusField; | |||||
class BlockCrudController extends AbstractCrudController | |||||
{ | |||||
public static function getEntityFqcn(): string | |||||
{ | |||||
return Block::class; | |||||
} | |||||
public function configureFields(string $pageName): iterable | |||||
{ | |||||
if ($this->isGranted("ROLE_SUPER_ADMIN")) { | |||||
$fields[] = TextField::new('devAlias'); | |||||
} | |||||
$fields[] = TextField::new('title')->setLabel('Titre'); | |||||
$fields[] = TextEditorField::new('description')->setLabel('Description')->hideOnIndex(); | |||||
$fields[] = StatusField::new('status'); | |||||
return $fields; | |||||
} | |||||
} |
namespace App\Controller\Admin; | namespace App\Controller\Admin; | ||||
use App\Entity\Block; | |||||
use App\Entity\CollectifData; | use App\Entity\CollectifData; | ||||
use App\Entity\Configuration; | use App\Entity\Configuration; | ||||
use App\Entity\Dream; | use App\Entity\Dream; | ||||
->setPermission(self::ROLE_SUPER_ADMIN), | ->setPermission(self::ROLE_SUPER_ADMIN), | ||||
MenuItem::linkToCrud('page', 'far fa-copy', Page::class) | MenuItem::linkToCrud('page', 'far fa-copy', Page::class) | ||||
->setPermission(self::ROLE_ADMIN), | ->setPermission(self::ROLE_ADMIN), | ||||
MenuItem::linkToCrud('blocs', 'fas fa-tags', Block::class) | |||||
->setPermission(self::ROLE_ADMIN), | |||||
]; | ]; | ||||
/*$this->setMenuIndexes($menuItems);*/ | /*$this->setMenuIndexes($menuItems);*/ |
namespace App\Controller\Frontend; | namespace App\Controller\Frontend; | ||||
use App\Repository\BlockStore; | |||||
use Doctrine\ORM\EntityManagerInterface; | |||||
class AboutController extends DefaultController | class AboutController extends DefaultController | ||||
{ | { | ||||
protected BlockStore $blockStore; | |||||
public function __construct( | |||||
EntityManagerInterface $em, | |||||
BlockStore $blockStore | |||||
) { | |||||
$this->blockStore = $blockStore; | |||||
parent::__construct($em); | |||||
} | |||||
public function about() | public function about() | ||||
{ | { | ||||
return $this->render('frontend/about.html.twig'); | |||||
$blockStartUp = $this->blockStore->getOneOnlineByDevAlias('about-startup'); | |||||
$blockStep1 = $this->blockStore->getOneOnlineByDevAlias('about-step1'); | |||||
$blockStep2 = $this->blockStore->getOneOnlineByDevAlias('about-step2'); | |||||
$blockStep3 = $this->blockStore->getOneOnlineByDevAlias('about-step3'); | |||||
$blockLabourage = $this->blockStore->getOneOnlineByDevAlias('about-labourage'); | |||||
$blockRecolt = $this->blockStore->getOneOnlineByDevAlias('about-recolt'); | |||||
$blockAccompagnement = $this->blockStore->getOneOnlineByDevAlias('about-accompagnement'); | |||||
$blockDemarche = $this->blockStore->getOneOnlineByDevAlias('about-demarche'); | |||||
$blockCoeur = $this->blockStore->getOneOnlineByDevAlias('about-coeur'); | |||||
return $this->render('frontend/about.html.twig', [ | |||||
'blockStartUp' => $blockStartUp, | |||||
'blockStep1' => $blockStep1, | |||||
'blockStep2' => $blockStep2, | |||||
'blockStep3' => $blockStep3, | |||||
'blockLabourage' => $blockLabourage, | |||||
'blockRecolt' => $blockRecolt, | |||||
'blockAccompagnement' => $blockAccompagnement, | |||||
'blockDemarche' => $blockDemarche, | |||||
'blockCoeur' => $blockCoeur, | |||||
]); | |||||
} | } | ||||
} | } |
use App\Entity\AbstractData; | use App\Entity\AbstractData; | ||||
use App\Form\SearchListForm; | use App\Form\SearchListForm; | ||||
use App\Repository\BlockStore; | |||||
use App\Repository\DreamStore; | use App\Repository\DreamStore; | ||||
use App\Repository\ProjectBoostStore; | use App\Repository\ProjectBoostStore; | ||||
use App\Repository\ProjectInspiringStore; | use App\Repository\ProjectInspiringStore; | ||||
protected ProjectInspiringStore $projectInspiringStore; | protected ProjectInspiringStore $projectInspiringStore; | ||||
protected TerritoryStore $territoryStore; | protected TerritoryStore $territoryStore; | ||||
protected ThematicStore $thematicStore; | protected ThematicStore $thematicStore; | ||||
protected BlockStore $blockStore; | |||||
protected PaginatorInterface $paginator; | protected PaginatorInterface $paginator; | ||||
protected Environment $templating; | protected Environment $templating; | ||||
protected ParameterBagInterface $parameterBag; | protected ParameterBagInterface $parameterBag; | ||||
ProjectInspiringStore $projectInspiringStore, | ProjectInspiringStore $projectInspiringStore, | ||||
TerritoryStore $territoryStore, | TerritoryStore $territoryStore, | ||||
ThematicStore $thematicStore, | ThematicStore $thematicStore, | ||||
BlockStore $blockStore, | |||||
PaginatorInterface $paginator, | PaginatorInterface $paginator, | ||||
Environment $templating, | Environment $templating, | ||||
ParameterBagInterface $parameterBag | ParameterBagInterface $parameterBag | ||||
$this->projectInspiringStore = $projectInspiringStore; | $this->projectInspiringStore = $projectInspiringStore; | ||||
$this->territoryStore = $territoryStore; | $this->territoryStore = $territoryStore; | ||||
$this->thematicStore = $thematicStore; | $this->thematicStore = $thematicStore; | ||||
$this->blockStore = $blockStore; | |||||
$this->paginator = $paginator; | $this->paginator = $paginator; | ||||
$this->templating = $templating; | $this->templating = $templating; | ||||
$this->parameterBag = $parameterBag; | $this->parameterBag = $parameterBag; | ||||
public function cartoInteractive() | public function cartoInteractive() | ||||
{ | { | ||||
$blockCartoInt = $this->blockStore->getOneOnlineByDevAlias('carto-int'); | |||||
return $this->render( | return $this->render( | ||||
'frontend/carto-int.html.twig', | 'frontend/carto-int.html.twig', | ||||
[ | [ | ||||
'blockCartoInt' => $blockCartoInt, | |||||
'nbContrib' => $this->countContrib() | 'nbContrib' => $this->countContrib() | ||||
] | ] | ||||
); | ); | ||||
public function cartoListe(Request $request) | public function cartoListe(Request $request) | ||||
{ | { | ||||
$blockCartoInt = $this->blockStore->getOneOnlineByDevAlias('carto-int'); | |||||
$resultArrayPagination = array(); | $resultArrayPagination = array(); | ||||
$form = $this->createForm(SearchListForm::class, null, [ | $form = $this->createForm(SearchListForm::class, null, [ | ||||
'method' => 'GET', | 'method' => 'GET', | ||||
[ | [ | ||||
'form' => $form->createView(), | 'form' => $form->createView(), | ||||
'nbContrib' => $this->countContrib(), | 'nbContrib' => $this->countContrib(), | ||||
'resultArray' => $resultArrayPagination | |||||
'resultArray' => $resultArrayPagination, | |||||
'blockCartoInt' => $blockCartoInt, | |||||
] | |||||
); | |||||
} | |||||
public function cartoCarte() | |||||
{ | |||||
$blockCartoInt = $this->blockStore->getOneOnlineByDevAlias('carto-int'); | |||||
$resultArray = $this->generateAllResultArray(); | |||||
$resultSortArray = array(); | |||||
$territoryArray = $this->territoryStore->get(); | |||||
foreach ($territoryArray as $territory) { | |||||
$resultSortArray[$territory->getDevAlias()] = | |||||
[ | |||||
AbstractData::TERRITORY => "", | |||||
AbstractData::CATEGORY_REVOLT => "0", | |||||
AbstractData::CATEGORY_DREAM => "0", | |||||
AbstractData::CATEGORY_PROJECTBOOST => "0", | |||||
AbstractData::CATEGORY_PROJECTINSPIRING => "0", | |||||
]; | |||||
} | |||||
foreach ($resultArray as $result) { | |||||
$className = (new ReflectionClass($result))->getShortName(); | |||||
if ($result->getIndividualData()) { | |||||
$devAliasTerritory = $result->getIndividualData()->getTerritory()->getDevAlias(); | |||||
$idTerritory = $result->getIndividualData()->getTerritory()->getId(); | |||||
} elseif ($result->getCollectifData()->getTerritory()) { | |||||
$devAliasTerritory = $result->getCollectifData()->getTerritory()->getDevAlias(); | |||||
$idTerritory = $result->getCollectifData()->getTerritory()->getId(); | |||||
} | |||||
if (empty($resultSortArray[$devAliasTerritory][AbstractData::TERRITORY])) { | |||||
$resultSortArray[$devAliasTerritory][AbstractData::TERRITORY] = $idTerritory; | |||||
} | |||||
$resultSortArray[$devAliasTerritory][$className] = $resultSortArray[$devAliasTerritory][$className] + 1; | |||||
} | |||||
return $this->render( | |||||
'frontend/carto-carte.html.twig', | |||||
[ | |||||
'resultSortArray' => $resultSortArray, | |||||
'nbContrib' => $this->countContrib(), | |||||
'blockCartoInt' => $blockCartoInt, | |||||
] | ] | ||||
); | ); | ||||
} | } | ||||
return array_merge($dreamArray, $revoltArray, $projectBoostArray, $projectInspiringArray); | return array_merge($dreamArray, $revoltArray, $projectBoostArray, $projectInspiringArray); | ||||
} | } | ||||
public function cartoCarte() | |||||
{ | |||||
$resultArray = $this->generateAllResultArray(); | |||||
$resultSortArray = array(); | |||||
$territoryArray = $this->territoryStore->get(); | |||||
foreach ($territoryArray as $territory) { | |||||
$resultSortArray[$territory->getDevAlias()] = | |||||
[ | |||||
AbstractData::TERRITORY => "", | |||||
AbstractData::CATEGORY_REVOLT => "0", | |||||
AbstractData::CATEGORY_DREAM => "0", | |||||
AbstractData::CATEGORY_PROJECTBOOST => "0", | |||||
AbstractData::CATEGORY_PROJECTINSPIRING => "0", | |||||
]; | |||||
} | |||||
foreach ($resultArray as $result) { | |||||
$className = (new ReflectionClass($result))->getShortName(); | |||||
if ($result->getIndividualData()) { | |||||
$devAliasTerritory = $result->getIndividualData()->getTerritory()->getDevAlias(); | |||||
$idTerritory = $result->getIndividualData()->getTerritory()->getId(); | |||||
} elseif ($result->getCollectifData()->getTerritory()) { | |||||
$devAliasTerritory = $result->getCollectifData()->getTerritory()->getDevAlias(); | |||||
$idTerritory = $result->getCollectifData()->getTerritory()->getId(); | |||||
} | |||||
if (empty($resultSortArray[$devAliasTerritory][AbstractData::TERRITORY])) { | |||||
$resultSortArray[$devAliasTerritory][AbstractData::TERRITORY] = $idTerritory; | |||||
} | |||||
$resultSortArray[$devAliasTerritory][$className] = $resultSortArray[$devAliasTerritory][$className] + 1; | |||||
} | |||||
return $this->render( | |||||
'frontend/carto-carte.html.twig', | |||||
[ | |||||
'resultSortArray' => $resultSortArray, | |||||
'nbContrib' => $this->countContrib() | |||||
] | |||||
); | |||||
} | |||||
public function exportPdf($resultArray = array()) | public function exportPdf($resultArray = array()) | ||||
{ | { | ||||
// Configure Dompdf according to your needs | // Configure Dompdf according to your needs |
use App\Entity\IndividualData; | use App\Entity\IndividualData; | ||||
use App\Form\IndividualDataForm; | use App\Form\IndividualDataForm; | ||||
use App\Repository\BlockStore; | |||||
use Doctrine\ORM\EntityManagerInterface; | use Doctrine\ORM\EntityManagerInterface; | ||||
use Symfony\Component\HttpFoundation\Request; | use Symfony\Component\HttpFoundation\Request; | ||||
use Symfony\Component\HttpFoundation\Response; | use Symfony\Component\HttpFoundation\Response; | ||||
class ContribuateController extends DefaultController | class ContribuateController extends DefaultController | ||||
{ | { | ||||
public function __construct( | |||||
EntityManagerInterface $em, | |||||
BlockStore $blockStore | |||||
) { | |||||
$this->blockStore = $blockStore; | |||||
parent::__construct($em); | |||||
} | |||||
public function contribuate(Request $request, EntityManagerInterface $entityManager): Response | public function contribuate(Request $request, EntityManagerInterface $entityManager): Response | ||||
{ | { | ||||
$blockContrib = $this->blockStore->getOneOnlineByDevAlias('contribution-individuel'); | |||||
$individualData = new IndividualData(); | $individualData = new IndividualData(); | ||||
$form = $this->createForm(IndividualDataForm::class, $individualData, ["context" => "frontend"]); | $form = $this->createForm(IndividualDataForm::class, $individualData, ["context" => "frontend"]); | ||||
'frontend/contribuate.html.twig', | 'frontend/contribuate.html.twig', | ||||
[ | [ | ||||
'nbContrib' => $this->countContrib(), | 'nbContrib' => $this->countContrib(), | ||||
'form' => $form->createView() | |||||
'form' => $form->createView(), | |||||
'blockContrib' => $blockContrib, | |||||
] | ] | ||||
); | ); | ||||
} | } |
namespace App\Controller\Frontend; | namespace App\Controller\Frontend; | ||||
use App\Repository\BlockStore; | |||||
use Doctrine\ORM\EntityManagerInterface; | |||||
class HomeController extends DefaultController | class HomeController extends DefaultController | ||||
{ | { | ||||
protected BlockStore $blockStore; | |||||
public function __construct( | |||||
EntityManagerInterface $em, | |||||
BlockStore $blockStore | |||||
) { | |||||
$this->blockStore = $blockStore; | |||||
parent::__construct($em); | |||||
} | |||||
public function home() | public function home() | ||||
{ | { | ||||
return $this->render('frontend/home.html.twig'); | |||||
$blockCarto = $this->blockStore->getOneOnlineByDevAlias('home-carto'); | |||||
$blockPlanisphere = $this->blockStore->getOneOnlineByDevAlias('home-planisphere'); | |||||
$blockRessourcerie = $this->blockStore->getOneOnlineByDevAlias('home-ressourcerie'); | |||||
return $this->render('frontend/home.html.twig', [ | |||||
'blockCarto' => $blockCarto, | |||||
'blockPlanisphere' => $blockPlanisphere, | |||||
'blockRessourcerie' => $blockRessourcerie, | |||||
]); | |||||
} | } | ||||
} | } |
<?php | |||||
namespace App\Entity; | |||||
use App\Repository\BlockRepository; | |||||
use Doctrine\ORM\Mapping as ORM; | |||||
use Lc\SovBundle\Doctrine\EntityInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\StatusInterface; | |||||
use Lc\SovBundle\Doctrine\Extension\StatusTrait; | |||||
/** | |||||
* @ORM\Entity(repositoryClass=BlockRepository::class) | |||||
*/ | |||||
class Block implements EntityInterface, StatusInterface | |||||
{ | |||||
use StatusTrait; | |||||
/** | |||||
* @ORM\Id | |||||
* @ORM\GeneratedValue | |||||
* @ORM\Column(type="integer") | |||||
*/ | |||||
private $id; | |||||
/** | |||||
* @ORM\Column(type="string", length=255) | |||||
*/ | |||||
private $devAlias; | |||||
/** | |||||
* @ORM\Column(type="string", length=255) | |||||
*/ | |||||
private $title; | |||||
/** | |||||
* @ORM\Column(type="text", nullable=true) | |||||
*/ | |||||
private $description; | |||||
public function __toString() | |||||
{ | |||||
return $this->title; | |||||
} | |||||
public function getId(): ?int | |||||
{ | |||||
return $this->id; | |||||
} | |||||
public function getDevAlias(): ?string | |||||
{ | |||||
return $this->devAlias; | |||||
} | |||||
public function setDevAlias(string $devAlias): self | |||||
{ | |||||
$this->devAlias = $devAlias; | |||||
return $this; | |||||
} | |||||
public function getTitle(): ?string | |||||
{ | |||||
return $this->title; | |||||
} | |||||
public function setTitle(string $title): self | |||||
{ | |||||
$this->title = $title; | |||||
return $this; | |||||
} | |||||
public function getDescription(): ?string | |||||
{ | |||||
return $this->description; | |||||
} | |||||
public function setDescription(?string $description): self | |||||
{ | |||||
$this->description = $description; | |||||
return $this; | |||||
} | |||||
} |
return $this; | return $this; | ||||
} | } | ||||
public function getIndividualData(): ?IndividualData | |||||
public function getIndividualData(): ?Collection | |||||
{ | { | ||||
return $this->individualData; | return $this->individualData; | ||||
} | } |
<?php | |||||
namespace App\Repository; | |||||
use App\Entity\Block; | |||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; | |||||
use Doctrine\Persistence\ManagerRegistry; | |||||
/** | |||||
* @method Block|null find($id, $lockMode = null, $lockVersion = null) | |||||
* @method Block|null findOneBy(array $criteria, array $orderBy = null) | |||||
* @method Block[] findAll() | |||||
* @method Block[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) | |||||
*/ | |||||
class BlockRepository extends ServiceEntityRepository | |||||
{ | |||||
public function __construct(ManagerRegistry $registry) | |||||
{ | |||||
parent::__construct($registry, Block::class); | |||||
} | |||||
} |
<?php | |||||
namespace App\Repository; | |||||
use Knp\Component\Pager\PaginatorInterface; | |||||
use Lc\SovBundle\Repository\AbstractRepositoryQuery; | |||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
class BlockRepositoryQuery extends AbstractRepositoryQuery implements RepositoryQueryInterface | |||||
{ | |||||
public function __construct(BlockRepository $repository, PaginatorInterface $paginator) | |||||
{ | |||||
parent::__construct($repository, 'r', $paginator); | |||||
} | |||||
} |
<?php | |||||
namespace App\Repository; | |||||
use Lc\SovBundle\Repository\AbstractStore; | |||||
use Lc\SovBundle\Repository\RepositoryQueryInterface; | |||||
use Lc\SovBundle\Repository\StoreInterface; | |||||
class BlockStore extends AbstractStore implements StoreInterface | |||||
{ | |||||
public function __construct(BlockRepositoryQuery $query) | |||||
{ | |||||
$this->query = $query; | |||||
} | |||||
public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface | |||||
{ | |||||
$query->orderBy('id'); | |||||
return $query; | |||||
} | |||||
public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface | |||||
{ | |||||
return $query; | |||||
} | |||||
public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface | |||||
{ | |||||
return $query; | |||||
} | |||||
} |
</div> | </div> | ||||
<div class="row"> | <div class="row"> | ||||
<div class="col-3"> | <div class="col-3"> | ||||
<a class="download-plaq" target="_blank" href="https://www.aux-actes-citoyens.fr/assets/pdf/AAC-Fiche-Pratique-Aux-Actes-Citoyens.pdf" title="Télécharger la plaquette">Télécharger la plaquette</a> | |||||
<a class="download-plaq" target="_blank" | |||||
href="https://www.aux-actes-citoyens.fr/assets/pdf/AAC-Fiche-Pratique-Aux-Actes-Citoyens.pdf" | |||||
title="Télécharger la plaquette">Télécharger la plaquette</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="container container-startup"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<img src="{{ 'assets/img/SUT-A-propos.png' }}" alt="start up"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2>Une démarche labellisée Start Up de Territoire</h2> | |||||
<p> | |||||
Aux Actes Citoyens est labelissé Start Up de Territoire pour le | |||||
Nord Franche-Comté. Cette démarche bénéficie donc du soutient des autres territoires en France, | |||||
mais également des | |||||
solutions qui ont émergé en France et qui sont inspirantes | |||||
pour le territoire. | |||||
</p> | |||||
<a class="other-startup link-slide" target="_blank" href="http://startupdeterritoire.fr" title="Les autres start up">Découvrir les autres Start Up de | |||||
Territoires</a> | |||||
{% if blockStartUp %} | |||||
<div class="container container-startup"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<img src="{{ 'assets/img/SUT-A-propos.png' }}" alt="start up"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2>{{ blockStartUp.title }}</h2> | |||||
<div class="description"> | |||||
{{ blockStartUp.description|raw }} | |||||
</div> | |||||
<a class="other-startup link-slide" target="_blank" href="http://startupdeterritoire.fr" | |||||
title="Les autres start up">Découvrir les autres Start Up de | |||||
Territoires</a> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
</div> | </div> | ||||
<div class="container container-manifeste"> | <div class="container container-manifeste"> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="row row-step"> | <div class="row row-step"> | ||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape1-Labourage-Blanc.png' }}" alt="Etape1"> | |||||
<h3>LE LABOURAGE</h3> | |||||
<p> | |||||
(sept. 2021 à février 2022) | |||||
Collecte des besoins, grâce à | |||||
des ateliers sur les différents | |||||
territoires ainsi qu’une démarche en ligne. | |||||
</p> | |||||
</div> | |||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape2-EvenementBlanc.png' }}" alt="Etape2"> | |||||
<h3>LA RÉCOLTE DES SOLUTIONS</h3> | |||||
<p>(avril 2022) | |||||
Organisation d’un grand événement à l’échelle du Nord | |||||
Franche-Comté pour inventer les | |||||
solutions de demain.</p> | |||||
</div> | |||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape3-Accompagnement-Blanc.png' }}" alt="Etape3"> | |||||
<h3>L’ACCOMPAGNEMENT</h3> | |||||
<p> | |||||
(à partir de juin 2022) | |||||
Compagnonnage des solutions | |||||
par un réseau d’acteurs de l’accompagnement. | |||||
</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div id="labourage" class="container container-step1"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<img class="logo-labourage" src="{{ 'assets/img/Labourage-Img.png' }}" alt="Labourage"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2> | |||||
<img class="picto-labourage" src="{{ 'assets/img/Picto-Labourage-Vert.png' }}" alt="Labourage"> | |||||
Le labourage | |||||
</h2> | |||||
<p> | |||||
Etape permettant de aire émerger “des Révoltes et des | |||||
Rêves” pour chaque territoire en se rapprochant d’un | |||||
maximum de personnes les plus diverses possibles et | |||||
en s’appuyant sur les acteurs en place pour mobiliser et | |||||
concerter les publics. L’objectif : faire émerger les thé- | |||||
matiques des ateliers de recherche de solutions. | |||||
</p> | |||||
<a class="participate" href="{{ path('app_contribuate') }}" title="Participer à la concertation">Participer à la concertation</a> | |||||
{% if blockStep1 %} | |||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape1-Labourage-Blanc.png' }}" alt="Etape1"> | |||||
<h3>{{ blockStep1.title }}</h3> | |||||
<div class="description"> | |||||
{{ blockStep1.description|raw }} | |||||
</div> | |||||
</div> | |||||
{% endif %} | |||||
{% if blockStep2 %} | |||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape2-EvenementBlanc.png' }}" alt="Etape2"> | |||||
<h3>{{ blockStep2.title }}</h3> | |||||
<div class="description"> | |||||
{{ blockStep2.description|raw }} | |||||
</div> | |||||
</div> | |||||
{% endif %} | |||||
{% if blockStep3 %} | |||||
<div class="col-4"> | |||||
<img src="{{ 'assets/img/Etape3-Accompagnement-Blanc.png' }}" alt="Etape3"> | |||||
<h3>{{ blockStep3.title }}</h3> | |||||
<div class="description"> | |||||
{{ blockStep3.description|raw }} | |||||
</div> | |||||
</div> | |||||
{% endif %} | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div id="recolte" class="bloc-recolte"> | |||||
<div class="container"> | |||||
{% if blockLabourage %} | |||||
<div id="labourage" class="container container-step1"> | |||||
<div class="row"> | <div class="row"> | ||||
<div class="col-7"> | |||||
<div class="col-6"> | |||||
<img class="logo-labourage" src="{{ 'assets/img/Labourage-Img.png' }}" alt="Labourage"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2> | <h2> | ||||
<img class="picto-labourage" src="{{ 'assets/img/Picto-Evenement-Vert.png' }}" | |||||
alt="Evenement vert"> | |||||
La récolte des solutions | |||||
<img class="picto-labourage" src="{{ 'assets/img/Picto-Labourage-Vert.png' }}" alt="Labourage"> | |||||
{{ blockLabourage.title }} | |||||
</h2> | </h2> | ||||
<p> | |||||
Un événement d’une journée pour faire émerger | |||||
des solutions sous forme d’initiatives nouvelles sur | |||||
chaque territoire. Au cours de cet événement, des | |||||
ateliers rassemblant citoyens, entreprises acteurs de | |||||
l’ESS et institutions, pour un territoire qui invente collectivement son avenir. | |||||
</p> | |||||
<div class="subscribe-event"> | |||||
{{ macro.email_contact("S'INSCRIRE A L’ÉVÉNEMENT", "S'inscrire à l'événement (La récolte des solutions)") }} | |||||
<div class="description"> | |||||
{{ blockLabourage.description|raw }} | |||||
</div> | </div> | ||||
</div> | |||||
<div class="col-5"> | |||||
<img class="logo-event" src="{{ 'assets/img/Evenement-Img.png' }}" alt="Evenement"> | |||||
<a class="participate" href="{{ path('app_contribuate') }}" title="Participer à la concertation">Participer | |||||
à la concertation</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div id="accompagnement" class="container container-ressource"> | |||||
<div class="row"> | |||||
<div class="col-5"> | |||||
<img class="logo-ressource" src="{{ 'assets/img/Ressourcerie-Img.png' }}" alt="Ressourcerie"> | |||||
</div> | |||||
<div class="col-7"> | |||||
<h2> | |||||
<img class="picto-ressource" src="{{ 'assets/img/Picto-Accompagnement-Vert.png' }}" | |||||
alt="Accompagnement vert"> | |||||
L’accompagnement | |||||
</h2> | |||||
<p> | |||||
A partir de juin 2022, toutes les solutions qui ont émergé pourront être accompagné par les acteurs | |||||
de l’accompagnement à la création d’entreprise. Vous pourrez | |||||
consulter la ressourcerie pour connaître ses acteurs | |||||
et bénéficier des ressources facilitant le montage de | |||||
projets. | |||||
</p> | |||||
<div class="contribuate"> | |||||
{{ macro.email_contact("CONTRIBUER A LA RESSOURCERIE", "Contribuer à la ressourcerie") }} | |||||
{% if blockRecolt %} | |||||
<div id="recolte" class="bloc-recolte"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-7"> | |||||
<h2> | |||||
<img class="picto-labourage" src="{{ 'assets/img/Picto-Evenement-Vert.png' }}" | |||||
alt="Evenement vert"> | |||||
{{ blockRecolt.title }} | |||||
</h2> | |||||
<div class="description"> | |||||
{{ blockRecolt.description|raw }} | |||||
</div> | |||||
<div class="subscribe-event"> | |||||
{{ macro.email_contact("S'INSCRIRE A L’ÉVÉNEMENT", "S'inscrire à l'événement (La récolte des solutions)") }} | |||||
</div> | |||||
</div> | |||||
<div class="col-5"> | |||||
<img class="logo-event" src="{{ 'assets/img/Evenement-Img.png' }}" alt="Evenement"> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div class="bloc-coop-cit"> | |||||
<div class="container container-coop"> | |||||
<div class="row justify-content-center"> | |||||
<div class="col-7"> | |||||
<h2>Une démarche portée par la Coopérative des Citoyens...</h2> | |||||
</div> | |||||
</div> | |||||
{% if blockAccompagnement %} | |||||
<div id="accompagnement" class="container container-ressource"> | |||||
<div class="row"> | <div class="row"> | ||||
<div class="col-8"> | |||||
<img class="logo-coop" src="{{ 'assets/img/LaCoop-Img.png' }}" alt="Coopérative des Citoyens"> | |||||
<div class="col-5"> | |||||
<img class="logo-ressource" src="{{ 'assets/img/Ressourcerie-Img.png' }}" alt="Ressourcerie"> | |||||
</div> | </div> | ||||
<div class="col-4"> | |||||
<p> | |||||
Association d’éducation populaire | |||||
et de facilitation en intelligence | |||||
collective, la Coopérative des ci- | |||||
toyens accompagne les citoyens, | |||||
collectivités et acteurs de l’ESS | |||||
dans leur pouvoir d’agir et leur | |||||
coopération. Basée à Belfort, elle | |||||
porte cette initiative avec d’autres | |||||
acteurs de l’équipe coeur. | |||||
</p> | |||||
<a class="more" target="_blank" href="https://www.lacooperativedescitoyens.fr " title="En savoir plus">En savoir plus sur la Coop</a> | |||||
<div class="col-7"> | |||||
<h2> | |||||
<img class="picto-ressource" src="{{ 'assets/img/Picto-Accompagnement-Vert.png' }}" | |||||
alt="Accompagnement vert"> | |||||
{{ blockAccompagnement.title }} | |||||
</h2> | |||||
<div class="description"> | |||||
{{ blockAccompagnement.description|raw }} | |||||
</div> | |||||
<div class="contribuate"> | |||||
{{ macro.email_contact("CONTRIBUER A LA RESSOURCERIE", "Contribuer à la ressourcerie") }} | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
{% endif %} | |||||
<div id="team-coeur" class="container container-coeur"> | |||||
<div class="row justify-content-center"> | |||||
<div class="col-10"> | |||||
<h2>... et accompagnée par l’équipe cœur</h2> | |||||
<div class="bloc-coop-cit"> | |||||
{% if blockDemarche %} | |||||
<div class="container container-coop"> | |||||
<div class="row justify-content-center"> | |||||
<div class="col-7"> | |||||
<h2>{{ blockDemarche.title }}</h2> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="col-5"> | |||||
<p> | |||||
Condition essentielle à la réussite de la démarche, un | |||||
réseau d’acteurs de l’emploi, de l’insertion, de la transi- | |||||
tion écologique et de la création d’entreprises se mobi- | |||||
lisent avec nous pour mettre en place cette démarche | |||||
unique sur le Nord Franche-Comté. Vous êtes acteurs | |||||
impliqués sur le territoire et vous aussi vous souhaitez | |||||
participer à la mise en oeuvre de cette concertation, | |||||
n’hésitez pas à nous rejoindre ! | |||||
</p> | |||||
<div class="join-coeur"> | |||||
{{ macro.email_contact("REJOINDRE L’ÉQUIPE CŒUR", "Rejoindre l'équipe coeur") }} | |||||
<div class="row"> | |||||
<div class="col-8"> | |||||
<img class="logo-coop" src="{{ 'assets/img/LaCoop-Img.png' }}" alt="Coopérative des Citoyens"> | |||||
</div> | |||||
<div class="col-4"> | |||||
<div class="description"> | |||||
{{ blockDemarche.description|raw }} | |||||
</div> | |||||
<a class="more" target="_blank" href="https://www.lacooperativedescitoyens.fr " | |||||
title="En savoir plus">En savoir plus sur la Coop</a> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="col-5"> | |||||
<img class="logo-coeur" src="{{ 'assets/img/Equipe-Coeur-Img.png' }}" alt="coeur"> | |||||
</div> | |||||
{% endif %} | |||||
{% if blockCoeur %} | |||||
<div id="team-coeur" class="container container-coeur"> | |||||
<div class="row justify-content-center"> | |||||
<div class="col-10"> | |||||
<h2>{{ blockCoeur.title }}</h2> | |||||
</div> | |||||
<div class="col-5"> | |||||
<div class="description"> | |||||
{{ blockCoeur.description|raw }} | |||||
</div> | |||||
<div class="join-coeur"> | |||||
{{ macro.email_contact("REJOINDRE L’ÉQUIPE CŒUR", "Rejoindre l'équipe coeur") }} | |||||
</div> | |||||
</div> | |||||
<div class="col-5"> | |||||
<img class="logo-coeur" src="{{ 'assets/img/Equipe-Coeur-Img.png' }}" alt="coeur"> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
</div> | </div> | ||||
<div class="container container-funded"> | <div class="container container-funded"> |
{% endblock %} | {% endblock %} | ||||
{% block body %} | {% block body %} | ||||
<div class="bloc-carto-revo"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h1>La cartographie r<span>ê</span>volutionnaire</h1> | |||||
<h2>Partez à la découverte des besoins des citoyens du Nord Franche-Comté !</h2> | |||||
<p>Cette cartographie interactive est réalisée grâce à la | |||||
consultation sur le terrain et en ligne des citoyens et plus | |||||
particulièrement des personnes exclues du débat public, | |||||
mais aussi des acteurs institutionnels, du monde éco- | |||||
nomique et de l’ESS. Avec 4 thématiques de questions | |||||
: leurs révoltes, leurs rêves, les actions existantes qu’ils | |||||
aimeraient voir se développer et des actions d’ailleurs qui | |||||
les inspirent !</p> | |||||
</div> | |||||
<div class="col-6"> | |||||
<img class="perso-aac" src="{{ 'assets/img/Visuel-Cartographie.png' }}" alt="cartographie"> | |||||
<div class="bloc-contrib"> | |||||
<div class="nb-contrib"> | |||||
{{ nbContrib }} | |||||
{% if blockCartoInt %} | |||||
<div class="bloc-carto-revo"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h1>La cartographie r<span>ê</span>volutionnaire</h1> | |||||
<h2>{{ blockCartoInt.title }}</h2> | |||||
<div class="description"> | |||||
{{ blockCartoInt.description|raw }} | |||||
</div> | </div> | ||||
<div class="contrib"> | |||||
contributions | |||||
</div> | |||||
<div class="col-6"> | |||||
<img class="perso-aac" src="{{ 'assets/img/Visuel-Cartographie.png' }}" alt="cartographie"> | |||||
<div class="bloc-contrib"> | |||||
<div class="nb-contrib"> | |||||
{{ nbContrib }} | |||||
</div> | |||||
<div class="contrib"> | |||||
contributions | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div class="container bloc-carto"> | <div class="container bloc-carto"> | ||||
<div class="row"> | <div class="row"> | ||||
<div class="col-4"> | <div class="col-4"> | ||||
<a href="{{ path('app_carto_interactive') }}#carto-int" title="cartographie interactive" class="box-carto"> | |||||
<a href="{{ path('app_carto_interactive') }}#carto-int" title="cartographie interactive" | |||||
class="box-carto"> | |||||
<div> | <div> | ||||
<img src="{{ 'assets/img/Picto-Cartographie-Interactive.png' }}" alt=""> | <img src="{{ 'assets/img/Picto-Cartographie-Interactive.png' }}" alt=""> | ||||
</div> | </div> | ||||
</a> | </a> | ||||
</div> | </div> | ||||
<div class="col-4"> | <div class="col-4"> | ||||
<a href="{{ path('app_carto_carte') }}#carto-carte" title="Une carte du Nord Franche-Comté interactive " class="box-carto"> | |||||
<a href="{{ path('app_carto_carte') }}#carto-carte" title="Une carte du Nord Franche-Comté interactive " | |||||
class="box-carto"> | |||||
<div> | <div> | ||||
<img src="{{ 'assets/img/Picto-Carto-Territoire.png' }}" alt=""> | <img src="{{ 'assets/img/Picto-Carto-Territoire.png' }}" alt=""> | ||||
</div> | </div> |
{% endblock %} | {% endblock %} | ||||
{% block body %} | {% block body %} | ||||
<div class="bloc-revolt-dream"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h1>Nos révoltes et nos rêves pour notre territoire</h1> | |||||
<h2>Afin de rechercher des solutions concrètes pour ...</h2> | |||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, | |||||
sed do eiusmod tempor incididunt ut labore et dolore ma- | |||||
gna aliqua. Ut enim ad minim veniam, quis nostrud exer- | |||||
citation ullamco laboris nisi ut aliquip ex ea commodo | |||||
consequat. Duis aute irure dolor in reprehenderit in volup- | |||||
tate velit esse cillum dolore eu fugiat nu. mco laboris nisi | |||||
ut aliquip ex ea commodo consequat. Duis aute irure do- | |||||
lor in reprehenderit in voluptate velit esse cillum dolore eu | |||||
fugiat nu.</p> | |||||
</div> | |||||
<div class="col-6"> | |||||
<img class="carto-dream" src="{{ 'assets/img/Cartographie-Reve.png' }}" alt="cartographie"> | |||||
<div class="bloc-contrib"> | |||||
<div class="you-are"> | |||||
Vous êtes le : | |||||
</div> | |||||
<div class="nb-contrib"> | |||||
{{ nbContrib }} | |||||
</div> | |||||
<div class="contrib"> | |||||
contributeurs | |||||
{% if blockContrib %} | |||||
<div class="bloc-revolt-dream"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h1>Nos révoltes et nos rêves pour notre territoire</h1> | |||||
<h2>{{ blockContrib.title }}</h2> | |||||
<div class="description">{{ blockContrib.description|raw }}</div> | |||||
</div> | |||||
<div class="col-6"> | |||||
<img class="carto-dream" src="{{ 'assets/img/Cartographie-Reve.png' }}" alt="cartographie"> | |||||
<div class="bloc-contrib"> | |||||
<div class="you-are"> | |||||
Vous êtes le : | |||||
</div> | |||||
<div class="nb-contrib"> | |||||
{{ nbContrib }} | |||||
</div> | |||||
<div class="contrib"> | |||||
contributeurs | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div class="container bloc-form"> | <div class="container bloc-form"> | ||||
<div class="row"> | <div class="row"> |
</div> | </div> | ||||
</div> | </div> | ||||
<div class="bloc-cartographie"> | |||||
<div class="container"> | |||||
<div class="row frame-yellow"> | |||||
<div class="col-6"> | |||||
<img class="cartographie" src="{{ 'assets/img/Cartographie-Reve.png' }}" alt="cartographie"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2>La cartographie r<span>ê</span>volutionnaire</h2> | |||||
<p>Pour mieux comprendre les besoins du Nord Franche-Comté, | |||||
cette cartographie est réalisée grâce à la consultation sur le | |||||
terrain et en ligne des citoyens et plus particulièrement des | |||||
personnes exclues du débat public, mais aussi des acteurs | |||||
institutionnels, du monde économique et de l’ESS.</p> | |||||
<a class="link-carto link-slide" href="{{ path('app_carto_interactive') }}" title="Découvrir la cartographie">Découvrir la cartographie</a> | |||||
<a class="link-concert" href="" title="Participer à la concertation">Participer à la concertation</a> | |||||
{% if blockCarto %} | |||||
<div class="bloc-cartographie"> | |||||
<div class="container"> | |||||
<div class="row frame-yellow"> | |||||
<div class="col-6"> | |||||
<img class="cartographie" src="{{ 'assets/img/Cartographie-Reve.png' }}" alt="cartographie"> | |||||
</div> | |||||
<div class="col-6"> | |||||
<h2>La cartographie r<span>ê</span>volutionnaire</h2> | |||||
<div class="description"> | |||||
{{ blockCarto.description|raw }} | |||||
</div> | |||||
<a class="link-carto link-slide" href="{{ path('app_carto_interactive') }}" | |||||
title="Découvrir la cartographie">Découvrir la cartographie</a> | |||||
<a class="link-concert" href="" title="Participer à la concertation">Participer à la | |||||
concertation</a> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div id="planisphere" class="bloc-planisphere"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-12"> | |||||
<h2>Le planisphère des <span>S</span>olutions</h2> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<img src="{{ 'assets/img/Visuel-Affiche.png' }}" alt="affiche"> | |||||
</div> | |||||
<div class="col-6 col-text"> | |||||
<p> | |||||
Nous vous donnons rendez-vous le <span class="bold">19 avril 2022</span> | |||||
pour construire avec nous les solutions pour le Nord | |||||
Franche-Comté. | |||||
</p> | |||||
<p> | |||||
Une journée unique où citoyens, associations, entreprises | |||||
et collectivités se réuniront pour imaginer des solutions | |||||
concrètes aux besoins révélés lors du laborage. | |||||
</p> | |||||
<p class="bold"> | |||||
Nous avons besoin de chacun d’entre vous ! Alors, | |||||
rejoignez-nous et inscrivez-vous à ce rendez-vous | |||||
unique ! | |||||
</p> | |||||
<div class="subscribe"> | |||||
{{ macro.email_contact("S'INSCRIRE A L’ÉVÉNEMENT", "S'inscrire à l'événement (Le planisphère des Solutions)") }} | |||||
{% if blockPlanisphere %} | |||||
<div id="planisphere" class="bloc-planisphere"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-12"> | |||||
<h2>Le planisphère des <span>S</span>olutions</h2> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<img src="{{ 'assets/img/Visuel-Affiche.png' }}" alt="affiche"> | |||||
</div> | |||||
<div class="col-6 col-text description"> | |||||
{{ blockPlanisphere.description|raw }} | |||||
<div class="subscribe"> | |||||
{{ macro.email_contact("S'INSCRIRE A L’ÉVÉNEMENT", "S'inscrire à l'événement (Le planisphère des Solutions)") }} | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
<div id="ressourcerie" class="bloc-ressourcerie"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h2>Ressourcerie</h2> | |||||
<p>A partir de juin 2022, vous pourrez découvrir la Res- | |||||
sourcerie «Aux Actes Citoyens» qui permettra à tous de | |||||
connaître la manière de créer un projet, de l’animer, | |||||
des formations, des contacts de partenaires et encore | |||||
plein d’autres choses ! Vous souhaitez contriber à cette | |||||
ressourcerie, n’hésitez pas à nous contacter | |||||
</p> | |||||
<div class="contribuate"> | |||||
{{ macro.email_contact("CONTRIBUER A LA RESSOURCERIE", "Contribuer à la ressourcerie") }} | |||||
{% if blockRessourcerie %} | |||||
<div id="ressourcerie" class="bloc-ressourcerie"> | |||||
<div class="container"> | |||||
<div class="row"> | |||||
<div class="col-6"> | |||||
<h2>{{ blockRessourcerie.title }}</h2> | |||||
<div class="description"> | |||||
{{ blockRessourcerie.description|raw }} | |||||
</div> | |||||
<div class="contribuate"> | |||||
{{ macro.email_contact("CONTRIBUER A LA RESSOURCERIE", "Contribuer à la ressourcerie") }} | |||||
</div> | |||||
</div> | |||||
<div class="col-6"> | |||||
<img class="ressourcerie" src="{{ 'assets/img/Ressourcerie.png' }}" alt="ressourcerie"> | |||||
</div> | </div> | ||||
</div> | |||||
<div class="col-6"> | |||||
<img class="ressourcerie" src="{{ 'assets/img/Ressourcerie.png' }}" alt="ressourcerie"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | |||||
{% endif %} | |||||
{% endblock %} | {% endblock %} |
thematic: Thématiques | thematic: Thématiques | ||||
subthematic: Sous-thémes | subthematic: Sous-thémes | ||||
configuration: Configuration | configuration: Configuration | ||||
blocs: Blocs | |||||
entity: | entity: | ||||
User: | User: | ||||
fields: | fields: | ||||
Configuration: | Configuration: | ||||
label_plurial: Les configurations | label_plurial: Les configurations | ||||
label: Configuration | label: Configuration | ||||
Block: | |||||
label: Bloc | |||||
label_plurial: Blocs | |||||
form: | form: | ||||
field: | field: | ||||
dream: | dream: |