@@ -60,16 +60,15 @@ | |||
font-size: 40px; | |||
} | |||
p { | |||
.description { | |||
font-size: 17px; | |||
} | |||
.other-startup { | |||
color: $green; | |||
color: $orange; | |||
font-size: 20px; | |||
display: inline-block; | |||
margin-top: 20px; | |||
margin-bottom: 30px; | |||
font-weight: bold; | |||
margin-bottom: 100px; | |||
} | |||
@@ -122,7 +121,7 @@ | |||
margin-top: 30px; | |||
} | |||
p { | |||
.description { | |||
width: 80%; | |||
display: inline-block; | |||
} | |||
@@ -245,7 +244,7 @@ | |||
font-size: 40px; | |||
} | |||
p { | |||
.description { | |||
margin-top: 50px; | |||
} | |||
@@ -7,11 +7,11 @@ img { | |||
max-height: 100%; | |||
} | |||
li, p, a, select, option { | |||
li, p, a, select, option, .description { | |||
font-family: FranklinGothic; | |||
} | |||
p { | |||
p, .description { | |||
font-size: 20px; | |||
} | |||
@@ -22,11 +22,12 @@ | |||
margin-bottom: 30px; | |||
} | |||
p { | |||
.description { | |||
color: $orange; | |||
font-style: italic; | |||
font-size: 20px; | |||
margin-bottom: 50px; | |||
font-family: FranklinGothic; | |||
} | |||
.bloc-contrib { |
@@ -22,11 +22,12 @@ | |||
margin-bottom: 30px; | |||
} | |||
p { | |||
.description { | |||
color: $orange; | |||
font-style: italic; | |||
font-size: 20px; | |||
margin-bottom: 50px; | |||
font-family: FranklinGothic; | |||
} | |||
.carto-dream { |
@@ -0,0 +1,32 @@ | |||
<?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'); | |||
} | |||
} |
@@ -0,0 +1,35 @@ | |||
<?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)'); | |||
} | |||
} |
@@ -0,0 +1,31 @@ | |||
<?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'); | |||
} | |||
} |
@@ -2,7 +2,7 @@ | |||
"entrypoints": { | |||
"adminlte-plugins": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | |||
@@ -17,7 +17,7 @@ | |||
}, | |||
"adminlte-index": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | |||
@@ -30,7 +30,7 @@ | |||
}, | |||
"adminlte-form": { | |||
"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_modules_es_array_find_js.5b9cb885.js", | |||
"/build/adminlte-form.4079807b.js" | |||
@@ -41,7 +41,7 @@ | |||
}, | |||
"adminlte-sort": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | |||
@@ -55,7 +55,7 @@ | |||
}, | |||
"adminlte-field-filemanager": { | |||
"js": [ | |||
"/build/runtime.564e1eda.js", | |||
"/build/runtime.01c101e5.js", | |||
"/build/vendors-node_modules_core-js_internals_export_js.a0c0cb57.js", | |||
"/build/adminlte-field-filemanager.d8302fb7.js" | |||
], | |||
@@ -65,7 +65,7 @@ | |||
}, | |||
"adminlte-field-collection": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/vendors-node_modules_core-js_modules_es_array_find_js.5b9cb885.js", | |||
@@ -79,7 +79,7 @@ | |||
}, | |||
"adminlte-main": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/adminlte-main.e8feeffc.js" | |||
@@ -90,7 +90,7 @@ | |||
}, | |||
"sov-reminder": { | |||
"js": [ | |||
"/build/runtime.564e1eda.js", | |||
"/build/runtime.01c101e5.js", | |||
"/build/sov-reminder.27580486.js" | |||
], | |||
"css": [ | |||
@@ -99,13 +99,13 @@ | |||
}, | |||
"sov-ticket": { | |||
"js": [ | |||
"/build/runtime.564e1eda.js", | |||
"/build/runtime.01c101e5.js", | |||
"/build/sov-ticket.df76c7a0.js" | |||
] | |||
}, | |||
"app-backend": { | |||
"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_modules_es_array_find_js.5b9cb885.js", | |||
"/build/app-backend.9246973d.js" | |||
@@ -116,7 +116,7 @@ | |||
}, | |||
"app-frontend": { | |||
"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_modules_es_string_replace_js.06749256.js", | |||
"/build/vendors-node_modules_jquery_src_jquery_js.2a8ff255.js", | |||
@@ -125,12 +125,12 @@ | |||
"/build/app-frontend.212543dd.js" | |||
], | |||
"css": [ | |||
"/build/app-frontend.1fba758f.css" | |||
"/build/app-frontend.a126fd2d.css" | |||
] | |||
}, | |||
"app-bulle": { | |||
"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/app-bulle.08404383.js" | |||
] |
@@ -17,10 +17,10 @@ | |||
"build/sov-ticket.js": "/build/sov-ticket.df76c7a0.js", | |||
"build/app-backend.css": "/build/app-backend.3d882954.css", | |||
"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-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/canvg.js": "/build/canvg.5e04b23d.js", | |||
"build/xlsx.js": "/build/xlsx.05855660.js", |
@@ -0,0 +1,30 @@ | |||
<?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; | |||
} | |||
} |
@@ -3,6 +3,7 @@ | |||
namespace App\Controller\Admin; | |||
use App\Entity\Block; | |||
use App\Entity\CollectifData; | |||
use App\Entity\Configuration; | |||
use App\Entity\Dream; | |||
@@ -164,6 +165,8 @@ class DashboardController extends SovDashboardController | |||
->setPermission(self::ROLE_SUPER_ADMIN), | |||
MenuItem::linkToCrud('page', 'far fa-copy', Page::class) | |||
->setPermission(self::ROLE_ADMIN), | |||
MenuItem::linkToCrud('blocs', 'fas fa-tags', Block::class) | |||
->setPermission(self::ROLE_ADMIN), | |||
]; | |||
/*$this->setMenuIndexes($menuItems);*/ |
@@ -2,10 +2,43 @@ | |||
namespace App\Controller\Frontend; | |||
use App\Repository\BlockStore; | |||
use Doctrine\ORM\EntityManagerInterface; | |||
class AboutController extends DefaultController | |||
{ | |||
protected BlockStore $blockStore; | |||
public function __construct( | |||
EntityManagerInterface $em, | |||
BlockStore $blockStore | |||
) { | |||
$this->blockStore = $blockStore; | |||
parent::__construct($em); | |||
} | |||
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, | |||
]); | |||
} | |||
} |
@@ -4,6 +4,7 @@ namespace App\Controller\Frontend; | |||
use App\Entity\AbstractData; | |||
use App\Form\SearchListForm; | |||
use App\Repository\BlockStore; | |||
use App\Repository\DreamStore; | |||
use App\Repository\ProjectBoostStore; | |||
use App\Repository\ProjectInspiringStore; | |||
@@ -31,6 +32,7 @@ class CartoController extends DefaultController | |||
protected ProjectInspiringStore $projectInspiringStore; | |||
protected TerritoryStore $territoryStore; | |||
protected ThematicStore $thematicStore; | |||
protected BlockStore $blockStore; | |||
protected PaginatorInterface $paginator; | |||
protected Environment $templating; | |||
protected ParameterBagInterface $parameterBag; | |||
@@ -43,6 +45,7 @@ class CartoController extends DefaultController | |||
ProjectInspiringStore $projectInspiringStore, | |||
TerritoryStore $territoryStore, | |||
ThematicStore $thematicStore, | |||
BlockStore $blockStore, | |||
PaginatorInterface $paginator, | |||
Environment $templating, | |||
ParameterBagInterface $parameterBag | |||
@@ -54,6 +57,7 @@ class CartoController extends DefaultController | |||
$this->projectInspiringStore = $projectInspiringStore; | |||
$this->territoryStore = $territoryStore; | |||
$this->thematicStore = $thematicStore; | |||
$this->blockStore = $blockStore; | |||
$this->paginator = $paginator; | |||
$this->templating = $templating; | |||
$this->parameterBag = $parameterBag; | |||
@@ -61,9 +65,12 @@ class CartoController extends DefaultController | |||
public function cartoInteractive() | |||
{ | |||
$blockCartoInt = $this->blockStore->getOneOnlineByDevAlias('carto-int'); | |||
return $this->render( | |||
'frontend/carto-int.html.twig', | |||
[ | |||
'blockCartoInt' => $blockCartoInt, | |||
'nbContrib' => $this->countContrib() | |||
] | |||
); | |||
@@ -71,6 +78,8 @@ class CartoController extends DefaultController | |||
public function cartoListe(Request $request) | |||
{ | |||
$blockCartoInt = $this->blockStore->getOneOnlineByDevAlias('carto-int'); | |||
$resultArrayPagination = array(); | |||
$form = $this->createForm(SearchListForm::class, null, [ | |||
'method' => 'GET', | |||
@@ -101,7 +110,53 @@ class CartoController extends DefaultController | |||
[ | |||
'form' => $form->createView(), | |||
'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, | |||
] | |||
); | |||
} | |||
@@ -190,48 +245,6 @@ class CartoController extends DefaultController | |||
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()) | |||
{ | |||
// Configure Dompdf according to your needs |
@@ -5,15 +5,25 @@ namespace App\Controller\Frontend; | |||
use App\Entity\IndividualData; | |||
use App\Form\IndividualDataForm; | |||
use App\Repository\BlockStore; | |||
use Doctrine\ORM\EntityManagerInterface; | |||
use Symfony\Component\HttpFoundation\Request; | |||
use Symfony\Component\HttpFoundation\Response; | |||
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 | |||
{ | |||
$blockContrib = $this->blockStore->getOneOnlineByDevAlias('contribution-individuel'); | |||
$individualData = new IndividualData(); | |||
$form = $this->createForm(IndividualDataForm::class, $individualData, ["context" => "frontend"]); | |||
@@ -29,7 +39,8 @@ class ContribuateController extends DefaultController | |||
'frontend/contribuate.html.twig', | |||
[ | |||
'nbContrib' => $this->countContrib(), | |||
'form' => $form->createView() | |||
'form' => $form->createView(), | |||
'blockContrib' => $blockContrib, | |||
] | |||
); | |||
} |
@@ -3,10 +3,31 @@ | |||
namespace App\Controller\Frontend; | |||
use App\Repository\BlockStore; | |||
use Doctrine\ORM\EntityManagerInterface; | |||
class HomeController extends DefaultController | |||
{ | |||
protected BlockStore $blockStore; | |||
public function __construct( | |||
EntityManagerInterface $em, | |||
BlockStore $blockStore | |||
) { | |||
$this->blockStore = $blockStore; | |||
parent::__construct($em); | |||
} | |||
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, | |||
]); | |||
} | |||
} |
@@ -0,0 +1,86 @@ | |||
<?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; | |||
} | |||
} |
@@ -67,7 +67,7 @@ class Territory implements EntityInterface, DevAliasInterface | |||
return $this; | |||
} | |||
public function getIndividualData(): ?IndividualData | |||
public function getIndividualData(): ?Collection | |||
{ | |||
return $this->individualData; | |||
} |
@@ -0,0 +1,21 @@ | |||
<?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); | |||
} | |||
} |
@@ -0,0 +1,15 @@ | |||
<?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); | |||
} | |||
} |
@@ -0,0 +1,34 @@ | |||
<?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; | |||
} | |||
} |
@@ -25,30 +25,31 @@ | |||
</div> | |||
<div class="row"> | |||
<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 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> | |||
{% endif %} | |||
</div> | |||
<div class="container container-manifeste"> | |||
@@ -73,167 +74,151 @@ | |||
</div> | |||
</div> | |||
<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 id="recolte" class="bloc-recolte"> | |||
<div class="container"> | |||
{% if blockLabourage %} | |||
<div id="labourage" class="container container-step1"> | |||
<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> | |||
<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> | |||
<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 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> | |||
{% 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> | |||
{% 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="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 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> | |||
{% 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 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 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> | |||
{% endif %} | |||
</div> | |||
<div class="container container-funded"> |
@@ -9,40 +9,38 @@ | |||
{% endblock %} | |||
{% 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 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> | |||
{% endif %} | |||
<div class="container bloc-carto"> | |||
<div class="row"> | |||
<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> | |||
<img src="{{ 'assets/img/Picto-Cartographie-Interactive.png' }}" alt=""> | |||
</div> | |||
@@ -58,7 +56,8 @@ | |||
</a> | |||
</div> | |||
<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> | |||
<img src="{{ 'assets/img/Picto-Carto-Territoire.png' }}" alt=""> | |||
</div> |
@@ -9,39 +9,33 @@ | |||
{% endblock %} | |||
{% 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> | |||
{% endif %} | |||
<div class="container bloc-form"> | |||
<div class="row"> |
@@ -24,81 +24,69 @@ | |||
</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> | |||
{% 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> | |||
{% 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 class="col-6"> | |||
<img class="ressourcerie" src="{{ 'assets/img/Ressourcerie.png' }}" alt="ressourcerie"> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
{% endif %} | |||
{% endblock %} |
@@ -12,6 +12,8 @@ menu: | |||
thematic: Thématiques | |||
subthematic: Sous-thémes | |||
configuration: Configuration | |||
blocs: Blocs | |||
entity: | |||
User: | |||
fields: | |||
@@ -66,6 +68,9 @@ entity: | |||
Configuration: | |||
label_plurial: Les configurations | |||
label: Configuration | |||
Block: | |||
label: Bloc | |||
label_plurial: Blocs | |||
form: | |||
field: | |||
dream: |