feat: VivesPOS landing on Winter CMS 1.2 — theme + plugin + Dockerfile
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
Some checks are pending
Module sub-split / Sub-split (push) Waiting to run
- Base: wintercms/winter branch 1.2 (full framework) - Theme vivespos: Canvas 7 + Bootstrap 5 CDN, custom CSS - Layout: deferred GTM/GA4 tracking, JSON-LD SoftwareApplication - Partials: hero (offline-first), features, modes (offline/nube toggle), screenshots, pricing (3 planes), comparison, FAQ, CTA - Plugin VivesPOS.Site with ContactForm - Dockerfile: PHP 8.2 Apache, port 80, healthcheck - Added winter/wn-pages, blog, sitemap, seo plugins - Active theme set to vivespos
This commit is contained in:
63
modules/backend/tests/fixtures/models/PivotRelationFixture.php
vendored
Normal file
63
modules/backend/tests/fixtures/models/PivotRelationFixture.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\Tests\Fixtures\Models;
|
||||
|
||||
use Backend\Models\User;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Winter\Storm\Database\Model;
|
||||
|
||||
/**
|
||||
* Self-contained model fixture holding a belongsToMany relation to Backend\Models\User
|
||||
* with editable pivot data.
|
||||
*
|
||||
* Owns its own tables so the backend test suite has no dependency on any plugin.
|
||||
*/
|
||||
class PivotRelationFixture extends Model
|
||||
{
|
||||
public $table = 'backend_test_pivot_relation_fixtures';
|
||||
|
||||
protected $guarded = [];
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
public $belongsToMany = [
|
||||
'users' => [
|
||||
User::class,
|
||||
'table' => 'backend_test_pivot_relation_users',
|
||||
'key' => 'fixture_id',
|
||||
'otherKey' => 'user_id',
|
||||
'pivot' => ['is_default'],
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Create the backing tables if they do not already exist.
|
||||
*/
|
||||
public static function migrateUp(): void
|
||||
{
|
||||
if (!Schema::hasTable('backend_test_pivot_relation_fixtures')) {
|
||||
Schema::create('backend_test_pivot_relation_fixtures', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('backend_test_pivot_relation_users')) {
|
||||
Schema::create('backend_test_pivot_relation_users', function ($table) {
|
||||
$table->integer('fixture_id')->unsigned();
|
||||
$table->integer('user_id')->unsigned();
|
||||
$table->boolean('is_default')->default(false);
|
||||
$table->primary(['fixture_id', 'user_id']);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop the backing tables.
|
||||
*/
|
||||
public static function migrateDown(): void
|
||||
{
|
||||
Schema::dropIfExists('backend_test_pivot_relation_users');
|
||||
Schema::dropIfExists('backend_test_pivot_relation_fixtures');
|
||||
}
|
||||
}
|
||||
48
modules/backend/tests/fixtures/models/SortableFixture.php
vendored
Normal file
48
modules/backend/tests/fixtures/models/SortableFixture.php
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\Tests\Fixtures\Models;
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Winter\Storm\Database\Model;
|
||||
use Winter\Storm\Database\Traits\Sortable;
|
||||
|
||||
/**
|
||||
* Self-contained Sortable model fixture for list reordering tests.
|
||||
*
|
||||
* Owns its own table so the backend test suite has no dependency on any plugin.
|
||||
*/
|
||||
class SortableFixture extends Model
|
||||
{
|
||||
use Sortable;
|
||||
|
||||
public $table = 'backend_test_sortable_fixtures';
|
||||
|
||||
protected $guarded = [];
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
/**
|
||||
* Create the backing table if it does not already exist.
|
||||
*/
|
||||
public static function migrateUp(): void
|
||||
{
|
||||
if (Schema::hasTable('backend_test_sortable_fixtures')) {
|
||||
return;
|
||||
}
|
||||
|
||||
Schema::create('backend_test_sortable_fixtures', function ($table) {
|
||||
$table->increments('id');
|
||||
$table->string('name')->nullable();
|
||||
$table->string('label')->nullable();
|
||||
$table->integer('sort_order')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop the backing table.
|
||||
*/
|
||||
public static function migrateDown(): void
|
||||
{
|
||||
Schema::dropIfExists('backend_test_sortable_fixtures');
|
||||
}
|
||||
}
|
||||
66
modules/backend/tests/fixtures/models/UserFixture.php
vendored
Normal file
66
modules/backend/tests/fixtures/models/UserFixture.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Backend\Tests\Fixtures\Models;
|
||||
|
||||
use Backend\Models\User;
|
||||
|
||||
class UserFixture extends User
|
||||
{
|
||||
public function __construct(array $attributes = [])
|
||||
{
|
||||
parent::__construct($attributes);
|
||||
|
||||
$this->fill([
|
||||
'first_name' => 'Test',
|
||||
'last_name' => 'User',
|
||||
'login' => 'testuser',
|
||||
'email' => 'testuser@test.com',
|
||||
'password' => '',
|
||||
'activation_code' => null,
|
||||
'persist_code' => null,
|
||||
'reset_password_code' => null,
|
||||
'permissions' => null,
|
||||
'is_activated' => true,
|
||||
'role_id' => null,
|
||||
'activated_at' => null,
|
||||
'last_login' => '2019-09-27 12:00:00',
|
||||
'created_at' => '2019-09-27 12:00:00',
|
||||
'updated_at' => '2019-09-27 12:00:00',
|
||||
'deleted_at' => null,
|
||||
'is_superuser' => false
|
||||
]);
|
||||
}
|
||||
|
||||
public function asSuperUser()
|
||||
{
|
||||
$this->setAttribute('is_superuser', true);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function asDeletedUser()
|
||||
{
|
||||
$this->setAttribute('deleted_at', date('Y-m-d H:i:s'));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function withPermission($permission, bool $granted = true)
|
||||
{
|
||||
$currentPermissions = $this->getAttribute('permissions');
|
||||
|
||||
if (is_string($permission)) {
|
||||
$permission = [
|
||||
$permission => (int) $granted
|
||||
];
|
||||
}
|
||||
|
||||
if (is_array($currentPermissions)) {
|
||||
$this->setAttribute('permissions', array_replace($currentPermissions, $permission));
|
||||
} else {
|
||||
$this->setAttribute('permissions', $permission);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user