fixed install/update locale

This commit is contained in:
denisdulici 2020-02-03 18:57:31 +03:00
parent f7b0ef8973
commit a92689d3e3
12 changed files with 63 additions and 30 deletions

View File

@ -19,7 +19,7 @@ class CompanySeed extends Command
* @var string
*/
protected $description = 'Seed for specific company';
/**
* Create a new command instance.
*

View File

@ -3,6 +3,7 @@
namespace App\Console\Commands;
use App\Events\Install\UpdateFinished;
use App\Models\Common\Company;
use Illuminate\Console\Command;
class FinishUpdate extends Command
@ -12,7 +13,7 @@ class FinishUpdate extends Command
*
* @var string
*/
protected $signature = 'update:finish {alias} {company_id} {new} {old}';
protected $signature = 'update:finish {alias} {company} {new} {old}';
/**
* The console command description.
@ -43,7 +44,7 @@ class FinishUpdate extends Command
$this->call('cache:clear');
$alias = $this->argument('alias');
$company_id = $this->argument('company_id');
$company_id = $this->argument('company');
$new = $this->argument('new');
$old = $this->argument('old');
@ -53,6 +54,11 @@ class FinishUpdate extends Command
throw new \Exception(trans('modules.errors.finish', ['module' => $alias]));
}
// Set locale for modules
if ($alias != 'core') {
app()->setLocale(Company::find($company_id)->locale);
}
session(['company_id' => $company_id]);
setting()->setExtraColumns(['company_id' => $company_id]);

View File

@ -27,7 +27,7 @@ class Install extends Command
*
* @var string
*/
protected $signature = 'install
protected $signature = 'install
{--db-host=localhost : Database host}
{--db-port=3306 : Port of the database host}
{--db-name= : Name of the database}
@ -64,6 +64,7 @@ class Install extends Command
$this->line('Setting locale ' . $this->locale);
Session::put(self::OPT_LOCALE, $this->locale);
app()->setLocale($this->locale);
$this->prompt();

View File

