From: Bernd Bleßmann <bernd@kivitendo-premium.de>
Date: Mon, 22 Oct 2018 12:57:03 +0000 (+0200)
Subject: Mandantenkonfiguration: experimentelle Features einzeln an-/abschaltbar machen
X-Git-Tag: release-3.5.4~250
X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=984f6322b98c8d0cd3ceb9f659ed6621d180e617;p=kivitendo-erp.git

Mandantenkonfiguration: experimentelle Features einzeln an-/abschaltbar machen

es gibt nun "feature_experimental_order" und "feature_experimental_assortment"

angepasster cherry pick von odyn: bc94c40f2f64e7b40fbd90c49dbf41f86688c32d
---

diff --git a/SL/Controller/CustomerVendor.pm b/SL/Controller/CustomerVendor.pm
index 2d373c1d0..4812f1b40 100644
--- a/SL/Controller/CustomerVendor.pm
+++ b/SL/Controller/CustomerVendor.pm
@@ -281,7 +281,7 @@ sub _transaction {
   my $db = $self->is_vendor() ? 'vendor' : 'customer';
   my $action = 'add';
 
-  if ($::instance_conf->get_feature_experimental && 'oe.pl' eq $script) {
+  if ($::instance_conf->get_feature_experimental_order && 'oe.pl' eq $script) {
     $script = 'controller.pl';
     $action = 'Order/' . $action;
   }
diff --git a/SL/Controller/DeliveryPlan.pm b/SL/Controller/DeliveryPlan.pm
index 95db7ff6a..aca991808 100644
--- a/SL/Controller/DeliveryPlan.pm
+++ b/SL/Controller/DeliveryPlan.pm
@@ -369,7 +369,7 @@ sub link_to {
     my $vc     = $object->is_sales ? 'customer' : 'vendor';
     my $id     = $object->id;
 
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       return "controller.pl?action=Order/$action&type=$type&id=$id";
     } else {
       return "oe.pl?action=$action&type=$type&vc=$vc&id=$id";
diff --git a/SL/Controller/DeliveryValueReport.pm b/SL/Controller/DeliveryValueReport.pm
index 942b02a23..4a7ffd1ee 100644
--- a/SL/Controller/DeliveryValueReport.pm
+++ b/SL/Controller/DeliveryValueReport.pm
@@ -231,7 +231,7 @@ sub link_to {
     my $vc     = $object->is_sales ? 'customer' : 'vendor';
     my $id     = $object->id;
 
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       return "controller.pl?action=Order/$action&type=$type&id=$id";
     } else {
       return "oe.pl?action=$action&type=$type&vc=$vc&id=$id";
diff --git a/SL/Controller/FinancialControllingReport.pm b/SL/Controller/FinancialControllingReport.pm
index 31f60f13d..f4f09ff09 100644
--- a/SL/Controller/FinancialControllingReport.pm
+++ b/SL/Controller/FinancialControllingReport.pm
@@ -278,7 +278,7 @@ sub link_to {
     my $type = $object->type;
     my $id   = $object->id;
 
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       return "controller.pl?action=Order/$action&type=$type&id=$id";
     } else {
       return "oe.pl?action=$action&type=$type&vc=customer&id=$id";
diff --git a/SL/Controller/SellPriceInformation.pm b/SL/Controller/SellPriceInformation.pm
index 1385fca5f..ccb0d5fcc 100644
--- a/SL/Controller/SellPriceInformation.pm
+++ b/SL/Controller/SellPriceInformation.pm
@@ -140,7 +140,7 @@ sub link_to {
     my $vc     = $object->is_sales ? 'customer' : 'vendor';
     my $id     = $object->id;
 
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       return "controller.pl?action=Order/$action&type=$type&id=$id";
     } else {
       return "oe.pl?action=$action&type=$type&vc=$vc&id=$id";
diff --git a/SL/Controller/ShopOrder.pm b/SL/Controller/ShopOrder.pm
index 1503e6f68..715f8834f 100644
--- a/SL/Controller/ShopOrder.pm
+++ b/SL/Controller/ShopOrder.pm
@@ -156,7 +156,7 @@ sub action_transfer {
       $self->shop_order->save;
       $self->shop_order->link_to_record($order);
     }) || die $order->db->error;
-    my $order_controller = $::instance_conf->get_feature_experimental ? 'Order' :'oe.pl';
+    my $order_controller = $::instance_conf->get_feature_experimental_order ? 'Order' :'oe.pl';
     $self->redirect_to(controller => $order_controller, action => 'edit', type => 'sales_order', vc => 'customer', id => $order->id);
   }
 }
diff --git a/SL/Controller/TopQuickSearch/OERecord.pm b/SL/Controller/TopQuickSearch/OERecord.pm
index ecbca1300..d63dee03c 100644
--- a/SL/Controller/TopQuickSearch/OERecord.pm
+++ b/SL/Controller/TopQuickSearch/OERecord.pm
@@ -64,7 +64,7 @@ sub redirect_to_search {
 }
 
 sub redirect_to_object {
-  if ($::instance_conf->get_feature_experimental) {
+  if ($::instance_conf->get_feature_experimental_order) {
     SL::Controller::Base->new->url_for(
       controller => 'Order',
       action     => 'edit',
diff --git a/SL/DB/MetaSetup/Default.pm b/SL/DB/MetaSetup/Default.pm
index d1f8db557..c994f463d 100644
--- a/SL/DB/MetaSetup/Default.pm
+++ b/SL/DB/MetaSetup/Default.pm
@@ -73,7 +73,8 @@ __PACKAGE__->meta->columns(
   feature_datev                             => { type => 'boolean', default => 'true', not_null => 1 },
   feature_erfolgsrechnung                   => { type => 'boolean', default => 'false', not_null => 1 },
   feature_eurechnung                        => { type => 'boolean', default => 'true', not_null => 1 },
-  feature_experimental                      => { type => 'boolean', default => 'true', not_null => 1 },
+  feature_experimental_assortment           => { type => 'boolean', default => 'true', not_null => 1 },
+  feature_experimental_order                => { type => 'boolean', default => 'true', not_null => 1 },
   feature_ustva                             => { type => 'boolean', default => 'true', not_null => 1 },
   fxgain_accno_id                           => { type => 'integer' },
   fxloss_accno_id                           => { type => 'integer' },
diff --git a/SL/FU.pm b/SL/FU.pm
index 8f52ae4cd..b1eaf005a 100644
--- a/SL/FU.pm
+++ b/SL/FU.pm
@@ -338,7 +338,7 @@ sub link_details {
   } elsif ($params{trans_type} eq 'sales_quotation') {
     my $script = 'oe.pl';
     my $action = 'edit';
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       $script = 'controller.pl';
       $action = 'Order/edit';
     }
@@ -364,7 +364,7 @@ sub link_details {
   } elsif ($params{trans_type} eq 'sales_order') {
     my $script = 'oe.pl';
     my $action = 'edit';
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       $script = 'controller.pl';
       $action = 'Order/edit';
     }
@@ -400,7 +400,7 @@ sub link_details {
   } elsif ($params{trans_type} eq 'request_quotation') {
     my $script = 'oe.pl';
     my $action = 'edit';
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       $script = 'controller.pl';
       $action = 'Order/edit';
     }
@@ -412,7 +412,7 @@ sub link_details {
   } elsif ($params{trans_type} eq 'purchase_order') {
     my $script = 'oe.pl';
     my $action = 'edit';
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       $script = 'controller.pl';
       $action = 'Order/edit';
     }
diff --git a/SL/InstanceConfiguration.pm b/SL/InstanceConfiguration.pm
index 934cd7716..72b380246 100644
--- a/SL/InstanceConfiguration.pm
+++ b/SL/InstanceConfiguration.pm
@@ -234,9 +234,13 @@ Returns the configuration for storing documents in the corresponding WebDAV fold
 
 Returns the configuration for "vertreter"
 
-=item C<get_feature_experimental>
+=item C<get_feature_experimental_assortment>
 
-Returns the configuration for experimental features
+Returns the configuration for experimental feature "assortment"
+
+=item C<get_feature_experimental_order>
+
+Returns the configuration for experimental feature "order"
 
 =item C<get_parts_show_image>
 
diff --git a/SL/Presenter/Order.pm b/SL/Presenter/Order.pm
index 5c381adfd..35005a718 100644
--- a/SL/Presenter/Order.pm
+++ b/SL/Presenter/Order.pm
@@ -45,7 +45,7 @@ sub _oe_record {
   my $link_start = '';
   my $link_end   = '';
   unless ($params{no_link}) {
-    my $action  = $::instance_conf->get_feature_experimental
+    my $action  = $::instance_conf->get_feature_experimental_order
                 ? 'controller.pl?action=Order/edit'
                 : 'oe.pl?action=edit';
     $link_start = '<a href="' . $action . '&amp;type=' . $type . '&amp;id=' . escape($order->id) . '">';
diff --git a/bin/mozilla/ct.pl b/bin/mozilla/ct.pl
index 079b24c4a..558e52445 100644
--- a/bin/mozilla/ct.pl
+++ b/bin/mozilla/ct.pl
@@ -286,7 +286,7 @@ sub list_names {
     }
 
     my $base_url              = build_std_url("script=$ref->{module}.pl", 'action=edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
-    if ($::instance_conf->get_feature_experimental) {
+    if ($::instance_conf->get_feature_experimental_order) {
       if ('oe' eq $ref->{module}) {
         $base_url             = build_std_url("script=controller.pl", 'action=Order/edit', 'id=' . E($ref->{invid}), 'callback', @hidden_nondefault);
       }
diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl
index 7efc62232..1ce19d6bd 100644
--- a/bin/mozilla/do.pl
+++ b/bin/mozilla/do.pl
@@ -840,7 +840,7 @@ sub orders {
   my $callback = $form->escape($href);
 
   my $edit_url       = build_std_url('action=edit', 'type', 'vc');
-  my $edit_order_url = ($::instance_conf->get_feature_experimental)
+  my $edit_order_url = ($::instance_conf->get_feature_experimental_order)
                      ? build_std_url('script=controller.pl', 'action=Order/edit', 'type=' . ($form->{type} eq 'sales_delivery_order' ? 'sales_order' : 'purchase_order'))
                      : build_std_url('script=oe.pl',         'action=edit',       'type=' . ($form->{type} eq 'sales_delivery_order' ? 'sales_order' : 'purchase_order'));
 
diff --git a/bin/mozilla/ic.pl b/bin/mozilla/ic.pl
index b0d3887ba..dd183b264 100644
--- a/bin/mozilla/ic.pl
+++ b/bin/mozilla/ic.pl
@@ -541,13 +541,13 @@ sub generate_report {
       # | ist bestellt  | Von Kunden bestellt |  -> edit_oe_ord_link
       # | Anfrage       | Angebot             |  -> edit_oe_quo_link
 
-      my $edit_oe_ord_link = ($::instance_conf->get_feature_experimental)
+      my $edit_oe_ord_link = ($::instance_conf->get_feature_experimental_order)
                            ? build_std_url("script=controller.pl", 'action=Order/edit',
                                            'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'),        'id=' . E($ref->{trans_id}), 'callback')
                            : build_std_url("script=oe.pl",         'action=edit',
                                            'type=' . E($ref->{cv} eq 'vendor' ? 'purchase_order' : 'sales_order'),        'id=' . E($ref->{trans_id}), 'callback');
 
-      my $edit_oe_quo_link = ($::instance_conf->get_feature_experimental)
+      my $edit_oe_quo_link = ($::instance_conf->get_feature_experimental_order)
                            ? build_std_url("script=controller.pl", 'action=Order/edit',
                                            'type=' . E($ref->{cv} eq 'vendor' ? 'request_quotation' : 'sales_quotation'), 'id=' . E($ref->{trans_id}), 'callback')
                            : build_std_url("script=oe.pl",         'action=edit',
diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl
index 1d6928987..86010b14f 100644
--- a/bin/mozilla/io.pl
+++ b/bin/mozilla/io.pl
@@ -910,7 +910,7 @@ sub order {
 
   _order();
 
-  if ($::instance_conf->get_feature_experimental) {
+  if ($::instance_conf->get_feature_experimental_order) {
     my $order = _make_record();
     $order->globalproject_id(undef) if !$order->globalproject_id;
     $order->payment_id(undef)       if !$order->payment_id;
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 04cb6266c..7aeb1b974 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -1228,7 +1228,7 @@ sub orders {
 
   my $idx = 1;
 
-  my $edit_url = ($::instance_conf->get_feature_experimental)
+  my $edit_url = ($::instance_conf->get_feature_experimental_order)
                ? build_std_url('script=controller.pl', 'action=Order/edit', 'type')
                : build_std_url('action=edit', 'type', 'vc');
 
@@ -2138,7 +2138,7 @@ sub report_for_todo_list {
   my $content;
 
   if (@{ $quotations }) {
-    my $edit_url = ($::instance_conf->get_feature_experimental)
+    my $edit_url = ($::instance_conf->get_feature_experimental_order)
                  ? build_std_url('script=controller.pl', 'action=Order/edit')
                  : build_std_url('script=oe.pl', 'action=edit');
 
diff --git a/locale/de/all b/locale/de/all
index 79784f9c3..6d3b7cb2a 100755
--- a/locale/de/all
+++ b/locale/de/all
@@ -1224,7 +1224,6 @@ $self->{texts} = {
   'Employees'                   => 'Benutzer',
   'Empty selection for warehouse will not be added, even if the old bin is still visible (use back and forth to edit again).' => 'Leere Lager-Auswahl wird ignoriert, selbst wenn noch ein Lagerplatz ausgewählt ist. Alle Daten können durch zurück und vorwärts korrigiert werden.',
   'Empty transaction!'          => 'Buchung ist leer!',
-  'Enable experimental features' => 'Experimentelle Features einschalten',
   'Enabled Quick Searched'      => 'Aktivierte Schnellsuchen',
   'Enabled modules'             => 'Aktivierte Module',
   'End date'                    => 'Enddatum',
@@ -1355,7 +1354,6 @@ $self->{texts} = {
   'Expense Account'             => 'Aufwandskonto',
   'Expense/Asset'               => 'Aufwand/Anlagen',
   'Experimental Features'       => 'Experimentelle Features',
-  'Experimental features are:'  => 'Experimentelle Features sind:',
   'Export'                      => 'Export',
   'Export Buchungsdaten'        => 'Export Buchungsdaten',
   'Export Number'               => 'Exportnummer',
diff --git a/locale/en/all b/locale/en/all
index 8d898c4bb..c4727ca08 100644
--- a/locale/en/all
+++ b/locale/en/all
@@ -1223,7 +1223,6 @@ $self->{texts} = {
   'Employees'                   => '',
   'Empty selection for warehouse will not be added, even if the old bin is still visible (use back and forth to edit again).' => '',
   'Empty transaction!'          => '',
-  'Enable experimental features' => '',
   'Enabled Quick Searched'      => '',
   'Enabled modules'             => '',
   'End date'                    => '',
@@ -1354,7 +1353,6 @@ $self->{texts} = {
   'Expense Account'             => '',
   'Expense/Asset'               => '',
   'Experimental Features'       => '',
-  'Experimental features are:'  => '',
   'Export'                      => '',
   'Export Buchungsdaten'        => '',
   'Export Number'               => '',
diff --git a/menus/user/10-order-controller.yaml b/menus/user/10-order-controller.yaml
index fc0bb664e..f4ec4d10f 100644
--- a/menus/user/10-order-controller.yaml
+++ b/menus/user/10-order-controller.yaml
@@ -1,22 +1,22 @@
 - parent: ar
   id: ar_add_quotation
-  access: sales_quotation_edit & (!client/feature_experimental)
+  access: sales_quotation_edit & (!client/feature_experimental_order)
 - parent: ar
   id: ar_add_sales_order
-  access: sales_order_edit & (!client/feature_experimental)
+  access: sales_order_edit & (!client/feature_experimental_order)
 - parent: ap
   id: ap_add_rfq
-  access: request_quotation_edit & (!client/feature_experimental)
+  access: request_quotation_edit & (!client/feature_experimental_order)
 - parent: ap
   id: ap_add_purchase_order
-  access: purchase_order_edit & (!client/feature_experimental)
+  access: purchase_order_edit & (!client/feature_experimental_order)
 
 - parent: ar
   id: ar_add_quotation_experimental
   name: Add Quotation
   icon: quotation_add
   order: 250
-  access: sales_quotation_edit & client/feature_experimental
+  access: sales_quotation_edit & client/feature_experimental_order
   params:
     action: Order/add
     type: sales_quotation
@@ -25,7 +25,7 @@
   name: Add Sales Order
   icon: sales_order_add
   order: 350
-  access: sales_order_edit & client/feature_experimental
+  access: sales_order_edit & client/feature_experimental_order
   params:
     action: Order/add
     type: sales_order
@@ -35,7 +35,7 @@
   name: Add RFQ
   icon: rfq_add
   order: 150
-  access: request_quotation_edit & client/feature_experimental
+  access: request_quotation_edit & client/feature_experimental_order
   params:
     action: Order/add
     type: request_quotation
@@ -44,7 +44,7 @@
   name: Add Purchase Order
   icon: purchase_order_add
   order: 250
-  access: purchase_order_edit & client/feature_experimental
+  access: purchase_order_edit & client/feature_experimental_order
   params:
     action: Order/add
     type: purchase_order
diff --git a/sql/Pg-upgrade2/defaults_add_feature_experimental2.sql b/sql/Pg-upgrade2/defaults_add_feature_experimental2.sql
new file mode 100644
index 000000000..66136c928
--- /dev/null
+++ b/sql/Pg-upgrade2/defaults_add_feature_experimental2.sql
@@ -0,0 +1,8 @@
+-- @tag: defaults_add_feature_experimental2
+-- @description: experimentelle Features mit einzelnen Optionen
+-- @depends: defaults_add_feature_experimental
+
+ALTER TABLE defaults RENAME COLUMN feature_experimental TO feature_experimental_order;
+ALTER TABLE defaults ADD    COLUMN feature_experimental_assortment BOOLEAN NOT NULL DEFAULT TRUE;
+
+UPDATE defaults SET feature_experimental_assortment = feature_experimental_order;
diff --git a/t/menu/parse_access_string.t b/t/menu/parse_access_string.t
index fd6e790ae..521269995 100644
--- a/t/menu/parse_access_string.t
+++ b/t/menu/parse_access_string.t
@@ -54,7 +54,7 @@ ok($menu->parse_access_string(\%node), 'parenthesis 1');
 $node{access} = '(no_such_right & sales_order_edit | (no_such_right & sales_order_edit))';
 ok(!$menu->parse_access_string(\%node), 'parenthesis 2');
 
-$node{access} = 'sales_quotation_edit & client/feature_experimental';
+$node{access} = 'sales_quotation_edit & client/feature_experimental_order';
 ok($menu->parse_access_string(\%node), 'client');
 
 $node{access} = '!no_such_right';
@@ -72,7 +72,7 @@ ok($menu->parse_access_string(\%node), 'parenthesis with negation 1');
 $node{access} = '(no_such_right & sales_order_edit | (!no_such_right | !sales_order_edit))';
 ok($menu->parse_access_string(\%node), 'parenthesis with negation 2');
 
-$node{access} = 'sales_quotation_edit & !client/feature_experimental';
+$node{access} = 'sales_quotation_edit & !client/feature_experimental_order';
 ok(!$menu->parse_access_string(\%node), 'client negation');
 
 done_testing;
diff --git a/templates/webpages/client_config/_features.html b/templates/webpages/client_config/_features.html
index 045c54299..4729d8c31 100644
--- a/templates/webpages/client_config/_features.html
+++ b/templates/webpages/client_config/_features.html
@@ -316,9 +316,12 @@
   </tr>
   <tr><td class="listheading" colspan="4">[% LxERP.t8("Experimental Features") %]</td></tr>
   <tr>
-   <td align="right">[% LxERP.t8('Enable experimental features') %]</td>
-   <td>[% L.yes_no_tag('defaults.feature_experimental', SELF.defaults.feature_experimental) %]</td>
-   <td>[% LxERP.t8('Experimental features are:') %] [% LxERP.t8('new order controller') %], [% LxERP.t8('Assortment') %]</td>
+   <td align="right">[% LxERP.t8('new order controller') %]</td>
+   <td>[% L.yes_no_tag('defaults.feature_experimental_order', SELF.defaults.feature_experimental_order) %]</td>
+  </tr>
+  <tr>
+   <td align="right">[% LxERP.t8('Assortment') %]</td>
+   <td>[% L.yes_no_tag('defaults.feature_experimental_assortment', SELF.defaults.feature_experimental_assortment) %]</td>
   </tr>
 
  <tr><td class="listheading" colspan="4">[% LxERP.t8("Shipped Quantity Algorithm") %]</td></tr>
diff --git a/templates/webpages/client_config/_ranges_of_numbers.html b/templates/webpages/client_config/_ranges_of_numbers.html
index 758c7d970..90c075168 100644
--- a/templates/webpages/client_config/_ranges_of_numbers.html
+++ b/templates/webpages/client_config/_ranges_of_numbers.html
@@ -44,7 +44,7 @@
   <tr>
    <td align="right" nowrap>[% LxERP.t8('Last Sales Delivery Order Number') %]</td>
    <td>[% L.input_tag("defaults.sdonumber", SELF.defaults.sdonumber, size="15") %]</td>
-   [%- IF INSTANCE_CONF.get_feature_experimental %]
+   [%- IF INSTANCE_CONF.get_feature_experimental_assortment %]
    <td align="right" nowrap>[% LxERP.t8('Last Assortment Number') %]</td>
    <td>[% L.input_tag("defaults.assortmentnumber", SELF.defaults.assortmentnumber, size="15") %]</td>
    [%- END -%]
diff --git a/templates/webpages/customer_vendor/get_delivery.html b/templates/webpages/customer_vendor/get_delivery.html
index debe697db..fffb3ced9 100644
--- a/templates/webpages/customer_vendor/get_delivery.html
+++ b/templates/webpages/customer_vendor/get_delivery.html
@@ -27,7 +27,7 @@
             <tr class="listrow[% loop.count % 2 %]">
               <td>[% HTML.escape(row.shiptoname) UNLESS loop.prev.shiptoname == row.shiptoname %]&nbsp;</td>
               <td>[% IF row.id %]<a href='[% row.script %].pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
-              [%- IF INSTANCE_CONF.get_feature_experimental -%]
+              [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
                 <td>[% IF row.oe_id %]<a href='controller.pl?action=Order/edit&type=[% IF SELF.is_customer %]sales_order[% ELSE %]purchase_order[% END %]&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber)   || '&nbsp;' %][% IF row.oe_id %]</a>[% END %]</td>
               [%- ELSE -%]
                 <td>[% IF row.oe_id %]<a href='oe.pl?action=edit&type=[% IF SELF.is_customer %]sales_order[% ELSE %]purchase_order[% END %]&vc=customer&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber)   || '&nbsp;' %][% IF row.oe_id %]</a>[% END %]</td>
diff --git a/templates/webpages/customer_vendor_turnover/_list_open_orders.html b/templates/webpages/customer_vendor_turnover/_list_open_orders.html
index ae20d6886..0ebf8a18a 100644
--- a/templates/webpages/customer_vendor_turnover/_list_open_orders.html
+++ b/templates/webpages/customer_vendor_turnover/_list_open_orders.html
@@ -20,7 +20,7 @@
       <tr class="listrow[% loop.count % 2 %]">
         <td>[% IF row.quotation %]
           [% IF FORM.db == 'customer' %][% 'Sales quotation' | $T8 %][% ELSE %][% 'RFQ' | $T8 %][% END %]</td>
-              [%- IF INSTANCE_CONF.get_feature_experimental -%]
+              [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
                 <td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&id=[% HTML.escape(row.id) %]'>
                     [% END %][% HTML.escape(row.quonumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
               [%- ELSE -%]
@@ -29,7 +29,7 @@
               [%- END -%]
             [% ELSE %]
             [% IF FORM.db == 'customer' %][% 'Sales Order' | $T8 %][% ELSE %][% 'Purchase Order' | $T8 %][% END %]</td>
-              [%- IF INSTANCE_CONF.get_feature_experimental -%]
+              [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
                 <td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&id=[% HTML.escape(row.id) %]'>
                     [% END %][% HTML.escape(row.ordnumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
               [%- ELSE -%]
diff --git a/templates/webpages/customer_vendor_turnover/order_statistic.html b/templates/webpages/customer_vendor_turnover/order_statistic.html
index 151843a64..77aefc02d 100644
--- a/templates/webpages/customer_vendor_turnover/order_statistic.html
+++ b/templates/webpages/customer_vendor_turnover/order_statistic.html
@@ -15,7 +15,7 @@
 
       [%- FOREACH row = orders %]
       <tr class="listrow[% loop.count % 2 %]">
-        [%- IF INSTANCE_CONF.get_feature_experimental -%]
+        [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
           <td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.ordnumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
         [%- ELSE -%]
           <td>[% IF row.id %]<a href='oe.pl?action=edit&type=[% IF FORM.db == "customer" %]sales_order[% ELSE %]purchase_order[% END %]&vc=[% FORM.db %]&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
diff --git a/templates/webpages/customer_vendor_turnover/quotation_statistic.html b/templates/webpages/customer_vendor_turnover/quotation_statistic.html
index 3ca521d24..0c37bd57a 100644
--- a/templates/webpages/customer_vendor_turnover/quotation_statistic.html
+++ b/templates/webpages/customer_vendor_turnover/quotation_statistic.html
@@ -15,7 +15,7 @@
 
       [%- FOREACH row = orders %]
       <tr class="listrow[% loop.count % 2 %]">
-        [%- IF INSTANCE_CONF.get_feature_experimental -%]
+        [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
           <td>[% IF row.id %]<a href='controller.pl?action=Order/edit&type=[% IF FORM.db == "customer" %]sales_quotation[% ELSE %]request_quotation[% END %]&id=[% HTML.escape(row.id) %]'>
               [% END %][% HTML.escape(row.quonumber)   || '&nbsp;' %][% IF row.id %]</a>[% END %]</td>
         [%- ELSE -%]
diff --git a/templates/webpages/delivery_plan/_filter.html b/templates/webpages/delivery_plan/_filter.html
index 65ed96486..55db12444 100644
--- a/templates/webpages/delivery_plan/_filter.html
+++ b/templates/webpages/delivery_plan/_filter.html
@@ -92,7 +92,7 @@
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.part,     value='part',     label=LxERP.t8('Part')) %]
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.service,  value='service',  label=LxERP.t8('Service')) %]
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.assembly, value='assembly', label=LxERP.t8('Assembly')) %]
-     [%- IF INSTANCE_CONF.get_feature_experimental %]
+     [%- IF INSTANCE_CONF.get_feature_experimental_assortment %]
        [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.assortment, value='assortment', label=LxERP.t8('Assortment')) %]
      [% END %]
    </td>
diff --git a/templates/webpages/delivery_value_report/_filter.html b/templates/webpages/delivery_value_report/_filter.html
index 3661464f3..d16a9f27b 100644
--- a/templates/webpages/delivery_value_report/_filter.html
+++ b/templates/webpages/delivery_value_report/_filter.html
@@ -84,7 +84,7 @@
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.part,     value='part',     label=LxERP.t8('Part')) %]
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.service,  value='service',  label=LxERP.t8('Service')) %]
      [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.assembly, value='assembly', label=LxERP.t8('Assembly')) %]
-     [%- IF INSTANCE_CONF.get_feature_experimental %]
+     [%- IF INSTANCE_CONF.get_feature_experimental_assortment %]
        [% L.checkbox_tag('filter.part.part_type[]', checked=filter.part.part_type_.assortment, value='assortment', label=LxERP.t8('Assortment')) %]
      [% END %]
    </td>
diff --git a/templates/webpages/ic/generate_report_bottom.html b/templates/webpages/ic/generate_report_bottom.html
index 25009f6d6..9dc3ea80a 100644
--- a/templates/webpages/ic/generate_report_bottom.html
+++ b/templates/webpages/ic/generate_report_bottom.html
@@ -23,7 +23,7 @@
      <td>[%- 'Service (typeabbreviation)'    | $T8 %]</td>
      <td>[%- 'Service'                       | $T8 %]</td>
     </tr>
-    [%- IF INSTANCE_CONF.get_feature_experimental %]
+    [%- IF INSTANCE_CONF.get_feature_experimental_assortment %]
     <tr class="listrow1">
      <td>[%- 'Assortment (typeabbreviation)' | $T8 %]</td>
      <td>[%- 'Assortment'                    | $T8 %]</td>
diff --git a/templates/webpages/ic/search.html b/templates/webpages/ic/search.html
index 0b3dd0809..5847eb949 100644
--- a/templates/webpages/ic/search.html
+++ b/templates/webpages/ic/search.html
@@ -38,7 +38,7 @@
           <input name="l_assembly" id="l_assembly" class="checkbox" type="checkbox" value="Y" checked>
           <label for="l_assembly">[% 'Assembly' | $T8 %]</label>
         </td>
-        [%- IF INSTANCE_CONF.get_feature_experimental %]
+        [%- IF INSTANCE_CONF.get_feature_experimental_assortment %]
         <td>
           <input name="l_assortment" id="l_assortment" class="checkbox" type="checkbox" value="Y" checked>
           <label for="l_assortment">[% 'Assortment' | $T8 %]</label>
diff --git a/templates/webpages/mass_invoice_create_print_from_do/list_sales_delivery_orders.html b/templates/webpages/mass_invoice_create_print_from_do/list_sales_delivery_orders.html
index f4a8c7a22..b020743a9 100644
--- a/templates/webpages/mass_invoice_create_print_from_do/list_sales_delivery_orders.html
+++ b/templates/webpages/mass_invoice_create_print_from_do/list_sales_delivery_orders.html
@@ -36,7 +36,7 @@
       <td>[% L.checkbox_tag('id[]', value=sales_delivery_order.id, "data-checkall"=1) %]</td>
       <td>[% HTML.escape(sales_delivery_order.transdate_as_date) %]</td>
       <td>[% L.link(SELF.url_for(controller="do.pl", action="edit", type="sales_delivery_order", id=sales_delivery_order.id), sales_delivery_order.donumber) %]</td>
-      [%- IF INSTANCE_CONF.get_feature_experimental -%]
+      [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
         <td>[% L.link(SELF.url_for(controller="controller.pl", action="Order/edit", type="sales_order", id=sales_delivery_order.sales_order.id), sales_delivery_order.ordnumber) %]</td>
       [%- ELSE -%]
         <td>[% L.link(SELF.url_for(controller="oe.pl", action="edit", type="sales_order", id=sales_delivery_order.sales_order.id), sales_delivery_order.ordnumber) %]</td>
diff --git a/templates/webpages/requirement_spec_order/list.html b/templates/webpages/requirement_spec_order/list.html
index 3ee5f0bbc..d1c227891 100644
--- a/templates/webpages/requirement_spec_order/list.html
+++ b/templates/webpages/requirement_spec_order/list.html
@@ -79,7 +79,7 @@
       [% END %]
      </td>
      <td>
-      [%- IF INSTANCE_CONF.get_feature_experimental -%]
+      [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
         <a href="controller.pl?action=Order/edit&id=[% HTML.url(rs_order.order_id) %]&type=[% HTML.url(rs_order.order.type) %]">
       [%- ELSE -%]
         <a href="oe.pl?action=edit&id=[% HTML.url(rs_order.order_id) %]&type=[% HTML.url(rs_order.order.type) %]">