post release 1.2 fixes (#1068)

* fix release command
* fix permission name in UPGRADING
* added missing korean calendar translations
* fixed entry.total for invoice with fixed rates
This commit is contained in:
Kevin Papst
2019-09-03 11:59:34 +02:00
committed by GitHub
parent 94f8159fdc
commit 93ab3d5666
13 changed files with 50 additions and 47 deletions

View File

@@ -19,7 +19,7 @@ Perform EACH version specific task between your version and the new one, otherwi
- Maximum activity name length lowered to 150 character
- Added new permission: `manage_invoice_template`
- Removed permissions: `view_invoice_template`, `create_invoice_template`, `edit_invoice_template`, `delete_invoice_template`
- Removed permission: `view_invoice` (using `create_export` only)
- Removed permission: `create_export` (using `create_export` only)
- Custom export renderer need to check for usage of `Timesheet::getEnd()` as running entries can now be exported as well
## [1.1](https://github.com/kevinpapst/kimai2/releases/tag/1.1)

View File

@@ -2,16 +2,17 @@
require('fullcalendar');
require('fullcalendar/dist/gcal.min');
require('fullcalendar/dist/locale/de');
require('fullcalendar/dist/locale/it');
require('fullcalendar/dist/locale/fr');
require('fullcalendar/dist/locale/es');
require('fullcalendar/dist/locale/ru');
require('fullcalendar/dist/locale/ar');
require('fullcalendar/dist/locale/de');
require('fullcalendar/dist/locale/es');
require('fullcalendar/dist/locale/fr');
require('fullcalendar/dist/locale/hu');
require('fullcalendar/dist/locale/pt-br');
require('fullcalendar/dist/locale/sv');
require('fullcalendar/dist/locale/it');
require('fullcalendar/dist/locale/ja');
require('fullcalendar/dist/locale/ko');
require('fullcalendar/dist/locale/pt-br');
require('fullcalendar/dist/locale/ru');
require('fullcalendar/dist/locale/sk');
require('fullcalendar/dist/locale/sv');
require('fullcalendar/dist/fullcalendar.min.css');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -24,7 +24,7 @@
"build/runtime.4ee6be68.js",
"build/0.a87622f3.js",
"build/1.c1bee41f.js",
"build/calendar.e654bdd4.js"
"build/calendar.5839778f.js"
],
"css": [
"build/calendar.b0551848.css"
@@ -39,7 +39,7 @@
"build/app.e8d9cb98.css": "sha384-UuTUHbhvRNk3t+1gL0JNACbAl5xXH8OhD9ah7jaXDbd32z8dNCjK+5oJSQF77rmz",
"build/2.7be60d8d.js": "sha384-txR0QG+838LKYtPQ99Gx4OU7WmgN9J3joZEyGwIskSz74EN1T4/IBVnmNaKiFN1q",
"build/chart.0af3f813.js": "sha384-I57c9DtU3AOG2kzKqIZkIu0hi1aGYHRZ5QG4LKC9+9slzJnAMttPGXoL2cQG3m6y",
"build/calendar.e654bdd4.js": "sha384-TYdXaKv0q95Z4i/TFUaFHzMOZ0N6T4iuV92ejc0BX7Rpbd0p55ZhbgriPSn5pVcK",
"build/calendar.5839778f.js": "sha384-BwovMgqL5Lk/dbN98yO2ZkiYQWBB/7JWQ3NGS0aDdoPhtergAOG3hieLbCyyz002",
"build/calendar.b0551848.css": "sha384-ta519W5+NY1a8FBh7rD4zORYTfUXCYTLci0Z25nf4BfodmuXqyPVNEe7dSe2/fRd"
}
}

View File

@@ -5,7 +5,7 @@
"build/app.css": "build/app.e8d9cb98.css",
"build/app.js": "build/app.98c93d11.js",
"build/calendar.css": "build/calendar.b0551848.css",
"build/calendar.js": "build/calendar.e654bdd4.js",
"build/calendar.js": "build/calendar.5839778f.js",
"build/chart.js": "build/chart.0af3f813.js",
"build/runtime.js": "build/runtime.4ee6be68.js",
"build/fonts/fa-brands-400.eot": "build/fonts/fa-brands-400.8e49b728.eot",

View File

