| {{ $mosaic->name }} |
- {{ $mosaic->year }}-{{ $mosaic->week}}
+ {{ $mosaic->end_date->copy()->subDays($mosaic->offset)->format('Y-m-d') }}
+ |
+
+ {{ $mosaic->end_date->format('Y-m-d') }}
+ |
+
+ {{ $mosaic->offset }}
|
@@ -52,7 +64,6 @@ class="px-3 py-3.5 text-right text-sm font-semibold text-gray-900 sm:pr-8 lg:pr-
Results: {{ \Illuminate\Support\Number::format($mosaics->total()) }}
-
{{ $mosaics->links('livewire.pagination') }}
diff --git a/laravel_app/resources/views/livewire/projects/tabs/report.blade.php b/laravel_app/resources/views/livewire/projects/tabs/report.blade.php
index 7720189..458e042 100644
--- a/laravel_app/resources/views/livewire/projects/tabs/report.blade.php
+++ b/laravel_app/resources/views/livewire/projects/tabs/report.blade.php
@@ -52,6 +52,7 @@ class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6 lg
+
diff --git a/laravel_app/tests/Unit/Models/ProjectMosaicTest.php b/laravel_app/tests/Unit/Models/ProjectMosaicTest.php
index 7789b2e..7d7222d 100644
--- a/laravel_app/tests/Unit/Models/ProjectMosaicTest.php
+++ b/laravel_app/tests/Unit/Models/ProjectMosaicTest.php
@@ -24,19 +24,20 @@ class ProjectMosaicTest extends TestCase
* @test
* @dataProvider filenameProvider
* */
- public function it_should_return_the_correct_attachment_path($year,$week, $expected)
+ public function it_should_return_the_correct_attachment_path($endDate,$offset, $expected)
{
$this->assertEquals(
$expected,
- ProjectMosaic::getFilenameForYearAndWeek($year, $week)
+ ProjectMosaic::getFilenameByPeriod($endDate,$offset)
+
);
}
public static function filenameProvider(){
return [
- [2022, 1, 'week_01_2022.tif'],
- [2022, 10, 'week_10_2022.tif'],
+ [new Carbon('2022-01-01'), 10, 'period_2021-12-22_2022-01-01.tif'],
+ [new Carbon('2022-10-25'),7, 'period_2022-10-18_2022-10-25.tif'],
];
}
diff --git a/laravel_app/tests/Unit/Models/ProjectReportTest.php b/laravel_app/tests/Unit/Models/ProjectReportTest.php
index 8088b04..2c2c57a 100644
--- a/laravel_app/tests/Unit/Models/ProjectReportTest.php
+++ b/laravel_app/tests/Unit/Models/ProjectReportTest.php
@@ -21,28 +21,28 @@ protected function setUp(): void
parent::setUp(); // TODO: Change the autogenerated stub
}
- /**
- * @test
- * @dataProvider weeksAgoProvider
- */
- public function it_can_calculatore_weeksAgo($year, $week, $expected)
- {
- Carbon::setTestNow(Carbon::now()->setISODate('2021', '41'));
- $projectReport = ProjectReport::make([
- 'year' => $year,
- 'week' => $week,
- ]);
- $this->assertEquals($expected, $projectReport->weeksAgo());
- }
-
- public static function weeksAgoProvider()
- {
- return [
- '1 week ago' => [2021, 40, 1],
- '2 weeks ago' => [2021, 39, 2],
- '3 weeks ago' => [2021, 38, 3],
- ];
- }
+// /**
+// * @test
+// * @dataProvider weeksAgoProvider
+// */
+// public function it_can_calculatore_weeksAgo($endDate, $offset, $expected)
+// {
+// Carbon::setTestNow(Carbon::now()->setISODate('2021', '41'));
+// $projectReport = ProjectReport::make([
+// 'end_date' => $endDate,
+// 'offset' => $offset,
+// ]);
+// $this->assertEquals($expected, $projectReport->weeksAgo());
+// }
+//
+// public static function weeksAgoProvider()
+// {
+// return [
+// '1 week ago' => [2021, 40, 1],
+// '2 weeks ago' => [2021, 39, 2],
+// '3 weeks ago' => [2021, 38, 3],
+// ];
+// }
/**
* @test
@@ -55,8 +55,8 @@ public function it_can_get_the_full_path_name()
]);
$projectReport = $project->reports()->create([
'name' => 'name',
- 'year' => 2021,
- 'week' => 41,
+ 'end_date' => new Carbon('2021-01-01'),
+ 'offset' => 10,
'path' => 'path/doc.pdf',
]);
$projectReport->setStatusSuccess();
@@ -67,7 +67,7 @@ public function it_can_get_the_full_path_name()
* @test
* @dataProvider reportDateProvider
*/
- public function it_can_return_the_reportDate($expected, $mail_day, $week, $year)
+ public function it_can_return_the_reportDate($expected, $mail_day, $endDate, $offset)
{
$project = Project::create([
'name' => 'project_name',
@@ -76,8 +76,8 @@ public function it_can_return_the_reportDate($expected, $mail_day, $week, $year)
]);
$projectReport = $project->reports()->create([
'name' => 'name',
- 'year' => $year,
- 'week' => $week,
+ 'end_date' => $endDate,
+ 'offset' => $offset,
'path' => 'path/doc.pdf',
]);
$projectReport->setStatusSuccess();
@@ -88,13 +88,13 @@ public function it_can_return_the_reportDate($expected, $mail_day, $week, $year)
public static function reportDateProvider()
{
return [
- 'monday' => ['2023-12-10', 'monday', 50, 2023],
- 'tuesday' => ['2023-12-11', 'tuesday', 50, 2023],
- 'wednesday' => ['2023-12-12', 'wednesday', 50, 2023],
- 'thursday' => ['2023-12-13', 'thursday', 50, 2023],
- 'friday' => ['2023-12-14', 'friday', 50, 2023],
- 'saturday' => ['2023-12-15', 'saturday', 50, 2023],
- 'sunday' => ['2023-12-16', 'sunday', 50, 2023],
+ 'monday' => ['2023-12-10', 'monday',new Carbon('2023-12-10'),10 ],
+ 'tuesday' => ['2023-12-11', 'tuesday',new Carbon('2023-12-11'),10 ],
+ 'wednesday' => ['2023-12-12', 'wednesday',new Carbon('2023-12-12'),10 ],
+ 'thursday' => ['2023-12-13', 'thursday',new Carbon('2023-12-13'),10 ],
+ 'friday' => ['2023-12-14', 'friday',new Carbon('2023-12-14'),10 ],
+ 'saturday' => ['2023-12-15', 'saturday',new Carbon('2023-12-15'),10 ],
+ 'sunday' => ['2023-12-16', 'sunday',new Carbon('2023-12-16'),10 ],
];
}
diff --git a/laravel_app/tests/Unit/Models/ProjectTest.php b/laravel_app/tests/Unit/Models/ProjectTest.php
index 5734ecb..ba1bf44 100644
--- a/laravel_app/tests/Unit/Models/ProjectTest.php
+++ b/laravel_app/tests/Unit/Models/ProjectTest.php
@@ -80,10 +80,9 @@ public function when_not_all_mosaics_are_present_it_should_return_an_exception()
$this->seed();
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('Missing mosaics: week_52_2022.tif, week_51_2021.tif, week_50_2021.tif, week_49_2021.tif');
+ $this->expectExceptionMessage('Missing mosaics: period_2021-12-26_2022-01-01.tif, period_2021-12-19_2021-12-25.tif, period_2021-12-12_2021-12-18.tif, period_2021-12-05_2021-12-11.tif');
$project = Project::find(1);
$lastDate = Carbon::parse('2022-01-01');
- //$lastDate->getWeekOfYear();
$project->allMosaicsPresent($lastDate);
}
@@ -92,13 +91,13 @@ public function when_all_mosaics_are_present_it_should_return_true()
{
// TODO CHeck with Martin the Leading Zero test
$project = Mockery::mock(Project::class)->makePartial();
- $lastDate = Carbon::parse('2021-01-22');
+ $lastDate = Carbon::parse('2022-01-01');
$project->shouldReceive('getMosaicList')->andReturn(
collect([
- "chemba/weekly_mosaic/week_53_2020.tif",
- "chemba/weekly_mosaic/week_03_2021.tif",
- "chemba/weekly_mosaic/week_02_2021.tif",
- "chemba/weekly_mosaic/week_01_2021.tif",
+ "chemba/weekly_mosaic/period_2021-12-26_2022-01-01.tif",
+ "chemba/weekly_mosaic/period_2021-12-19_2021-12-25.tif",
+ "chemba/weekly_mosaic/period_2021-12-12_2021-12-18.tif",
+ "chemba/weekly_mosaic/period_2021-12-05_2021-12-11.tif",
]));
$this->assertTrue($project->allMosaicsPresent($lastDate));
@@ -108,16 +107,14 @@ public function when_all_mosaics_are_present_it_should_return_true()
public function when_not_mosaics_are_present_it_should_throw_an_exception_listing_the_missing_mosiacs()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('Missing mosaics: week_53_2020.tif');
+ $this->expectExceptionMessage('Missing mosaics: period_2020-12-05_2020-12-11.tif');
$project = Mockery::mock(Project::class)->makePartial();
$lastDate = Carbon::parse('2021-01-01');
$project->shouldReceive('getMosaicList')->andReturn(
collect([
- "chemba/weekly_mosaic/week_52_2020.tif",
- "chemba/weekly_mosaic/week_51_2020.tif",
- "chemba/weekly_mosaic/week_50_2020.tif",
- "chemba/weekly_mosaic/week_49_2021.tif",
- "chemba/weekly_mosaic/week_48_2021.tif",
+ "chemba/weekly_mosaic/period_2020-12-26_2021-01-01.tif",
+ "chemba/weekly_mosaic/period_2020-12-19_2020-12-25.tif",
+ "chemba/weekly_mosaic/period_2020-12-12_2020-12-18.tif",
]));
$project->allMosaicsPresent($lastDate);
@@ -127,7 +124,7 @@ public function when_not_mosaics_are_present_it_should_throw_an_exception_listin
public function when_all_mosaics_are_present_is_called_with_future_date_it_should_throw_an_expection()
{
$this->expectException(\Exception::class);
- $this->expectExceptionMessage('Mosaic can be generated for the future. Change the end date.');
+ $this->expectExceptionMessage('Mosaic can\'t be generated for the future. Change the end date.');
$this->seed();
$project = Project::find(1);
Carbon::setTestNow(Carbon::parse('2020-01-01'));
@@ -143,14 +140,14 @@ public function getMosiacFileListByEndDate_should_return_four_filenames()
/* @var Project $project */
$project = Project::find(1);
$lastDate = Carbon::parse('2021-01-01');
- $list = $project::getMosaicFilenameListByEndDate($lastDate);
+ $list = iterator_to_array($project::getMosaicFilenameListByEndDate($lastDate));
$this->assertCount(4, $list);
$this->assertEquals([
- "week_53_2020.tif",
- "week_52_2020.tif",
- "week_51_2020.tif",
- "week_50_2020.tif",
- ], $list->toArray());
+ "period_2020-12-26_2021-01-01.tif",
+ "period_2020-12-19_2020-12-25.tif",
+ "period_2020-12-12_2020-12-18.tif",
+ "period_2020-12-05_2020-12-11.tif",
+ ], $list);
}
/** @test */
@@ -162,8 +159,8 @@ public function when_getFileDownloadsFor_is_called_it_returns_a_collection_of_se
'download_path' => 'project_download_path',
]);
- $downloads = $project->getFileDownloadsFor(2023, 22);
- $this->assertCount(4 * 7, $downloads);
+ $downloads = $project->getFileDownloadsFor(new Carbon('2024-06-18'),7);
+ $this->assertCount(28, $downloads);
collect($downloads)->each(fn($job) => $this->assertInstanceOf(ProjectDownloadTiffJob::class, $job));
}
@@ -176,7 +173,7 @@ public function when_getMosaicsFor_is_called_it_returns_a_collection_of_seven_do
'download_path' => 'project_download_path',
]);
- $mosaics = $project->getMosaicsFor(2023, 2);
+ $mosaics = $project->getMosaicsFor(new Carbon('2023-01-01'));
$this->assertCount(4, $mosaics);
collect($mosaics)->each(fn($job) => $this->assertInstanceOf(ProjectMosiacGeneratorJob::class, $job));
}
@@ -190,7 +187,7 @@ public function when_getReport_is_called_it_returns_a_jobs()
'download_path' => 'project_download_path',
]);
- $job = $project->getReportFor(2023, 2);
+ $job = $project->getReportFor(new Carbon('2023-01-01'));
$this->assertInstanceOf(ProjectReportGeneratorJob::class, $job);
}
@@ -198,15 +195,17 @@ public function when_getReport_is_called_it_returns_a_jobs()
/** @test */
public function it_can_create_a_chain_of_batches_that_result_in_a_report()
{
+ /* @var Project $project*/
$project = Project::create([
'name' => 'project_name',
'download_path' => 'project_download_path',
]);
Bus::fake();
- $project->scheduleReport(2023, 50);
+ $project->scheduleReport(new Carbon('2023-01-01'),7);
Bus::assertChained([
Bus::chainedBatch(function (PendingBatch $batch) {
+ $batch;
return $batch->jobs->count() === 28;
}),
Bus::chainedBatch(function (PendingBatch $batch) {
|