mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-04-28 02:31:54 +00:00
Merge pull request #11904 from firefly-iii/release-1772875617
🤖 Automatically merge the PR into the develop branch.
This commit is contained in:
@@ -48,7 +48,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
final class UpdateController extends Controller
|
||||
{
|
||||
private TransactionGroupRepositoryInterface $groupRepository;
|
||||
protected array $acceptedRoles = [];
|
||||
protected array $acceptedRoles = [];
|
||||
|
||||
/**
|
||||
* TransactionController constructor.
|
||||
|
||||
@@ -50,15 +50,14 @@ class DeletedAccountObserver
|
||||
}
|
||||
|
||||
$journalIds = Transaction::where('account_id', $account->id)
|
||||
->get(['transactions.transaction_journal_id'])
|
||||
->pluck('transaction_journal_id')
|
||||
->toArray();
|
||||
->get(['transactions.transaction_journal_id'])
|
||||
->pluck('transaction_journal_id')
|
||||
->toArray()
|
||||
;
|
||||
|
||||
$groupIds = array_map(function (array $item) {
|
||||
return $item['transaction_group_id'];
|
||||
}, TransactionJournal::whereIn('id', $journalIds)
|
||||
->get(['transaction_journals.transaction_group_id'])
|
||||
->toArray());
|
||||
}, TransactionJournal::whereIn('id', $journalIds)->get(['transaction_journals.transaction_group_id'])->toArray());
|
||||
|
||||
if (count($journalIds) > 0) {
|
||||
Transaction::whereIn('transaction_journal_id', $journalIds)->delete();
|
||||
|
||||
@@ -31,7 +31,6 @@ use FireflyIII\Events\Security\System\SystemRequestedVersionCheck;
|
||||
use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||
use FireflyIII\Http\Middleware\Installer;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
use FireflyIII\Repositories\Bill\BillRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Preferences;
|
||||
|
||||
@@ -33,8 +33,8 @@ use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
/**
|
||||
* @property Carbon $date
|
||||
* @property PiggyBank|null $piggyBank
|
||||
* @property Carbon $date
|
||||
* @property null|PiggyBank $piggyBank
|
||||
*/
|
||||
#[ObservedBy([PiggyBankEventObserver::class])]
|
||||
class PiggyBankEvent extends Model
|
||||
|
||||
@@ -37,7 +37,7 @@ use Illuminate\Support\Collection;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
/**
|
||||
* @property User $user
|
||||
* @property User $user
|
||||
* @property Collection<RuleTrigger> $ruleTriggers
|
||||
*/
|
||||
#[ObservedBy([DeletedRuleObserver::class])]
|
||||
|
||||
@@ -30,6 +30,7 @@ use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Exception\ClientException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Override;
|
||||
|
||||
use function Safe\file_get_contents;
|
||||
use function Safe\json_decode;
|
||||
|
||||
@@ -48,9 +49,9 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
$this->currentBuild = $currentBuild;
|
||||
Log::debug(sprintf('Now in getUpdateInformation(%s, %s)', $currentVersion, $channel));
|
||||
|
||||
$response = new UpdateResponse();
|
||||
$releases = $this->getReleases();
|
||||
$filtered = $this->filterReleases($releases);
|
||||
$response = new UpdateResponse();
|
||||
$releases = $this->getReleases();
|
||||
$filtered = $this->filterReleases($releases);
|
||||
|
||||
Log::debug(sprintf('Left with %d release(s) to compare', count($filtered)));
|
||||
|
||||
@@ -60,7 +61,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
return $response;
|
||||
}
|
||||
|
||||
$newest = $this->getNewest($filtered);
|
||||
$newest = $this->getNewest($filtered);
|
||||
|
||||
Log::debug(sprintf('Newest release is "%s" released on %s', $newest['version'], $newest['published_at']->format('Y-m-d H:i')));
|
||||
|
||||
@@ -73,20 +74,20 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
Log::debug(sprintf('Compare with current version "%s", built on %s', $currentVersion, $currentBuild->format('Y-m-d H:i')));
|
||||
if ($currentBuild->lt($newest['published_at']) && $currentBuild->diffInMinutes($newest['published_at']) > 10) {
|
||||
Log::debug(sprintf(
|
||||
'Current build %s is older than newest build %s, so a new release is available.',
|
||||
$currentBuild->format('Y-m-d H:i:s e'),
|
||||
$newest['published_at']->format('Y-m-d H:i:s e')
|
||||
));
|
||||
'Current build %s is older than newest build %s, so a new release is available.',
|
||||
$currentBuild->format('Y-m-d H:i:s e'),
|
||||
$newest['published_at']->format('Y-m-d H:i:s e')
|
||||
));
|
||||
$response->setNewVersionAvailable(true);
|
||||
|
||||
return $response;
|
||||
}
|
||||
if ($currentBuild->gt($newest['published_at'])) {
|
||||
Log::debug(sprintf(
|
||||
'Current build %s is newer than newest build %s, so NO new release is available.',
|
||||
$currentBuild->format('Y-m-d H:i'),
|
||||
$newest['published_at']->format('Y-m-d H:i')
|
||||
));
|
||||
'Current build %s is newer than newest build %s, so NO new release is available.',
|
||||
$currentBuild->format('Y-m-d H:i'),
|
||||
$newest['published_at']->format('Y-m-d H:i')
|
||||
));
|
||||
$response->setNewVersionAvailable(false);
|
||||
|
||||
return $response;
|
||||
@@ -96,7 +97,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
}
|
||||
|
||||
// if not, compare version.
|
||||
$res = version_compare($newest['version'], $currentVersion);
|
||||
$res = version_compare($newest['version'], $currentVersion);
|
||||
if ($res < 1) {
|
||||
$response->setNewVersionAvailable(false);
|
||||
|
||||
@@ -146,7 +147,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
|
||||
private function getNewest(array $releases): array
|
||||
{
|
||||
$latest = ['version' => '1.0.0', 'published_at' => now(config('app.timezone'))->startOfYear()];
|
||||
$latest = ['version' => '1.0.0', 'published_at' => now(config('app.timezone'))->startOfYear()];
|
||||
foreach ($releases as $release) {
|
||||
Log::debug(sprintf('Comparing current version "%s" with latest version "%s"', $release['version'], $latest['version']));
|
||||
if (str_contains($release['version'], 'develop') || str_contains($latest['version'], 'develop')) {
|
||||
@@ -154,10 +155,10 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
// compare build times.
|
||||
if ($latest['published_at']->lt($release['published_at'])) {
|
||||
Log::debug(sprintf(
|
||||
'Current date "%s" is newer than latest date "%s"',
|
||||
$release['published_at']->format('Y-m-d H:i'),
|
||||
$latest['published_at']->format('Y-m-d H:i')
|
||||
));
|
||||
'Current date "%s" is newer than latest date "%s"',
|
||||
$release['published_at']->format('Y-m-d H:i'),
|
||||
$latest['published_at']->format('Y-m-d H:i')
|
||||
));
|
||||
$latest = $release;
|
||||
}
|
||||
}
|
||||
@@ -179,7 +180,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
private function getReleases(): array
|
||||
{
|
||||
$client = new Client();
|
||||
$opts = ['timeout' => 5.0, 'headers' => ['User-Agent' => 'FireflyIII/' . config('firefly.version')]];
|
||||
$opts = ['timeout' => 5.0, 'headers' => ['User-Agent' => 'FireflyIII/'.config('firefly.version')]];
|
||||
$return = [];
|
||||
$body = '';
|
||||
if ($this->localDebug && file_exists('json.json')) {
|
||||
@@ -188,13 +189,13 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
if (!$this->localDebug) {
|
||||
try {
|
||||
$res = $client->get('https://api.github.com/repos/firefly-iii/firefly-iii/releases', $opts);
|
||||
} catch (ClientException | Exception $e) {
|
||||
} catch (ClientException|Exception $e) {
|
||||
Log::error($e->getMessage());
|
||||
|
||||
return [];
|
||||
}
|
||||
Log::debug('Successfully contacted GitHub');
|
||||
$body = (string)$res->getBody();
|
||||
$body = (string) $res->getBody();
|
||||
}
|
||||
|
||||
if (!json_validate($body)) {
|
||||
@@ -202,7 +203,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
|
||||
return [];
|
||||
}
|
||||
$json = json_decode($body, true);
|
||||
$json = json_decode($body, true);
|
||||
|
||||
/** @var array $release */
|
||||
foreach ($json as $release) {
|
||||
@@ -217,7 +218,7 @@ class GitHubUpdateRequest implements UpdateRequestInterface
|
||||
continue;
|
||||
}
|
||||
|
||||
$return[] = ['version' => $version, 'published_at' => $published];
|
||||
$return[] = ['version' => $version, 'published_at' => $published];
|
||||
}
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -79,7 +79,7 @@ return [
|
||||
// see cer.php for exchange rates feature flag.
|
||||
],
|
||||
'version' => 'develop/2026-03-07',
|
||||
'build_time' => 1772861293,
|
||||
'build_time' => 1772875424,
|
||||
'api_version' => '2.1.0', // field is no longer used.
|
||||
'db_version' => 28, // field is no longer used.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user