@@ -118,10 +118,10 @@ class CreateReleaseCommand extends Command
$commands = [
'Clone repository' => $gitCmd . ' ' . $tmpDir,
'Install composer dependencies' => 'cd ' . $tmpDir . ' && composer install --no-dev --optimize-autoloader',
'Create database' => 'cd ' . $tmpDir . ' && ' . $prefix . ' bin/console doctrine:database:create -n',
'Create tables' => 'cd ' . $tmpDir . ' && ' . $prefix . ' bin/console doctrine:schema:create -n',
'Add all migrations' => 'cd ' . $tmpDir . ' && ' . $prefix . ' bin/console doctrine:migrations:version --add --all -n',
'Install composer dependencies' => sprintf('cd %s && %s composer install --no-dev --optimize-autoloader', $tmpDir, $prefix),
'Create database' => sprintf('cd %s && %s bin/console doctrine:database:create -n', $tmpDir, $prefix),
'Create tables' => sprintf('cd %s && %s bin/console doctrine:schema:create -n', $tmpDir, $prefix),
'Add all migrations' => sprintf('cd %s && %s bin/console doctrine:migrations:version --add --all -n', $tmpDir, $prefix),
];
$filesToDelete = [

View File

@@ -221,7 +221,7 @@ class InvoiceController extends AbstractController
*/
public function listTemplateAction(): Response
{
$templates = $this->invoiceRepository->findByQuery(new BaseQuery());
$templates = $this->invoiceRepository->getPagerfantaForQuery(new BaseQuery());
return $this->render('invoice/templates.html.twig', [
'entries' => $templates,

View File

@@ -10,6 +10,7 @@
namespace App\Form\Type;
use App\Entity\InvoiceTemplate;
use App\Repository\InvoiceTemplateRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -27,6 +28,9 @@ class InvoiceTemplateType extends AbstractType
$resolver->setDefaults([
'label' => 'label.template',
'class' => InvoiceTemplate::class,
'query_builder' => function (InvoiceTemplateRepository $repository) {
return $repository->getQueryBuilderForFormType();
}
]);
}

View File

@@ -64,7 +64,7 @@ class InvoiceItem
*/
private $additionalFields = [];
public function addAdditionalField(string $name, string $value): InvoiceItem
public function addAdditionalField(string $name, ?string $value): InvoiceItem
{
$this->additionalFields[$name] = $value;

View File

@@ -183,8 +183,7 @@ trait RendererTrait
$amount = $this->getFormattedDuration($invoiceItem->getDuration());
$description = $invoiceItem->getDescription();
if (null !== $invoiceItem->getFixedRate()) {
$rate = $invoiceItem->getFixedRate();
if ($invoiceItem->isFixedRate()) {
$hourlyRate = $invoiceItem->getFixedRate();
$amount = $invoiceItem->getAmount();
}

View File

@@ -12,39 +12,18 @@ namespace App\Repository;
use App\Entity\InvoiceTemplate;
use App\Repository\Query\BaseQuery;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Query;
use Doctrine\ORM\QueryBuilder;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;
class InvoiceTemplateRepository extends EntityRepository
{
use RepositoryTrait;
/**
* @return bool
*/
public function hasTemplate()
public function hasTemplate(): bool
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('COUNT(t.id) as totalRecords')
->from(InvoiceTemplate::class, 't')
;
$result = $qb->getQuery()->execute([], Query::HYDRATE_ARRAY);
if (!isset($result[0])) {
return false;
}
return $result[0]['totalRecords'] > 0;
return $this->count([]) > 0;
}
/**
* @param BaseQuery $query
* @return QueryBuilder|Pagerfanta|array
*/
public function findByQuery(BaseQuery $query)
public function getQueryBuilderForFormType(): QueryBuilder
{
$qb = $this->getEntityManager()->createQueryBuilder();
@@ -52,7 +31,27 @@ class InvoiceTemplateRepository extends EntityRepository
->from(InvoiceTemplate::class, 't')
->orderBy('t.name');
return $this->getBaseQueryResult($qb, $query);
return $qb;
}
private function getQueryBuilderForQuery(BaseQuery $query): QueryBuilder
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('t')
->from(InvoiceTemplate::class, 't')
->orderBy('t.name');
return $qb;
}
public function getPagerfantaForQuery(BaseQuery $query): Pagerfanta
{
$paginator = new Pagerfanta(new DoctrineORMAdapter($this->getQueryBuilderForQuery($query), false));
$paginator->setMaxPerPage($query->getPageSize());
$paginator->setCurrentPage($query->getPage());
return $paginator;
}
/**

View File

@@ -65,7 +65,7 @@
<tbody>
{% for entry in model.calculator.entries %}
{% set duration = entry.duration|duration %}
{% if entry.fixedRate is not null %}
{% if entry.fixedRate %}
{% set rate = entry.fixedRate %}
{% set duration = entry.amount %}
{% elseif entry.hourlyRate is not null %}