@ -23,7 +23,7 @@ class Update extends Command
*
* @var string
*/
protected $signature = 'update {alias} {company_id} {new=latest}';
protected $signature = 'update {alias} {company} {new=latest}';
/**
* The console command description.
@ -31,7 +31,7 @@ class Update extends Command
* @var string
*/
protected $description = 'Allows to update Akaunting and modules directly through CLI';
/**
* Create a new command instance.
*/
@ -55,8 +55,8 @@ class Update extends Command
$this->old = $this->getOldVersion();
session(['company_id' => $this->argument('company_id')]);
setting()->setExtraColumns(['company_id' => $this->argument('company_id')]);
session(['company_id' => $this->argument('company')]);
setting()->setExtraColumns(['company_id' => $this->argument('company')]);
if (!$path = $this->download()) {
return self::CMD_ERROR;

View File

@ -19,7 +19,7 @@ class UserSeed extends Command
* @var string
*/
protected $description = 'Seed for specific user';
/**
* Create a new command instance.
*

View File

@ -2,7 +2,6 @@
namespace App\Http\Controllers\Install;
use Session;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
@ -28,7 +27,8 @@ class Language extends Controller
public function store(Request $request)
{
// Set locale
Session::put('locale', $request['lang']);
session(['locale' => $request->get('lang')]);
app()->setLocale($request->get('lang'));
$response['redirect'] = route('install.database');
@ -43,7 +43,7 @@ class Language extends Controller
public function getLanguages()
{
$response = [
'languages' => $languages = language()->allowed(),
'languages' => language()->allowed(),
];
return response()->json($response);

View File

@ -81,6 +81,8 @@ class Version200 extends Listener
$companies = Company::cursor();
foreach ($companies as $company) {
session(['company_id' => $company->id]);
$this->updateSettings($company);
$this->createEmailTemplates($company);
@ -97,12 +99,16 @@ class Version200 extends Listener
public function updateSettings($company)
{
// Clear current settings
// Set the active company settings
setting()->setExtraColumns(['company_id' => $company->id]);
setting()->forgetAll();
setting()->load(true);
session(['company_id' => $company->id]);
Overrider::load('settings');
// Override settings
config(['app.url' => url('/')]);
config(['app.timezone' => setting('general.timezone', 'UTC')]);
date_default_timezone_set(config('app.timezone'));
app()->setLocale(setting('general.default_locale'));
$updated_settings = [
'company.name' => 'general.company_name',
@ -325,6 +331,8 @@ class Version200 extends Listener
$companies = $user->companies;
foreach ($companies as $company) {
app()->setLocale($company->locale);
Artisan::call('user:seed', [
'user' => $user->id,
'company' => $company->id,

View File

@ -407,12 +407,13 @@ trait Modules
$data = [
'path' => $path,
'name' => Str::studly($module->alias),
'alias' => $module->alias
'alias' => $module->alias,
];
$company_id = session('company_id');
$locale = app()->getLocale();
Console::run("php artisan module:install {$module->alias} {$company_id}");
Console::run("php artisan module:install {$module->alias} {$company_id} {$locale}");
return [
'success' => true,

View File

@ -51,9 +51,7 @@ class Overrider
// Locale
if (session('locale') == '') {
//App::setLocale(setting('default.locale'));
//Session::put('locale', setting('default.locale'));
config(['app.locale' => setting('default.locale')]);
app()->setLocale(setting('default.locale'));
}
// Set app url dynamically

View File

@ -5,6 +5,7 @@ namespace App\Utilities;
use App\Events\Install\UpdateCopied;
use App\Events\Install\UpdateDownloaded;
use App\Events\Install\UpdateUnzipped;
use App\Models\Module\Module;
use App\Utilities\Console;
use App\Traits\SiteApi;
use Artisan;
@ -125,14 +126,20 @@ class Updater
public static function finish($alias, $new, $old)
{
$company_id = session('company_id');
if ($alias == 'core') {
$companies = [session('company_id')];
} else {
$companies = Module::alias($alias)->where('company_id', '<>', '0')->pluck('company_id')->toArray();
}
$command = "php artisan update:finish {$alias} {$company_id} {$new} {$old}";
foreach ($companies as $company) {
$command = "php artisan update:finish {$alias} {$company} {$new} {$old}";
if (true !== $result = Console::run($command)) {
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]);
if (true !== $result = Console::run($command)) {
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]);
throw new \Exception($message);
throw new \Exception($message);
}
}
}

View File

@ -26,7 +26,16 @@ class Modules extends Seeder
{
$company_id = $this->command->argument('company');
Artisan::call('module:install', ['alias' => 'offline-payments', 'company_id' => $company_id]);
Artisan::call('module:install', ['alias' => 'paypal-standard', 'company_id' => $company_id]);
Artisan::call('module:install', [
'alias' => 'offline-payments',
'company' => $company_id,
'locale' => session('locale', app()->getLocale()),
]);
Artisan::call('module:install', [
'alias' => 'paypal-standard',
'company' => $company_id,
'locale' => session('locale', app()->getLocale()),
]);
}
}

View File

@ -19,7 +19,7 @@ class InstallCommand extends Command
*
* @var string
*/
protected $signature = 'module:install {alias} {company_id}';
protected $signature = 'module:install {alias} {company} {locale=en-GB}';
/**
* The console command description.
@ -36,12 +36,15 @@ class InstallCommand extends Command
public function handle()
{
$alias = Str::kebab($this->argument('alias'));
$company_id = $this->argument('company_id');
$company_id = $this->argument('company');
$locale = $this->argument('locale');
$old_company_id = session('company_id');
session(['company_id' => $company_id]);
app()->setLocale($locale);
$module = module($alias);
$model = Module::create([