mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
up tableau thèmes
This commit is contained in:
parent
c5bf83a4f8
commit
6cfb2f0958
5 changed files with 95 additions and 35 deletions
|
@ -160,6 +160,10 @@ final class AdminController extends AbstractController
|
|||
// Associer les stats à chaque commerce
|
||||
foreach ($commerces as $commerce) {
|
||||
$commerce->setStats($stats);
|
||||
// Injection de l'emoji pour le template
|
||||
$mainTag = $commerce->getMainTag();
|
||||
$emoji = self::getTagEmoji($mainTag);
|
||||
$commerce->tagEmoji = $emoji;
|
||||
$this->entityManager->persist($commerce);
|
||||
}
|
||||
|
||||
|
@ -471,6 +475,7 @@ final class AdminController extends AbstractController
|
|||
'followup_icons' => \App\Service\FollowUpService::getFollowUpIcons(),
|
||||
'progression7Days' => $progression7Days,
|
||||
'all_types' => \App\Service\FollowUpService::getFollowUpThemes(),
|
||||
'getTagEmoji' => [self::class, 'getTagEmoji'],
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -1014,6 +1019,10 @@ final class AdminController extends AbstractController
|
|||
// Associer les stats à chaque commerce
|
||||
foreach ($commerces as $commerce) {
|
||||
$commerce->setStats($stats);
|
||||
// Injection de l'emoji pour le template
|
||||
$mainTag = $commerce->getMainTag();
|
||||
$emoji = self::getTagEmoji($mainTag);
|
||||
$commerce->tagEmoji = $emoji;
|
||||
$this->entityManager->persist($commerce);
|
||||
}
|
||||
|
||||
|
@ -1857,4 +1866,60 @@ final class AdminController extends AbstractController
|
|||
'stats' => $stats
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/admin/export_csv', name: 'app_admin_export_csv_all')]
|
||||
public function export_csv_all(): Response
|
||||
{
|
||||
$statsList = $this->entityManager->getRepository(\App\Entity\Stats::class)->findAll();
|
||||
$handle = fopen('php://temp', 'r+');
|
||||
// En-tête CSV
|
||||
fputcsv($handle, [
|
||||
'zone', 'name', 'lat', 'lon', 'population', 'budgetAnnuel', 'completionPercent', 'placesCount', 'avecHoraires', 'avecAdresse', 'avecSite', 'avecAccessibilite', 'avecNote', 'siren', 'codeEpci', 'codesPostaux'
|
||||
]);
|
||||
foreach ($statsList as $stat) {
|
||||
fputcsv($handle, [
|
||||
$stat->getZone(),
|
||||
$stat->getName(),
|
||||
$stat->getLat(),
|
||||
$stat->getLon(),
|
||||
$stat->getPopulation(),
|
||||
$stat->getBudgetAnnuel(),
|
||||
$stat->getCompletionPercent(),
|
||||
$stat->getPlacesCount(),
|
||||
$stat->getAvecHoraires(),
|
||||
$stat->getAvecAdresse(),
|
||||
$stat->getAvecSite(),
|
||||
$stat->getAvecAccessibilite(),
|
||||
$stat->getAvecNote(),
|
||||
$stat->getSiren(),
|
||||
$stat->getCodeEpci(),
|
||||
$stat->getCodesPostaux(),
|
||||
]);
|
||||
}
|
||||
rewind($handle);
|
||||
$csv = stream_get_contents($handle);
|
||||
fclose($handle);
|
||||
$response = new Response($csv);
|
||||
$response->headers->set('Content-Type', 'text/csv');
|
||||
$response->headers->set('Content-Disposition', 'attachment; filename="osm-commerces-villes-export_' . date('Y-m-d_H-i-s') . '.csv"');
|
||||
return $response;
|
||||
}
|
||||
|
||||
public static function getTagEmoji(string $mainTag): string
|
||||
{
|
||||
return match ($mainTag) {
|
||||
'amenity=restaurant', 'amenity=bar', 'amenity=cafe' => '🍽️',
|
||||
'amenity=townhall', 'amenity=community_centre' => '🏛️',
|
||||
'amenity=bank', 'amenity=atm' => '🏦',
|
||||
'amenity=pharmacy', 'amenity=hospital', 'amenity=clinic' => '🏥',
|
||||
'amenity=school', 'amenity=kindergarten', 'amenity=university' => '🎓',
|
||||
'amenity=library', 'amenity=museum', 'amenity=artwork' => '📚',
|
||||
'shop=car_repair', 'shop=car_parts', 'shop=car_wash' => '🚗',
|
||||
'amenity=post_office' => '📮',
|
||||
'shop=convenience' => '🏪',
|
||||
'shop=supermarket' => '🛒',
|
||||
'shop=clothes' => '👕',
|
||||
default => '🏷️',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue