Skip to content

Commit

Permalink
feature/customer-flag: Added a flag to be able to disable using the c…
Browse files Browse the repository at this point in the history
…ustomer model
  • Loading branch information
Dennis Ruiter committed Dec 2, 2022
1 parent 1679831 commit 7dff158
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 0 deletions.
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@ You can also link customers/categories to cases and create a collection with dif
## Installation
* `composer require wedevelopnl/silverstripe-portfolio`

## Feature Flags

### Customers
Managing and linking customers can be disabled using the following config in your project

```
---
Name: flags
After: portfolio
---
WeDevelop\Portfolio\Config:
customer_enabled: false
```

## License
See [License](LICENSE)

Expand Down
3 changes: 3 additions & 0 deletions _config/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@ Name: portfolio
WeDevelop\Portfolio\Pages\PortfolioPage:
extensions:
- SilverStripe\Lumberjack\Model\LumberJack

WeDevelop\Portfolio\Config:
customer_enabled: true
12 changes: 12 additions & 0 deletions src/Admins/PortfolioAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use SilverStripe\Admin\ModelAdmin;
use WeDevelop\Portfolio\Models\Collection;
use WeDevelop\Portfolio\Models\Customer;
use WeDevelop\Portfolio\Config;

class PortfolioAdmin extends ModelAdmin
{
Expand All @@ -22,4 +23,15 @@ class PortfolioAdmin extends ModelAdmin
Customer::class,
Collection::class,
];

public function getManagedModels()
{
$models = parent::getManagedModels();

if (!Config::isCustomerEnabled()) {
unset($models[Customer::class]);
}

return $models;
}
}
15 changes: 15 additions & 0 deletions src/Config.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace WeDevelop\Portfolio;

use SilverStripe\Core\Config\Configurable;

class Config
{
use Configurable;

public static function isCustomerEnabled()
{
return self::config()->get('customer_enabled');
}
}
5 changes: 5 additions & 0 deletions src/Pages/CasePage.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use WeDevelop\Portfolio\Models\Category;
use WeDevelop\Portfolio\Models\Collection;
use WeDevelop\Portfolio\Models\Customer;
use WeDevelop\Portfolio\Config;

/**
* @property DBDatetime $PublicationDate
Expand Down Expand Up @@ -96,6 +97,10 @@ public function getCMSFields(): FieldList
)->setHasEmptyDefault(true),
UploadField::create('Thumbnail', _t(__CLASS__ . '.THUMBNAIL', 'Thumbnail')),
]);

if (!Config::isCustomerEnabled()) {
$fields->removeByName('CustomerID');
}
});

return parent::getCMSFields();
Expand Down

0 comments on commit 7dff158

Please sign in to comment.