Compare commits
11 Commits
dev
...
1e54e4df4a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e54e4df4a | ||
|
|
962618bafa | ||
|
|
a4619ab31e | ||
| f497276575 | |||
| 2c83b7080c | |||
| c4e2ae721e | |||
| 2e6c6a8f97 | |||
| 545f7facaf | |||
| 30995316ae | |||
|
|
93891bd18a | ||
|
|
235f6e5e55 |
1105
composer.lock
generated
1105
composer.lock
generated
File diff suppressed because it is too large
Load Diff
29
migrations/Version20230705133033.php
Normal file
29
migrations/Version20230705133033.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?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 Version20230705133033 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE criminal ADD amount_community_work INT AFTER amount_time');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE criminal DROP amount_community_work');
|
||||
}
|
||||
}
|
||||
30
migrations/Version20230705133715.php
Normal file
30
migrations/Version20230705133715.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?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 Version20230705133715 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE criminal ADD amount_money_settled DOUBLE PRECISION DEFAULT NULL, ADD amount_time_settled INT DEFAULT NULL, ADD amount_community_work_settled INT DEFAULT NULL');
|
||||
$this->addSql('UPDATE criminal SET amount_money_settled = amount_money, amount_time_settled = amount_time, amount_community_work_settled = amount_community_work');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->addSql('ALTER TABLE criminal DROP amount_money_settled, DROP amount_time_settled, DROP amount_community_work_settled');
|
||||
}
|
||||
}
|
||||
@@ -437,6 +437,7 @@ class AdminController extends AbstractController
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
$newrank = clone $Rank;
|
||||
$newrank->setName($newrank->getName() . ' - copy');
|
||||
$newrank->setCreatedAt(new \DateTimeImmutable());
|
||||
$entityManager->persist($newrank);
|
||||
|
||||
try {
|
||||
|
||||
114
src/Controller/UnsettledSentenceController.php
Normal file
114
src/Controller/UnsettledSentenceController.php
Normal file
@@ -0,0 +1,114 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\SentenceSettlement;
|
||||
use App\Form\SearchBarType;
|
||||
use App\Form\SentenceSettlementType;
|
||||
use App\Repository\CriminalRepository;
|
||||
use Knp\Component\Pager\PaginatorInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Form\FormError;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
|
||||
#[Route('/unsettled_sentence', name: 'unsettled_sentence_')]
|
||||
class UnsettledSentenceController extends AbstractController
|
||||
{
|
||||
private LoggerInterface $logger;
|
||||
|
||||
public function __construct(LoggerInterface $logger)
|
||||
{
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
#[Route('/list/{type?*}', name: 'list')]
|
||||
public function list(
|
||||
PaginatorInterface $paginator,
|
||||
Request $request,
|
||||
CriminalRepository $CriminalRepository,
|
||||
string $type = 'fine'
|
||||
): Response {
|
||||
|
||||
$searchForm = $this->createForm(SearchBarType::class);
|
||||
$searchForm->handleRequest($request);
|
||||
|
||||
$pagination = $paginator->paginate(
|
||||
$CriminalRepository->listForUser($this->getUser())
|
||||
->search((
|
||||
$searchForm->isSubmitted()
|
||||
&& $searchForm->isValid()
|
||||
&& $searchForm->getData()['subject'] !== null
|
||||
) ? $searchForm->getData()['subject'] : null)
|
||||
->limitUnsettled($type)
|
||||
->order(['createdAt' => 'DESC'])
|
||||
->getResult(),
|
||||
$request->query->getInt('page', 1)
|
||||
);
|
||||
|
||||
foreach ($pagination as $i => $criminal) {
|
||||
$sentence = new SentenceSettlement($criminal, $type);
|
||||
$form = $this->createForm(
|
||||
SentenceSettlementType::class,
|
||||
$sentence,
|
||||
['action' => $this->generateUrl('unsettled_sentence_settle'),]
|
||||
);
|
||||
$pagination[$i]->form = $form->createView();
|
||||
}
|
||||
|
||||
return $this->render('sentence/list.html.twig', [
|
||||
'controller_name' => 'AdminController',
|
||||
'type' => $type,
|
||||
'pagination' => $pagination,
|
||||
'count' => $pagination->getTotalItemCount(),
|
||||
'searchForm' => $searchForm->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route('/settle', name: 'settle')]
|
||||
public function settle(
|
||||
Request $request,
|
||||
CriminalRepository $CriminalRepository
|
||||
) {
|
||||
$type = null;
|
||||
$sentenceForm = $this->createForm(SentenceSettlementType::class);
|
||||
$sentenceForm->handleRequest($request);
|
||||
|
||||
if ($sentenceForm->isSubmitted() && $sentenceForm->isValid()) {
|
||||
$formData = $sentenceForm->getData();
|
||||
$type = $formData['type'];
|
||||
$criminal = $CriminalRepository->find($formData['criminal_id']);
|
||||
if (!$criminal) {
|
||||
$sentenceForm->addError(new FormError('error_document_not_found'));
|
||||
} else {
|
||||
try {
|
||||
$criminal->addSettlement($type, $formData['amount']);
|
||||
} catch (\OutOfRangeException $e) {
|
||||
$sentenceForm->addError(new FormError('error_value_out_of_bound'));
|
||||
}
|
||||
}
|
||||
if ($sentenceForm->isValid()) {
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
$entityManager->persist($criminal);
|
||||
try {
|
||||
$entityManager->flush();
|
||||
} catch (\Throwable $th) {
|
||||
if ($_ENV['APP_ENV'] === 'dev') {
|
||||
throw $th; //DEBUG
|
||||
} else {
|
||||
$this->logger->error($th);
|
||||
}
|
||||
|
||||
$this->addFlash('danger', 'alert_error_editing_document');
|
||||
return $this->redirectToRoute($request->getRequestUri());
|
||||
}
|
||||
} else {
|
||||
$this->addFlash('warning', 'alert_error_form_post');
|
||||
}
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('unsettled_sentence_list', ['type' => $type]);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use OutOfRangeException;
|
||||
use App\Entity\Document;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use App\Repository\CriminalRepository;
|
||||
@@ -13,6 +14,10 @@ use Symfony\Component\Validator\Constraints as Assert;
|
||||
*/
|
||||
class Criminal extends Document
|
||||
{
|
||||
public const TYPE_JAIL = 'jail';
|
||||
public const TYPE_FINE = 'fine';
|
||||
public const TYPE_COMMUNITY_WORK = 'community_work';
|
||||
|
||||
/**
|
||||
* @ORM\ManyToOne(targetEntity=Directory::class, inversedBy="criminals")
|
||||
* @ORM\JoinColumn(nullable=false)
|
||||
@@ -31,6 +36,12 @@ class Criminal extends Document
|
||||
*/
|
||||
private $amountTime;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer", nullable=true)
|
||||
* @Gedmo\Versioned
|
||||
*/
|
||||
private $amountCommunityWork;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="text", length=4294967295, nullable=true)
|
||||
* @Gedmo\Versioned
|
||||
@@ -41,6 +52,24 @@ class Criminal extends Document
|
||||
*/
|
||||
private $content;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="float", nullable=true)
|
||||
* @Gedmo\Versioned
|
||||
*/
|
||||
private $amountMoneySettled;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer", nullable=true)
|
||||
* @Gedmo\Versioned
|
||||
*/
|
||||
private $amountTimeSettled;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="integer", nullable=true)
|
||||
* @Gedmo\Versioned
|
||||
*/
|
||||
private $amountCommunityWorkSettled;
|
||||
|
||||
public function __construct(User $user)
|
||||
{
|
||||
parent::__construct($user);
|
||||
@@ -83,6 +112,18 @@ class Criminal extends Document
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAmountCommunityWork(): ?int
|
||||
{
|
||||
return $this->amountCommunityWork;
|
||||
}
|
||||
|
||||
public function setAmountCommunityWork(?int $amountCommunityWork): self
|
||||
{
|
||||
$this->amountCommunityWork = $amountCommunityWork;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getContent(): ?string
|
||||
{
|
||||
return $this->content;
|
||||
@@ -94,4 +135,64 @@ class Criminal extends Document
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAmountMoneySettled(): ?float
|
||||
{
|
||||
return $this->amountMoneySettled;
|
||||
}
|
||||
|
||||
public function setAmountMoneySettled(?float $amountMoneySettled): self
|
||||
{
|
||||
$this->amountMoneySettled = $amountMoneySettled;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAmountTimeSettled(): ?int
|
||||
{
|
||||
return $this->amountTimeSettled;
|
||||
}
|
||||
|
||||
public function setAmountTimeSettled(?int $amountTimeSettled): self
|
||||
{
|
||||
$this->amountTimeSettled = $amountTimeSettled;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAmountCommunityWorkSettled(): ?int
|
||||
{
|
||||
return $this->amountCommunityWorkSettled;
|
||||
}
|
||||
|
||||
public function setAmountCommunityWorkSettled(?int $amountCommunityWorkSettled): self
|
||||
{
|
||||
$this->amountCommunityWorkSettled = $amountCommunityWorkSettled;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addSettlement($type, $amount)
|
||||
{
|
||||
if ($type == Criminal::TYPE_FINE) {
|
||||
if ($this->getAmountMoney() - $this->getAmountMoneySettled() < $amount) {
|
||||
throw new OutOfRangeException();
|
||||
}
|
||||
$this->setAmountMoneySettled($this->getAmountMoneySettled() + $amount);
|
||||
} elseif ($type == Criminal::TYPE_JAIL) {
|
||||
if ($this->getAmountTime() - $this->getAmountTimeSettled() < $amount) {
|
||||
throw new OutOfRangeException();
|
||||
}
|
||||
$this->setAmountTimeSettled($this->getAmountTimeSettled() + $amount);
|
||||
} elseif ($type == Criminal::TYPE_COMMUNITY_WORK) {
|
||||
if ($this->getAmountCommunityWork() - $this->getAmountCommunityWorkSettled() < $amount) {
|
||||
throw new OutOfRangeException();
|
||||
}
|
||||
$this->setAmountCommunityWorkSettled($this->getAmountCommunityWorkSettled() + $amount);
|
||||
} else {
|
||||
throw new OutOfRangeException();
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
74
src/Entity/SentenceSettlement.php
Normal file
74
src/Entity/SentenceSettlement.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
class SentenceSettlement
|
||||
{
|
||||
private Criminal $criminal;
|
||||
private string $type;
|
||||
private $amount = null;
|
||||
|
||||
public function __construct(
|
||||
Criminal $criminal,
|
||||
string $type
|
||||
) {
|
||||
$this->criminal = $criminal;
|
||||
$this->type = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Criminal
|
||||
*/
|
||||
public function getCriminal(): Criminal
|
||||
{
|
||||
return $this->criminal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Criminal $criminal
|
||||
*/
|
||||
public function setCriminal(Criminal $criminal): void
|
||||
{
|
||||
$this->criminal = $criminal;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Criminal
|
||||
*/
|
||||
public function getCriminalId(): int
|
||||
{
|
||||
return $this->criminal->getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getType(): string
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
*/
|
||||
public function setType(string $type): void
|
||||
{
|
||||
$this->type = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null
|
||||
*/
|
||||
public function getAmount()
|
||||
{
|
||||
return $this->amount;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param null $amount
|
||||
*/
|
||||
public function setAmount($amount): void
|
||||
{
|
||||
$this->amount = $amount;
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,26 @@ class CriminalType extends DocumentType
|
||||
->add('content', ContentType::class, ['label' => 'form_label_informations' ])
|
||||
->add('amountMoney', null, ['label' => 'form_label_amount', 'help' => 'form_help_amount'])
|
||||
->add('amountTime', null, ['label' => 'form_label_time', 'help' => 'form_help_time'])
|
||||
->add(
|
||||
'amountCommunityWork',
|
||||
null,
|
||||
['label' => 'form_label_community_work', 'help' => 'form_help_community_work']
|
||||
)
|
||||
->add(
|
||||
'amountMoneySettled',
|
||||
null,
|
||||
['label' => 'form_label_amount_settled', 'help' => 'form_help_amount_settled']
|
||||
)
|
||||
->add(
|
||||
'amountTimeSettled',
|
||||
null,
|
||||
['label' => 'form_label_time_settled', 'help' => 'form_help_time_settled']
|
||||
)
|
||||
->add(
|
||||
'amountCommunityWorkSettled',
|
||||
null,
|
||||
['label' => 'form_label_community_work_settled', 'help' => 'form_help_community_work_settled']
|
||||
)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
57
src/Form/SentenceSettlementType.php
Normal file
57
src/Form/SentenceSettlementType.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Document;
|
||||
use App\Form\Type\AllowedGroupsType;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use App\Form\Type\UserGroupSubGroupsType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\NumberType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
|
||||
|
||||
class SentenceSettlementType extends AbstractType
|
||||
{
|
||||
private TokenStorageInterface $TokenStorage;
|
||||
|
||||
public function __construct(TokenStorageInterface $TokenStorage)
|
||||
{
|
||||
$this->TokenStorage = $TokenStorage;
|
||||
}
|
||||
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$sentence = $builder->getData();
|
||||
|
||||
if ($sentence) {
|
||||
if ($sentence->getType() == "fine") {
|
||||
$amountType = NumberType::class;
|
||||
$amountLabel = 'form_label_paid';
|
||||
} else {
|
||||
$amountType = IntegerType::class;
|
||||
$amountLabel = 'form_label_executed';
|
||||
}
|
||||
} else {
|
||||
$amountType = null;
|
||||
$amountLabel = null;
|
||||
}
|
||||
|
||||
$builder->add('criminal_id', HiddenType::class)
|
||||
->add('type', HiddenType::class)
|
||||
->add('amount', $amountType, ['label' => $amountLabel])
|
||||
->add('submit', SubmitType::class, [
|
||||
'label' => 'form_button_submit',
|
||||
'priority' => -900,
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
public function getBlockPrefix()
|
||||
{
|
||||
return ''; // return an empty string here
|
||||
}
|
||||
}
|
||||
@@ -19,4 +19,23 @@ class CriminalRepository extends DocumentRepositoriesExtension
|
||||
parent::__construct($registry, Criminal::class);
|
||||
$this->fields = ['amountMoney', 'amountTime', 'content']; //with title, list fields we can search in
|
||||
}
|
||||
|
||||
public function limitUnsettled(string $type)
|
||||
{
|
||||
if ($type == Criminal::TYPE_FINE) {
|
||||
$column = 'd.amountMoney';
|
||||
} elseif ($type == Criminal::TYPE_JAIL) {
|
||||
$column = 'd.amountTime';
|
||||
} elseif ($type == Criminal::TYPE_COMMUNITY_WORK) {
|
||||
$column = 'd.amountCommunityWork';
|
||||
} else {
|
||||
throw new \OutOfRangeException($type);
|
||||
}
|
||||
|
||||
$settledColumn = $column . 'Settled';
|
||||
|
||||
$this->qb->andWhere("$column <> $settledColumn OR ($column IS NOT NULL AND $settledColumn IS NULL)");
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
class DocumentRepositoriesExtension extends ServiceEntityRepository
|
||||
{
|
||||
public array $fields = [];
|
||||
private QueryBuilder $qb;
|
||||
protected QueryBuilder $qb;
|
||||
private ?QueryBuilder $qbsearch = null;
|
||||
private ?Group $group = null;
|
||||
private ?User $user = null;
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
<img src="{{ asset(groupLogo) }}" alt="{{ i.mainGroup.name }} " class="img-icon">
|
||||
{% endif %}
|
||||
{% if notype is not defined %}
|
||||
{{ ("documentType_" ~ i.classShort)|trans }}<br /><small>N°: #{{i.id}}</small>
|
||||
{{ ('documentType_' ~ i.classShort)|trans }}<br /><small>N°: #{{i.id}}</small>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
@@ -78,11 +78,21 @@
|
||||
{% endif %}
|
||||
{% if i.amountMoney is defined %}
|
||||
<br /><small>{% trans %}title_amount{% endtrans %}:</small>
|
||||
<small>{{ i.amountMoney ? i.amountMoney ~ ' ' ~'currency_symbol'|trans :'value_no_value'|trans }}</small>
|
||||
<small>{{ i.amountMoney ? i.amountMoney ~ ' ' ~'currency_symbol'|trans : 'value_no_value'|trans }}
|
||||
{{ i.amountMoney == i.amountMoneySettled ? '✅' : '❌'}}
|
||||
</small>
|
||||
{% endif %}
|
||||
{% if i.amountTime is defined %}
|
||||
<br /><small>{% trans %}title_hours{% endtrans %}:</small>
|
||||
<small>{{ i.amountTime ? i.amountTime ~ ' h' :'value_no_value'|trans}}</small>
|
||||
<small>{{ i.amountTime ? i.amountTime ~ 'h' : 'value_no_value'|trans}}
|
||||
{{ i.amountTime == i.amountTimeSettled ? '✅' : '❌'}}
|
||||
</small>
|
||||
{% endif %}
|
||||
{% if i.amountCommunityWork is defined %}
|
||||
<br /><small>{% trans %}title_community_work{% endtrans %}:</small>
|
||||
<small>{{ i.amountCommunityWork ? i.amountCommunityWork ~ 'h' : 'value_no_value'|trans}}
|
||||
{{ i.amountCommunityWork == i.amountCommunityWorkSettled ? '✅' : '❌'}}
|
||||
</small>
|
||||
{% endif %}
|
||||
{% if i.accessorySentence is defined and i.accessorySentence is not null %}
|
||||
<br /><small data-bs-toggle="tooltip" data-placement="top" title="{{ i.accessorySentence|striptags }}">{% trans %}title_accessorySentence{% endtrans %} : {{ 'value_yes'|trans}}</small>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'commented_your'|trans }} {{ ("documentType_" ~ document.getClassShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'commented_your'|trans }} {{ ('documentType_' ~ document.classShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
@@ -1 +1 @@
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'removed_your'|trans }} {{ 'comment'|trans }} {{ 'on'|trans }} {{ ("documentType_" ~ document.getClassShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'removed_your'|trans }} {{ 'comment'|trans }} {{ 'on'|trans }} {{ ('documentType_' ~ document.classShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
@@ -1 +1 @@
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'edited_your'|trans }} {{ 'comment'|trans }} {{ 'on'|trans }} {{ ("documentType_" ~ document.getClassShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'edited_your'|trans }} {{ 'comment'|trans }} {{ 'on'|trans }} {{ ('documentType_' ~ document.classShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
@@ -1 +1 @@
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'removed_your'|trans }} {{ ("documentType_" ~ document.getClassShort)|trans }} {{ document.title }}
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'removed_your'|trans }} {{ ('documentType_' ~ document.classShort)|trans }} {{ document.title }}
|
||||
@@ -1 +1 @@
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'edited_your'|trans }} {{ ("documentType_" ~ document.getClassShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
<a href="{{ path('user_view', {id: sender.id}) }}">{{ sender.fullname }}</a> {{ 'edited_your'|trans }} {{ ('documentType_' ~ document.classShort)|trans }} <a href="{{ path('document_view', {id: document.id}) }}">{{ document.title }}</a>
|
||||
@@ -152,6 +152,9 @@
|
||||
<li class="pc-item">
|
||||
<a href="{{ path('document_list', {type: 'medical'}) }}" class="pc-link"><span class="pc-micon"><i class="material-icons-two-tone">vaccines</i></span><span class="pc-mtext">{% trans %}title_medicals{% endtrans %}</span></a>
|
||||
</li>
|
||||
<li class="pc-item">
|
||||
<a href="{{ path('unsettled_sentence_list', {type: 'fine'}) }}" class="pc-link"><span class="pc-micon"><i class="material-icons-two-tone">sports</i></span><span class="pc-mtext">{% trans %}title_unsettled_sentence_list{% endtrans %}</span></a>
|
||||
</li>
|
||||
|
||||
{% if app.user.hasPermission('group_administrate') %}
|
||||
<li class="pc-item pc-caption">
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<h3>{% trans %}title_comment_belong_document{% endtrans %}</h3>
|
||||
<p><a href="{{ path('document_view', {'id': comment.document.id}) }}" class="btn btn-primary btn-sm">{{ comment.document.getClassShort}} - {{comment.document.title}}</a></p>
|
||||
<p><a href="{{ path('document_view', {'id': comment.document.id}) }}" class="btn btn-primary btn-sm">{{ ('documentType_' ~ comment.document.classShort)|trans }} - {{comment.document.title}}</a></p>
|
||||
<p>{% trans %}title_author{% endtrans %} {{comment.creator.fullName}}, {{comment.creator.mainGroup.shortname}}</p>
|
||||
<p>{% trans %}title_created_at{% endtrans %} {{comment.createdAt |date('_datetime.format'|trans)}}</p>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}
|
||||
{{ "title_creation"|trans }} {{ "of"|trans }} {{ ("documentType_" ~ type|capitalize)|trans }}
|
||||
{{ "title_creation"|trans }} {{ "of"|trans }} {{ ('documentType_' ~ type|capitalize)|trans }}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}{{ document.getClassShort }}: {{ document.getTitle }} - {% trans %}title_history{% endtrans %}{% endblock %}
|
||||
{% block title %}{{ ('documentType_' ~ document.classShort)|trans }}: {{ document.getTitle }} - {% trans %}title_history{% endtrans %}{% endblock %}
|
||||
{% block subtitle %}#{{ document.id }}: {{ document.getTitle }} - {% trans %}title_history{% endtrans %} {% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}{{ ("documentType_" ~ type)|trans }}{% if archive %} | {% trans %}title_archives{% endtrans %}{% endif %}{% endblock %}
|
||||
{% block title %}{{ ('documentType_' ~ type)|trans }}{% if archive %} | {% trans %}title_archives{% endtrans %}{% endif %}{% endblock %}
|
||||
{% block subtitle %}
|
||||
{{ ("documentType_" ~ type)|trans }} {% if archive %} | {% trans %}title_archives{% endtrans %}{% else %}
|
||||
{{ ('documentType_' ~ type)|trans }} {% if archive %} | {% trans %}title_archives{% endtrans %}{% else %}
|
||||
{% if documentTypeEntity.directory is not defined and documentTypeEntity.user is not defined %}
|
||||
{% if app.user.hasPermission(type ~ '_create') %}
|
||||
<a href="{{ path('document_create', {type: type}) }}"><span class="badge rounded-pill bg-success"><i class="fa fa-plus"></i> {% trans %}button_create{% endtrans %}</span></a>{% endif %}
|
||||
|
||||
@@ -5,6 +5,31 @@
|
||||
</div>
|
||||
<hr>
|
||||
<ul>
|
||||
<li>{% trans %}title_amount{% endtrans %} : {{ document.amountMoney }} {{'currency_symbol'|trans}}</li>
|
||||
<li>{% trans %}title_hours{% endtrans %} : {{ document.amountTime }} {{ 'title_hours'| trans }}</li>
|
||||
<li>{% trans %}title_amount{% endtrans %} : {{ document.amountMoney ? document.amountMoney ~ ' ' ~ 'currency_symbol'|trans : 'value_no_value'|trans }}
|
||||
{% if document.amountMoney %}
|
||||
{% if document.amountMoney == document.amountMoneySettled %}
|
||||
✅
|
||||
{% else %}
|
||||
❌ {% trans %}title_missing{% endtrans %}: {{ document.amountMoney - document.amountMoneySettled }}{{'currency_symbol'|trans}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
<li>{% trans %}title_hours{% endtrans %} : {{ document.amountTime ? document.amountTime ~ ' ' ~ 'title_hours'|trans : 'value_no_value'|trans }}
|
||||
{% if document.amountTime %}
|
||||
{% if document.amountTime == document.amountTimeSettled %}
|
||||
✅
|
||||
{% else %}
|
||||
❌ {% trans %}title_missing{% endtrans %}: {{ document.amountTime - document.amountTimeSettled }} {{'title_hours'|trans}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
<li>{% trans %}title_community_work{% endtrans %} : {{ document.amountCommunityWork ? document.amountCommunityWork ~ ' ' ~ 'title_hours'|trans : 'value_no_value'|trans }}
|
||||
{% if document.amountCommunityWork %}
|
||||
{% if document.amountCommunityWork == document.amountCommunityWorkSettled %}
|
||||
✅
|
||||
{% else %}
|
||||
❌ {% trans %}title_missing{% endtrans %}: {{ document.amountCommunityWork - document.amountCommunityWorkSettled }} {{'title_hours'|trans}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
@@ -26,7 +26,7 @@
|
||||
</div>
|
||||
<div class="col">
|
||||
{% if i.AllowShare %}<a href="{{ path('share', {'share': i.share}) }}" target="_blank">{% endif %}
|
||||
<h4>#{{i.id}} {{i.classShort}} - {{i.title }} {% if i.archive %}<small>({% trans %}title_archived{% endtrans %})</small>{% endif %}{% if i.AllowShare %} <i class="fa fa-link text-success" data-bs-toggle="tooltip" data-placement="top" title="{% trans %}tooltip_document_shared{% endtrans %}" ></i>{% endif %}</h4>
|
||||
<h4>#{{i.id}} {{ ('documentType_' ~ i.classShort)|trans }} - {{i.title }} {% if i.archive %}<small>({% trans %}title_archived{% endtrans %})</small>{% endif %}{% if i.AllowShare %} <i class="fa fa-link text-success" data-bs-toggle="tooltip" data-placement="top" title="{% trans %}tooltip_document_shared{% endtrans %}" ></i>{% endif %}</h4>
|
||||
{% if i.AllowShare %}</a>{% endif %}
|
||||
{% if i.directory is defined %}<p>#{{i.directory.id}} - {{i.directory.fullName}} {{i.directory.gender}} {{i.directory.phone}}</p>{% endif %}
|
||||
{% if i.status is defined %}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}{{ ("documentType_" ~ document.getClassShort)|trans }}: {{ document.getTitle }}{% endblock %}
|
||||
{% block title %}{{ ('documentType_' ~ document.classShort)|trans }}: {{ document.getTitle }}{% endblock %}
|
||||
{% block subtitle %}#{{ document.id }}: {{ document.getTitle }} {% endblock %}
|
||||
|
||||
{% block body %}
|
||||
@@ -53,13 +53,13 @@
|
||||
</div>
|
||||
<div class="col">
|
||||
<h1 style="color:beige;">{{document.mainGroup.name}}</h1>
|
||||
<h2 style="color:beige;">{{ ("documentType_" ~ document.getClassShort)|trans }} #{{ document.getId }} : {{ document.getTitle }}</h2>
|
||||
<h2 style="color:beige;">{{ ('documentType_' ~ document.classShort)|trans }} #{{ document.getId }} : {{ document.getTitle }}</h2>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="row p-2">
|
||||
<div class="col-12">
|
||||
{% include 'document/types/' ~ document.getClassShort ~ '.html.twig' with {'document': document} %}
|
||||
{% include 'document/types/' ~ document.classShort ~ '.html.twig' with {'document': document} %}
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
31
templates/sentence/line.html.twig
Normal file
31
templates/sentence/line.html.twig
Normal file
@@ -0,0 +1,31 @@
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ path('directory_view', {'id': i.directory.id}) }}" >{{ i.directory.firstname }} {{ i.directory.lastname }} {% if i.directory.dead %}, {% trans %}title_dead{% endtrans %}{% endif %}</a>
|
||||
</td>
|
||||
<td>
|
||||
{% trans %}title_missing{% endtrans %}:
|
||||
{% if type == 'fine' %}
|
||||
{{ i.amountMoney - i.amountMoneySettled }} {{'currency_symbol'|trans}}
|
||||
{% elseif type == 'jail' %}
|
||||
{{ i.amountTime - i.amountTimeSettled }} {{'title_hours'|trans}}
|
||||
{% elseif type == 'community_work' %}
|
||||
{{ i.amountCommunityWork - i.amountCommunityWorkSettled }} {{'title_hours'|trans}}
|
||||
{% endif %}
|
||||
<br/>
|
||||
{{ form_start(i.form) }}
|
||||
<span class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">{{ form_label(i.form.amount) }}</span>
|
||||
</div>
|
||||
{{ form_widget(i.form.amount) }}
|
||||
{{ form_widget(i.form.submit, { 'label': 'button_ok' }) }}
|
||||
</span>
|
||||
{{ form_end(i.form) }}
|
||||
</td>
|
||||
<td>
|
||||
{{i.createdAt |date('_datetime.format'|trans)}}
|
||||
</td>
|
||||
<td>
|
||||
{% include '_cells/documentActions.html.twig' with {'document': i, 'noedit': true, 'nodelete': true, 'noarchive': true} %}
|
||||
</td>
|
||||
</tr>
|
||||
63
templates/sentence/list.html.twig
Normal file
63
templates/sentence/list.html.twig
Normal file
@@ -0,0 +1,63 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}{{ "title_unsettled_sentence_list"|trans }}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row">
|
||||
<div class="col-12 col-md-12">{{form(searchForm)}}</div>
|
||||
</div>
|
||||
<div class="btn-group d-flex">
|
||||
<a href="fine" class="btn btn-outline-primary w-100{% if type=="fine" %} disabled{% endif %}">{% trans %}title_fines{% endtrans %}</a>
|
||||
<a href="jail" class="btn btn-outline-primary w-100{% if type=="jail" %} disabled{% endif %}">{% trans %}title_jail_time{% endtrans %}</a>
|
||||
<a href="community_work" class="btn btn-outline-primary w-100{% if type=="community_work" %} disabled{% endif %}">{% trans %}title_community_work{% endtrans %}</a>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12"><hr><p>{{ 'title_count'|trans }}: {{ count }}</p>
|
||||
{% if pagination[0].directory is not defined %}{% set nodirectorylink = true %}{% endif %}
|
||||
{% set slicelimit = (limit is defined)? limit : null %}
|
||||
{% set counter = 0 %}
|
||||
|
||||
{% if pagination|length > 0 %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-dark table-striped table-hover align-middle">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{% trans %}title_name{% endtrans %}</th>
|
||||
<th scope="col">{% trans %}title_missing{% endtrans %}</th>
|
||||
<th scope="col">{% trans %}title_date{% endtrans %}</th>
|
||||
{% if noaction is not defined %}
|
||||
<th scope="col">{% trans %}tooltip_view{% endtrans %}</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for i in pagination |slice(0, slicelimit) %}
|
||||
{% set counter = counter + 1 %}
|
||||
{% include 'sentence/line.html.twig' with {'sentence': i, 'type': type } %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{% if slicelimit is not null and pagination|length > slicelimit %}
|
||||
<div class="row my-2">
|
||||
<div class="col">
|
||||
{% if nodirectorylink is not defined %}
|
||||
<a class="btn btn-primary btn-sm" href="{{ path('document_list', {'type': pagination[0].classShort, 'directory': pagination[0].directory.id}) }}">{% trans %}button_view_more{% endtrans %}</a>
|
||||
{% else %}
|
||||
<a class="btn btn-primary btn-sm" href="{{ path('document_list', {'type': pagination[0].classShort}) }}">{% trans %}button_view_more{% endtrans %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<p>{% trans %}no_data{% endtrans %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
{{ knp_pagination_render(pagination) }}
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -251,12 +251,14 @@ form_help_accessorySentence: Indicate here the information if addition of access
|
||||
form_help_allowedgroups: Check the groups allowed to access this
|
||||
form_help_allowedsubgroups: This document will be only available for those subgroups
|
||||
form_help_amount: Enter a monetary value
|
||||
form_help_amount_settled: Entrez une valeur monétaire
|
||||
form_help_arrested_at: Enter the date of arrest
|
||||
form_help_cant_edit_firstname: You cannot edit your first name
|
||||
form_help_cant_edit_lastname: You cannot edit your first last name
|
||||
form_help_checkbox_adminmode: Check the box to switch the user to admin mode
|
||||
form_help_checkbox_isdesactivated: Check the box to prevent the user from using their account, without deleting it
|
||||
form_help_checkbox_isverified: This box is automatically checked when the user validates his email address.
|
||||
form_help_community_work: Indicate the duration of community work retained on the criminal record
|
||||
form_help_firstname: First name
|
||||
form_help_gang: Select an associated group
|
||||
form_help_gender: Indicate the person's gender
|
||||
@@ -277,6 +279,7 @@ form_help_phone: Enter the phone number
|
||||
form_help_power: The power determines the level for the permissions (the higher the power, the more important it is)
|
||||
form_help_search: Indicate the subject of your research. For a date, use the format DD / MM / YYYY
|
||||
form_help_time: Indicate the duration retained on the locker
|
||||
form_help_time_settled: Indicate the duration executed by the convict
|
||||
form_help_until: Indicate the date on which the permit can be surrendered
|
||||
form_help_versus: Indicate against whom the complaint is made (X if unknown)
|
||||
form_help_wanted: Declare the deceased individual, remember to make a death certificate
|
||||
@@ -288,6 +291,7 @@ form_label_allowedgroups: Authorized groups
|
||||
form_label_allowedsubgroups: Allowed subgroups
|
||||
form_label_allowShare: Check this box to allow public sharing
|
||||
form_label_amount: Total Amount
|
||||
form_label_amount_settled: Total Amount acquitted
|
||||
form_label_archive: Archives
|
||||
form_label_arrested_at: Arrest
|
||||
form_label_asked_for_lawyer: Request for a lawyer
|
||||
@@ -297,11 +301,14 @@ form_label_checkbox_adminmode: Admin Mode
|
||||
form_label_checkbox_isdesactivated: account Disabled
|
||||
form_label_checkbox_isverified: Email verified
|
||||
form_label_color: Color
|
||||
form_label_community_work: Total Community Work Duration
|
||||
form_label_community_work_settled: Total executed Community Work
|
||||
form_label_complaint_status: Complaint status
|
||||
form_label_content: Content
|
||||
form_label_dead: Deceased
|
||||
form_label_download_image: Download picture
|
||||
form_label_email: Email Adress
|
||||
form_label_executed: Executed
|
||||
form_label_firstname: Firstname
|
||||
form_label_folder_name: Folder name
|
||||
form_label_gang_info: Informations about Group member
|
||||
@@ -333,6 +340,7 @@ form_label_model: Template
|
||||
form_label_motd: M.O.T.D.
|
||||
form_label_name: Name
|
||||
form_label_numberplate: Numberplate
|
||||
form_label_paid: Paid
|
||||
form_label_password: Password
|
||||
form_label_permissions: Permissions
|
||||
form_label_power: Power
|
||||
@@ -347,6 +355,7 @@ form_label_shortName: Short Name
|
||||
form_label_status: Status
|
||||
form_label_subgroups: Speciality
|
||||
form_label_time: Total Duration
|
||||
form_label_time_settled: Total Duration Executed
|
||||
form_label_title: Title
|
||||
form_label_type: Type
|
||||
form_label_until: until
|
||||
@@ -651,6 +660,7 @@ title_comment_add: Add a comment
|
||||
title_comment_belong_document: This belong to
|
||||
title_comment_edition: Edit a comment
|
||||
title_comments: Comments
|
||||
title_community_work: Hours of Community Work
|
||||
title_complaint: Complaint
|
||||
title_complaints: Complaints
|
||||
title_count: total number
|
||||
@@ -701,6 +711,7 @@ title_errorpage_error: Error
|
||||
title_faceImage: Face photo
|
||||
title_field: Fields
|
||||
title_filter: Filters
|
||||
title_fines: Fines
|
||||
title_folder_add_directories: List of Directories for adding to a folder
|
||||
title_folder_add_directory: Adding a directory to the folder
|
||||
title_folder_add_documents: Adding a document to the folder
|
||||
@@ -733,6 +744,7 @@ title_group_view_documents: Group's documents
|
||||
title_group_view: View group
|
||||
title_group: group
|
||||
title_groups: groups
|
||||
title_jail_time: Jail
|
||||
title_hasnopapers: without papers
|
||||
title_height: Height
|
||||
title_history: History
|
||||
@@ -772,6 +784,7 @@ title_medical_trusted: Trusted people
|
||||
title_medicals: Medical visits
|
||||
title_members: Members
|
||||
title_merge_directory: Merges directories
|
||||
title_missing: Missing
|
||||
title_model: Template
|
||||
title_motd: M.O.T.D
|
||||
title_name: Name
|
||||
@@ -817,6 +830,7 @@ title_users_documents: User's documents
|
||||
title_users_list: List of users
|
||||
title_users_sanctions: User's sanctions
|
||||
title_users: Users
|
||||
title_unsettled_sentence_list: Unsettled sentences
|
||||
title_value: Value
|
||||
title_verified: Verified
|
||||
title_versus: Versus
|
||||
@@ -845,6 +859,7 @@ tooltip_fire: Fire
|
||||
tooltip_folder_add_directory: Add a directory to folder
|
||||
tooltip_folder_add_document: Add a document to folder
|
||||
tooltip_id_card: ID Card
|
||||
tooltip_markread: Mark as read
|
||||
tooltip_merge: Merge
|
||||
tooltip_motorcycle_licence: Motorcycle licence
|
||||
tooltip_remove_from_folder: Remove from folder
|
||||
|
||||
@@ -251,12 +251,14 @@ form_help_accessorySentence: Indiquer ici les informations si ajout de peine(s)
|
||||
form_help_allowedgroups: Cochez les groupes autorisés à accéder à ceci
|
||||
form_help_allowedsubgroups: Ce document sera uniquement accessible aux specialitées cochées
|
||||
form_help_amount: Entrez une valeur monétaire
|
||||
form_help_amount_settled: Entrez une valeur monétaire
|
||||
form_help_arrested_at: Entrez la date d'arrestation
|
||||
form_help_cant_edit_firstname: Vous ne pouvez pas éditer votre prénom
|
||||
form_help_cant_edit_lastname: Vous ne pouvez pas éditer votre nom
|
||||
form_help_checkbox_adminmode: Cochez la case pour passer l'utilisateur en mode admin
|
||||
form_help_checkbox_isdesactivated: Cochez la case pour empêcher l'utilisateur d'utiliser son compte, sans l'effacer
|
||||
form_help_checkbox_isverified: Cette case est cochée automatiquement lorsque l'utilisateur valide son adresse email
|
||||
form_help_community_work: Indiquez le durée des travaux d'intérêt général retenus sur le casier
|
||||
form_help_firstname: Prénom
|
||||
form_help_gang: Séléctionnez un groupe associé a cette personne
|
||||
form_help_gender: Indiquez le genre de la personne
|
||||
@@ -277,6 +279,7 @@ form_help_phone: Indiquez le numéro de téléphone
|
||||
form_help_power: Le power détermine le niveau pour les permissions (plus le power est haut, plus il est important)
|
||||
form_help_search: Indiquez le sujet de votre recherche. Pour une date, utilisez le format JJ/MM/AAAA
|
||||
form_help_time: Indiquez la durée retenue sur le casier
|
||||
form_help_time_settled: Indiquez la durée effectuée par le prévenu
|
||||
form_help_until: Indiquez la date à laquelle le permis peut être redonné
|
||||
form_help_versus: Indiquez contre qui la plainte est déposée (X si inconnu)
|
||||
form_help_wanted: Déclarer l'individu décédé, pensez à faire un Acte de décès
|
||||
@@ -288,6 +291,7 @@ form_label_allowedgroups: Groupes autorisés
|
||||
form_label_allowedsubgroups: Specialitées autorisées en acces
|
||||
form_label_allowShare: Cochez cette case pour autoriser le partage public
|
||||
form_label_amount: Montant total
|
||||
form_label_amount_settled: Montant total acquitté
|
||||
form_label_archive: Archives
|
||||
form_label_arrested_at: Arrestation
|
||||
form_label_asked_for_lawyer: Demande d'un avocat
|
||||
@@ -297,11 +301,14 @@ form_label_checkbox_adminmode: Mode Admin
|
||||
form_label_checkbox_isdesactivated: Compte désactivé
|
||||
form_label_checkbox_isverified: Email vérifié
|
||||
form_label_color: Couleur
|
||||
form_label_community_work: Durée totale TIG
|
||||
form_label_community_work_settled: Durée totale TIG effectués
|
||||
form_label_complaint_status: Etat de la plainte
|
||||
form_label_content: Contenu
|
||||
form_label_dead: Individu décédé
|
||||
form_label_download_image: Télécharger l'image
|
||||
form_label_email: Adresse Email
|
||||
form_label_executed: Effectuées
|
||||
form_label_firstname: Prénom
|
||||
form_label_folder_name: Nom du dossier
|
||||
form_label_gang_info: Informations du membre dans le Groupe associé
|
||||
@@ -333,6 +340,7 @@ form_label_model: Modèle
|
||||
form_label_motd: M.O.T.D.
|
||||
form_label_name: Nom
|
||||
form_label_numberplate: Plaque d'immatriculation
|
||||
form_label_paid: Payée
|
||||
form_label_password: Mot de passe
|
||||
form_label_permissions: Permissions
|
||||
form_label_power: Power
|
||||
@@ -347,6 +355,7 @@ form_label_shortName: Nom court
|
||||
form_label_status: Statut
|
||||
form_label_subgroups: Spécialités
|
||||
form_label_time: Durée totale
|
||||
form_label_time_settled: Durée totale effectuée
|
||||
form_label_title: Titre
|
||||
form_label_type: Type
|
||||
form_label_until: Jusqu'à
|
||||
@@ -650,6 +659,7 @@ title_comment_add: Ajouter un commentaire
|
||||
title_comment_belong_document: Ce document appartient
|
||||
title_comment_edition: Éditer un commentaire
|
||||
title_comments: Commentaires
|
||||
title_community_work: Heures de TIG
|
||||
title_complaint: Plainte
|
||||
title_complaints: Plaintes
|
||||
title_count: Nombre total
|
||||
@@ -700,6 +710,7 @@ title_errorpage_error: Ouups !
|
||||
title_faceImage: Photo de Face
|
||||
title_field: Champs
|
||||
title_filter: Filtre
|
||||
title_fines: Amendes
|
||||
title_folder_add_directories: Liste des fiches pour ajout au dossier
|
||||
title_folder_add_directory: Ajouter une fiche au dossier
|
||||
title_folder_add_documents: Ajouter un document au dossier
|
||||
@@ -732,6 +743,7 @@ title_group_view_documents: Voir les documents du groupe
|
||||
title_group_view: Voir un groupe
|
||||
title_group: Groupe
|
||||
title_groups: Groupes
|
||||
title_jail_time: Prison
|
||||
title_hasnopapers: Sans papier
|
||||
title_height: Taille
|
||||
title_history: Historique
|
||||
@@ -773,6 +785,7 @@ title_members: Membres
|
||||
title_merge_directory: Fusionner les fiches
|
||||
title_model: Modèle
|
||||
title_motd: M.O.T.D
|
||||
title_missing: Manquant
|
||||
title_name: Nom
|
||||
title_navigation: Menu
|
||||
title_noauthor: Pas d'utilisateur
|
||||
@@ -816,6 +829,7 @@ title_users_documents: Documents de l'utilisateur
|
||||
title_users_list: Liste des Utilisateurs
|
||||
title_users_sanctions: Sanctions de l'utilisateur
|
||||
title_users: Utilisateurs
|
||||
title_unsettled_sentence_list: Sentences en cours
|
||||
title_value: Valeur
|
||||
title_verified: Vérifié
|
||||
title_versus: Contre
|
||||
@@ -844,6 +858,7 @@ tooltip_fire: Renvoyer
|
||||
tooltip_folder_add_directory: Ajouter une fiche au dossier
|
||||
tooltip_folder_add_document: Ajouter un document au dossier
|
||||
tooltip_id_card: Carte d'identité
|
||||
tooltip_markread: Marquer comme lu
|
||||
tooltip_merge: Fusionner
|
||||
tooltip_motorcycle_licence: Permis Moto
|
||||
tooltip_remove_from_folder: Retirer du dossier
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"version": "0.2.21"
|
||||
"version": "0.2.23"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user