mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 21:34:25 +00:00
Merge branch 'calendar/finalization' of gitlab.com:Chill-Projet/chill-bundles into calendar/finalization
This commit is contained in:
commit
8d7013b988
@ -203,6 +203,11 @@ class Calendar implements TrackCreationInterface, TrackUpdateInterface
|
|||||||
*/
|
*/
|
||||||
private string $status = self::STATUS_VALID;
|
private string $status = self::STATUS_VALID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(type="boolean", nullable=true)
|
||||||
|
*/
|
||||||
|
private ?bool $urgent = false;
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->comment = new CommentEmbeddable();
|
$this->comment = new CommentEmbeddable();
|
||||||
|
@ -85,6 +85,6 @@ final class AgentAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by agent';
|
return 'Group calendars by agent';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ class CancelReasonAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
// TODO: still needs to take into account appointments without a cancel reason somehow
|
// TODO: still needs to take into account calendars without a cancel reason somehow
|
||||||
if (!in_array('calcancel', $qb->getAllAliases(), true)) {
|
if (!in_array('calcancel', $qb->getAllAliases(), true)) {
|
||||||
$qb->join('cal.cancelReason', 'calcancel');
|
$qb->join('cal.cancelReason', 'calcancel');
|
||||||
}
|
}
|
||||||
@ -88,6 +88,6 @@ class CancelReasonAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by cancel reason';
|
return 'Group calendars by cancel reason';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ final class JobAggregator implements AggregatorInterface
|
|||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
||||||
$qb->join('cal.user', 'caluser');
|
$qb->join('cal.mainUser', 'caluser');
|
||||||
}
|
}
|
||||||
|
|
||||||
$qb->addSelect('IDENTITY(caluser.userJob) as job_aggregator');
|
$qb->addSelect('IDENTITY(caluser.userJob) as job_aggregator');
|
||||||
@ -87,6 +87,6 @@ final class JobAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by agent job';
|
return 'Group calendars by agent job';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,6 @@ final class LocationAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by location';
|
return 'Group calendars by location';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,6 +87,6 @@ final class LocationTypeAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by location type';
|
return 'Group calendars by location type';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -55,10 +55,10 @@ class MonthYearAggregator implements AggregatorInterface
|
|||||||
return 'by month and year';
|
return 'by month and year';
|
||||||
}
|
}
|
||||||
|
|
||||||
$month = substr($value, 0, 2);
|
$month = (int)substr($value, 0, 2);
|
||||||
$year = substr($value, 3, 4);
|
$year = (int)substr($value, 3, 4);
|
||||||
|
|
||||||
return strftime('%B %G', mktime(0, 0, 0, $month, '1', $year));
|
return strftime('%B %G', mktime(0, 0, 0, $month, 1, $year));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,6 +69,6 @@ class MonthYearAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by month and year';
|
return 'Group calendars by month and year';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ final class ScopeAggregator implements AggregatorInterface
|
|||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
||||||
$qb->join('cal.user', 'caluser');
|
$qb->join('cal.mainUser', 'caluser');
|
||||||
}
|
}
|
||||||
|
|
||||||
$qb->addSelect('IDENTITY(caluser.mainScope) as scope_aggregator');
|
$qb->addSelect('IDENTITY(caluser.mainScope) as scope_aggregator');
|
||||||
@ -87,6 +87,6 @@ final class ScopeAggregator implements AggregatorInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Group appointments by agent scope';
|
return 'Group calendars by agent scope';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,8 @@ use Closure;
|
|||||||
use Doctrine\ORM\AbstractQuery;
|
use Doctrine\ORM\AbstractQuery;
|
||||||
use Doctrine\ORM\QueryBuilder;
|
use Doctrine\ORM\QueryBuilder;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Component\Process\Exception\LogicException;
|
use Symfony\Component\Validator\Exception\LogicException;
|
||||||
|
|
||||||
|
|
||||||
class CountCalendars implements ExportInterface, GroupedExportInterface
|
class CountCalendars implements ExportInterface, GroupedExportInterface
|
||||||
{
|
{
|
||||||
@ -44,7 +45,7 @@ class CountCalendars implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getDescription(): string
|
public function getDescription(): string
|
||||||
{
|
{
|
||||||
return 'Count appointments by various parameters.';
|
return 'Count calendars by various parameters.';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGroup(): string
|
public function getGroup(): string
|
||||||
@ -78,7 +79,7 @@ class CountCalendars implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Count appointments';
|
return 'Count calendars';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getType(): string
|
public function getType(): string
|
||||||
|
@ -44,7 +44,7 @@ class StatCalendarAvgDuration implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getDescription(): string
|
public function getDescription(): string
|
||||||
{
|
{
|
||||||
return 'Get the average of appointment duration according to various filters';
|
return 'Get the average of calendar duration according to various filters';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGroup(): string
|
public function getGroup(): string
|
||||||
@ -78,7 +78,7 @@ class StatCalendarAvgDuration implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Average appointment duration';
|
return 'Average calendar duration';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getType(): string
|
public function getType(): string
|
||||||
|
@ -44,7 +44,7 @@ class StatCalendarSumDuration implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getDescription(): string
|
public function getDescription(): string
|
||||||
{
|
{
|
||||||
return 'Get the sum of appointment durations according to various filters';
|
return 'Get the sum of calendar durations according to various filters';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGroup(): string
|
public function getGroup(): string
|
||||||
@ -78,7 +78,7 @@ class StatCalendarSumDuration implements ExportInterface, GroupedExportInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Sum of appointment durations';
|
return 'Sum of calendar durations';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getType(): string
|
public function getType(): string
|
||||||
|
@ -82,6 +82,6 @@ class AgentFilter implements FilterInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Filter appointments by agent';
|
return 'Filter calendars by agent';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ class BetweenDatesFilter implements FilterInterface
|
|||||||
|
|
||||||
public function describeAction($data, $format = 'string'): array
|
public function describeAction($data, $format = 'string'): array
|
||||||
{
|
{
|
||||||
return ['Filtered by appointments between %dateFrom% and %dateTo%', [
|
return ['Filtered by calendars between %dateFrom% and %dateTo%', [
|
||||||
'%dateFrom%' => $data['date_from']->format('d-m-Y'),
|
'%dateFrom%' => $data['date_from']->format('d-m-Y'),
|
||||||
'%dateTo%' => $data['date_to']->format('d-m-Y'),
|
'%dateTo%' => $data['date_to']->format('d-m-Y'),
|
||||||
]];
|
]];
|
||||||
@ -74,6 +74,6 @@ class BetweenDatesFilter implements FilterInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Filter appointments between certain dates';
|
return 'Filter calendars between certain dates';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class JobFilter implements FilterInterface
|
|||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
||||||
$qb->join('cal.user', 'caluser');
|
$qb->join('cal.mainUser', 'caluser');
|
||||||
}
|
}
|
||||||
|
|
||||||
$where = $qb->getDQLPart('where');
|
$where = $qb->getDQLPart('where');
|
||||||
@ -95,6 +95,6 @@ class JobFilter implements FilterInterface
|
|||||||
|
|
||||||
public function getTitle(): string
|
public function getTitle(): string
|
||||||
{
|
{
|
||||||
return 'Filter appointments by agent job';
|
return 'Filter calendars by agent job';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class ScopeFilter implements FilterInterface
|
|||||||
public function alterQuery(QueryBuilder $qb, $data)
|
public function alterQuery(QueryBuilder $qb, $data)
|
||||||
{
|
{
|
||||||
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
if (!in_array('caluser', $qb->getAllAliases(), true)) {
|
||||||
$qb->join('cal.user', 'caluser');
|
$qb->join('cal.mainUser', 'caluser');
|
||||||
}
|
}
|
||||||
|
|
||||||
$where = $qb->getDQLPart('where');
|
$where = $qb->getDQLPart('where');
|
||||||
@ -95,6 +95,6 @@ class ScopeFilter implements FilterInterface
|
|||||||
|
|
||||||
public function getTitle()
|
public function getTitle()
|
||||||
{
|
{
|
||||||
return 'Filter appointments by agent scope';
|
return 'Filter calendars by agent scope';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Chill\Migrations\Calendar;
|
||||||
|
|
||||||
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
|
use Doctrine\Migrations\AbstractMigration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Auto-generated Migration: Please modify to your needs!
|
||||||
|
*/
|
||||||
|
final class Version20220921101643 extends AbstractMigration
|
||||||
|
{
|
||||||
|
public function getDescription(): string
|
||||||
|
{
|
||||||
|
return 'Add urgent property to calendar entity';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function up(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this up() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('ALTER TABLE chill_calendar.calendar ADD urgent BOOLEAN DEFAULT NULL');
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(Schema $schema): void
|
||||||
|
{
|
||||||
|
// this down() migration is auto-generated, please modify it to your needs
|
||||||
|
$this->addSql('ALTER TABLE chill_calendar.calendar DROP urgent');
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -72,8 +72,8 @@ invite:
|
|||||||
|
|
||||||
# exports
|
# exports
|
||||||
Exports of calendar: Exports des rendez-vous
|
Exports of calendar: Exports des rendez-vous
|
||||||
Count appointments: Nombre de rendez-vous
|
Count calendars: Nombre de rendez-vous
|
||||||
Count appointments by various parameters.: Compte le nombre de rendez-vous en fonction de différents paramètres.
|
Count calendars by various parameters.: Compte le nombre de rendez-vous en fonction de différents paramètres.
|
||||||
|
|
||||||
Average appointment duration: Moyenne de la durée des rendez-vous
|
Average appointment duration: Moyenne de la durée des rendez-vous
|
||||||
Get the average of appointment duration according to various filters: Calcule la moyenne des durées des rendez-vous en fonction de différents paramètres.
|
Get the average of appointment duration according to various filters: Calcule la moyenne des durées des rendez-vous en fonction de différents paramètres.
|
||||||
@ -82,21 +82,21 @@ Sum of appointment durations: Somme de la durée des rendez-vous
|
|||||||
Get the sum of appointment durations according to various filters: Calcule la somme des durées des rendez-vous en fonction de différents paramètres.
|
Get the sum of appointment durations according to various filters: Calcule la somme des durées des rendez-vous en fonction de différents paramètres.
|
||||||
|
|
||||||
'Filtered by agent: only %agents%': "Filtré par agents: uniquement %agents%"
|
'Filtered by agent: only %agents%': "Filtré par agents: uniquement %agents%"
|
||||||
Filter appointments by agent: Filtrer les rendez-vous par agents
|
Filter calendars by agent: Filtrer les rendez-vous par agents
|
||||||
Filter appointments by agent job: Filtrer les rendez-vous par métiers des agents
|
Filter calendars by agent job: Filtrer les rendez-vous par métiers des agents
|
||||||
'Filtered by agent job: only %jobs%': 'Filtré par métiers des agents: uniquement les %jobs%'
|
'Filtered by agent job: only %jobs%': 'Filtré par métiers des agents: uniquement les %jobs%'
|
||||||
Filter appointments by agent scope: Filtrer les rendez-vous par services des agents
|
Filter calendars by agent scope: Filtrer les rendez-vous par services des agents
|
||||||
'Filtered by agent scope: only %scopes%': 'Filtré par services des agents: uniquement les services %scopes%'
|
'Filtered by agent scope: only %scopes%': 'Filtré par services des agents: uniquement les services %scopes%'
|
||||||
Filter appointments between certain dates: Filtrer les rendez-vous par date du rendez-vous
|
Filter calendars between certain dates: Filtrer les rendez-vous par date du rendez-vous
|
||||||
'Filtered by appointments between %dateFrom% and %dateTo%': 'Filtré par rendez-vous entre %dateFrom% et %dateTo%'
|
'Filtered by calendars between %dateFrom% and %dateTo%': 'Filtré par rendez-vous entre %dateFrom% et %dateTo%'
|
||||||
|
|
||||||
Group appointments by agent: Grouper les rendez-vous par agent
|
Group calendars by agent: Grouper les rendez-vous par agent
|
||||||
Group appointments by agent job: Grouper les rendez-vous par métier de l'agent
|
Group calendars by agent job: Grouper les rendez-vous par métier de l'agent
|
||||||
Group appointments by agent scope: Grouper les rendez-vous par service de l'agent
|
Group calendars by agent scope: Grouper les rendez-vous par service de l'agent
|
||||||
Group appointments by location type: Grouper les rendez-vous par type de localisation
|
Group calendars by location type: Grouper les rendez-vous par type de localisation
|
||||||
Group appointments by location: Grouper les rendez-vous par lieu de rendez-vous
|
Group calendars by location: Grouper les rendez-vous par lieu de rendez-vous
|
||||||
Group appointments by cancel reason: Grouper les rendez-vous par motif d'annulation
|
Group calendars by cancel reason: Grouper les rendez-vous par motif d'annulation
|
||||||
Group appointments by month and year: Grouper les rendez-vous par mois et année
|
Group calendars by month and year: Grouper les rendez-vous par mois et année
|
||||||
Scope: Service
|
Scope: Service
|
||||||
Job: Métier
|
Job: Métier
|
||||||
Location type: Type de localisation
|
Location type: Type de localisation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user