Presenter: Neue Struktur in den restlichen Bereichen umgesetzt
authorSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:33:15 +0000 (15:33 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Tue, 19 Dec 2017 14:37:19 +0000 (15:37 +0100)
37 files changed:
SL/Controller/BankTransaction.pm
SL/Controller/Inventory.pm
SL/Controller/Letter.pm
SL/Controller/Project.pm
SL/Controller/RecordLinks.pm
SL/Controller/ShopOrder.pm
SL/Controller/YearEndTransactions.pm
bin/mozilla/wh.pl
templates/webpages/amcvar/render_inputs.html
templates/webpages/amcvar/render_inputs_block.html
templates/webpages/bank_transactions/_problems.html
templates/webpages/buchungsgruppen/form.html
templates/webpages/chart/test_page.html
templates/webpages/client_config/_default_accounts.html
templates/webpages/client_config/_features.html
templates/webpages/common/render_cvar_filter_input.html
templates/webpages/common/render_cvar_input.html
templates/webpages/cp/form_header.html
templates/webpages/csv_import/_form_parts.html
templates/webpages/customer_vendor/test_page.html
templates/webpages/inventory/warehouse_selection_stock.html
templates/webpages/letter/edit.html
templates/webpages/letter/search.html
templates/webpages/price_rule/_filter.html
templates/webpages/price_rule/item.html
templates/webpages/project/_basic_data.html
templates/webpages/project/_linked_records.html
templates/webpages/project/test_page.html
templates/webpages/record_links/add_list.html
templates/webpages/rp/report.html
templates/webpages/simple_system_setting/_bank_account_form.html
templates/webpages/taxzones/form.html
templates/webpages/vk/search_invoice.html
templates/webpages/wh/journal_filter.html
templates/webpages/wh/report_filter.html
templates/webpages/wh/warehouse_selection.html
templates/webpages/wh/warehouse_selection_assembly.html

index 7f89646..692fb70 100644 (file)
@@ -25,7 +25,6 @@ use SL::DB::BankAccount;
 use SL::DB::RecordTemplate;
 use SL::DB::SepaExportItem;
 use SL::DBUtils qw(like);
-use SL::Presenter;
 
 use List::MoreUtils qw(any);
 use List::Util qw(max);
index a95efad..866c153 100644 (file)
@@ -13,7 +13,7 @@ use SL::DB::Unit;
 use SL::WH;
 use SL::ReportGenerator;
 use SL::Locale::String qw(t8);
-use SL::Presenter;
+use SL::Presenter::Tag qw(select_tag);
 use SL::DBUtils;
 use SL::Helper::Flash;
 use SL::Controller::Helper::ReportGenerator;
@@ -21,7 +21,7 @@ use SL::Controller::Helper::ReportGenerator;
 use English qw(-no_match_vars);
 
 use Rose::Object::MakeMethods::Generic (
-  'scalar --get_set_init' => [ qw(warehouses units p) ],
+  'scalar --get_set_init' => [ qw(warehouses units) ],
   'scalar'                => [ qw(warehouse bin unit part) ],
 );
 
@@ -505,10 +505,6 @@ sub init_units {
   SL::DB::Manager::Unit->get_all;
 }
 
-sub init_p {
-  SL::Presenter->get;
-}
-
 sub set_target_from_part {
   my ($self) = @_;
 
@@ -554,7 +550,7 @@ sub set_layout {
 }
 
 sub build_warehouse_select {
$_[0]->p->select_tag('warehouse_id', $_[0]->warehouses,
 select_tag('warehouse_id', $_[0]->warehouses,
    title_key => 'description',
    default   => $_[0]->warehouse->id,
    onchange  => 'reload_bin_selection()',
@@ -562,7 +558,7 @@ sub build_warehouse_select {
 }
 
 sub build_bin_select {
-  $_[0]->p->select_tag('bin_id', [ $_[0]->warehouse->bins ],
+  select_tag('bin_id', [ $_[0]->warehouse->bins ],
     title_key => 'description',
     default   => $_[0]->bin->id,
   );
@@ -570,11 +566,11 @@ sub build_bin_select {
 
 sub build_unit_select {
   $_[0]->part->id
-    ? $_[0]->p->select_tag('unit_id', $_[0]->part->available_units,
+    ? select_tag('unit_id', $_[0]->part->available_units,
         title_key => 'name',
         default   => $_[0]->part->unit_obj->id,
       )
-    : $_[0]->p->select_tag('unit_id', $_[0]->units,
+    : select_tag('unit_id', $_[0]->units,
         title_key => 'name',
       )
 }
index 780d7f9..4cc5b55 100644 (file)
@@ -20,6 +20,7 @@ use SL::Helper::PrintOptions;
 use SL::Locale::String qw(t8);
 use SL::Mailer;
 use SL::IS;
+use SL::Presenter::Tag qw(select_tag);
 use SL::ReportGenerator;
 use SL::Webdav;
 use SL::Webdav::File;
@@ -124,7 +125,7 @@ sub action_update_contacts {
   $self->js
     ->replaceWith(
       '#letter_cp_id',
-      SL::Presenter->get->select_tag('letter.cp_id', $contacts, default => $default, value_key => 'cp_id', title_key => 'full_name')
+      select_tag('letter.cp_id', $contacts, default => $default, value_key => 'cp_id', title_key => 'full_name')
     )
     ->render;
 }
index 59e1034..601b245 100644 (file)
@@ -297,7 +297,7 @@ sub prepare_report {
     project_type  => { sub  => sub { $_[0]->project_type->description } },
     project_status => { sub  => sub { $_[0]->project_status->description }, text => t8('Status') },
     customer      => { sub       => sub { !$_[0]->customer_id ? '' : $_[0]->customer->name },
-                       raw_data  => sub { !$_[0]->customer_id ? '' : $self->presenter->customer($_[0]->customer, display => 'table-cell', callback => $callback) } },
+                       raw_data  => sub { !$_[0]->customer_id ? '' : $_[0]->customer->presenter->customer(display => 'table-cell', callback => $callback) } },
     active        => { sub  => sub { $_[0]->active   ? $::locale->text('Active') : $::locale->text('Inactive') },
                        text => $::locale->text('Active') },
     valid         => { sub  => sub { $_[0]->valid    ? $::locale->text('Valid')  : $::locale->text('Invalid')  },
index 660909b..29921c6 100644 (file)
@@ -18,6 +18,7 @@ use SL::DBUtils qw(like);
 use SL::DB::ShopOrder;
 use SL::JSON;
 use SL::Locale::String;
+use SL::Presenter::Record qw(grouped_record_list);
 
 use Rose::Object::MakeMethods::Generic
 (
@@ -63,7 +64,7 @@ sub action_ajax_list {
     my $linked_records = $self->object->linked_records(direction => 'both', recursive => 1, save_path => 1);
     push @{ $linked_records }, $self->object->sepa_export_items if $self->object->can('sepa_export_items');
 
-    my $output         = SL::Presenter->get->grouped_record_list(
+    my $output         = grouped_record_list(
       $linked_records,
       with_columns      => [ qw(record_link_direction) ],
       edit_record_links => 1,
index e8d804f..f88a853 100644 (file)
@@ -12,7 +12,6 @@ use SL::DB::Shop;
 use SL::DB::History;
 use SL::DBUtils;
 use SL::Shop;
-use SL::Presenter;
 use SL::Helper::Flash;
 use SL::Locale::String;
 use SL::Controller::Helper::ParseFilter;
index cab8515..a81fa3b 100644 (file)
@@ -15,6 +15,8 @@ use SL::DB::GLTransaction;
 use SL::DB::AccTransaction;
 use SL::DB::Helper::AccountingPeriod qw(get_balance_starting_date);
 
+use SL::Presenter::Tag qw(checkbox_tag);
+
 use Rose::Object::MakeMethods::Generic (
   'scalar --get_set_init' => [ qw(charts charts9000 cbob_chart cb_date cb_startdate ob_date cb_reference ob_reference cb_description ob_description) ],
 );
@@ -110,7 +112,7 @@ sub prepare_report {
   my $idx = 1;
 
   my %column_defs = (
-    'ids'         => { raw_header_data => $self->presenter->checkbox_tag("", id => "check_all",
+    'ids'         => { raw_header_data => checkbox_tag("", id => "check_all",
                                                                           checkall => "[data-checkall=1]"), 'align' => 'center' },
     'chart'       => { text => $::locale->text('Account'), },
     'description' => { text => $::locale->text('Description'), },
@@ -152,7 +154,7 @@ sub prepare_report {
       my $chart_id = $chart->id;
       my $row = { map { $_ => { 'data' => '' } } @columns };
       $row->{ids}  = {
-        'raw_data' => $self->presenter->checkbox_tag("multi_id_${idx}", value => $chart_id, "data-checkall" => 1),
+        'raw_data' => checkbox_tag("multi_id_${idx}", value => $chart_id, "data-checkall" => 1),
         'valign'   => 'center',
         'align'    => 'center',
       };
index a729e37..6d74a67 100644 (file)
@@ -45,6 +45,7 @@ use SL::WH;
 use SL::OE;
 use SL::Locale::String qw(t8);
 use SL::ReportGenerator;
+use SL::Presenter::Part;
 
 use SL::DB::Part;
 
@@ -700,8 +701,8 @@ sub generate_journal {
   my $idx       = 0;
 
   foreach my $entry (@contents) {
-    $entry->{type_and_classific} = $::request->presenter->type_abbreviation($entry->{part_type}).
-                                   $::request->presenter->classification_abbreviation($entry->{classification_id});
+    $entry->{type_and_classific} = SL::Presenter::Part::type_abbreviation($entry->{part_type}) .
+                                   SL::Presenter::Part::classification_abbreviation($entry->{classification_id});
     $entry->{qty}        = $form->format_amount(\%myconfig, $entry->{qty});
     $entry->{trans_type} = $locale->text($entry->{trans_type});
 
@@ -915,8 +916,8 @@ sub generate_report {
 
   foreach my $entry (@contents) {
 
-    $entry->{type_and_classific} = $::request->presenter->type_abbreviation($entry->{part_type}).
-                                   $::request->presenter->classification_abbreviation($entry->{classification_id});
+    $entry->{type_and_classific} = SL::Presenter::Part::type_abbreviation($entry->{part_type}).
+                                   SL::Presenter::Part::classification_abbreviation($entry->{classification_id});
     map { $subtotals{$_} += $entry->{$_} } @subtotals_columns;
     $total_stock_value   += $entry->{stock_value} * 1;
     $entry->{qty}         = $form->format_amount(\%myconfig, $entry->{qty});
index a2f39ac..880106a 100644 (file)
@@ -1,6 +1,7 @@
 [%- USE T8 %]
 [%- USE HTML %]
 [%- USE L %]
+[%- USE P %]
 
 [%- SET var_name = HTML.escape(name_prefix) _ "cvar_" _ HTML.escape(var.name) _ HTML.escape(name_postfix) -%]
 
 <input name="[% var_name %]" value="[% HTML.escape(var.value) %]">
 
 [%- ELSIF var.type == 'customer' %]
-[% L.customer_vendor_picker(var_name, var.value, type='customer') %]
+[% P.customer_vendor.picker(var_name, var.value, type='customer') %]
 
 [%- ELSIF var.type == 'vendor' %]
-[% L.customer_vendor_picker(var_name, var.value, type='vendor') %]
+[% P.customer_vendor.picker(var_name, var.value, type='vendor') %]
 
 [%- ELSIF var.type == 'part' %]
-[% L.part_picker(var_name, var.value) %]
+[% P.part.picker(var_name, var.value) %]
 
 [%- ELSIF var.type == 'select' %]
 
index 8f0b20f..7373162 100644 (file)
@@ -1,6 +1,7 @@
 [%- USE T8 %]
 [%- USE HTML %]
 [%- USE L %]
+[%- USE P %]
 [%- USE LxERP %][%- USE P -%]
 [%- BLOCK cvar_inputs %]
 [%- SET render_cvar_tag_options = {};
 
 [%- ELSIF cvar.var.type == 'customer' %]
 [%- render_cvar_tag_options.type = 'customer' %]
-[%- L.customer_vendor_picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
+[%- P.customer_vendor.picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
 
 [%- ELSIF cvar.var.type == 'vendor' %]
 [%- render_cvar_tag_options.type = 'vendor' %]
-[%- L.customer_vendor_picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
+[%- P.customer_vendor.picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
 
 [%- ELSIF cvar.var.type == 'part' %]
-[% L.part_picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
+[% P.part.picker(cvar_tag_name, cvar.value, render_cvar_tag_options) %]
 
 [%- ELSIF cvar.var.type == 'number' %]
 [%- L.input_tag(cvar_tag_name, LxERP.format_amount(cvar.value, -2), render_cvar_tag_options) %]
index 9a10fca..e2796d5 100644 (file)
@@ -29,7 +29,7 @@
     <td>[% IF problem.result == 'error' %][% LxERP.t8("Error") %][% ELSE %][% LxERP.t8("Warning") %][% END %]</td>
     <td>
      [% FOREACH invoice = problem.invoices %]
-      [% P.invoice(invoice) %]
+      [% invoice.presenter.invoice %]
       [% UNLESS loop.last %]<br>[% END %]
      [% END %]
     </td>
index 05b5e1a..d068a07 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
+[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%][%- USE P -%]
 [% SET style="width: 400px" %]
 
 <h1>[% HTML.escape(title) %]</h1>
@@ -14,9 +14,9 @@
   <tr>
     <th align="right">[% 'Inventory Account' | $T8 %]</th>
     [%- IF NOT SELF.config.id %]
-    <td>[% L.chart_picker("config.inventory_accno_id", SELF.defaults.inventory_accno_id, choose=1, type='IC', style=style) %]</td>
+    <td>[% P.chart.picker("config.inventory_accno_id", SELF.defaults.inventory_accno_id, choose=1, type='IC', style=style) %]</td>
     [%- ELSIF SELF.config.id AND SELF.config.orphaned %]
-    <td>[% L.chart_picker("config.inventory_accno_id", SELF.config.inventory_accno_id, choose=1, type='IC', style=style) %]</td>
+    <td>[% P.chart.picker("config.inventory_accno_id", SELF.config.inventory_accno_id, choose=1, type='IC', style=style) %]</td>
     [%- ELSE %]
       <td>[%- CHARTLIST.inventory_accno_description %]</td>
     [%- END %]
@@ -25,9 +25,9 @@
   <tr>
     <th align="right">[% 'Revenue' | $T8 %] [% HTML.escape(tz.description) %]</th>
     [%- IF NOT SELF.config.id %]
-    <td>[% L.chart_picker('income_accno_id_' _ tz.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
+    <td>[% P.chart.picker('income_accno_id_' _ tz.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
     [%- ELSIF SELF.config.id AND SELF.config.orphaned %]
-    <td>[% L.chart_picker('income_accno_id_' _ tz.id, CHARTLIST.${tz.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
+    <td>[% P.chart.picker('income_accno_id_' _ tz.id, CHARTLIST.${tz.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
     [%- ELSE %]
       <td>[% CHARTLIST.${tz.id}.income_accno_description %]</td>
     [%- END %]
@@ -35,9 +35,9 @@
   <tr>
     <th align="right">[% 'Expense' | $T8 %] [% HTML.escape(tz.description) %]</th>
     [%- IF NOT SELF.config.id %]
-      <td>[% L.chart_picker('expense_accno_id_' _ tz.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
+      <td>[% P.chart.picker('expense_accno_id_' _ tz.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
     [%- ELSIF SELF.config.id AND SELF.config.orphaned %]
-      <td>[% L.chart_picker('expense_accno_id_' _ tz.id, CHARTLIST.${tz.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
+      <td>[% P.chart.picker('expense_accno_id_' _ tz.id, CHARTLIST.${tz.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
     [%- ELSE %]
       <td>[% CHARTLIST.${tz.id}.expense_accno_description %]</td>
     [%- END %]
index 8d95591..721c066 100644 (file)
@@ -1,4 +1,5 @@
 [% USE L %]
+[% USE P %]
 [% SET style="width: 400px" %]
 
 <h1>Chart Picker Testpage</h1>
@@ -6,48 +7,48 @@
 <div>
 
 <p>
-All charts: [% L.chart_picker('chart_id', '', style=style) %]text after icon<br>
-Only booked charts: [% L.chart_picker('chart_id_booked', '', booked=1, style=style) %]<br>
-All charts choose: [% L.chart_picker('chart_id_choose', '', choose=1, style=style) %]<br>
+All charts: [% P.chart.picker('chart_id', '', style=style) %]text after icon<br>
+Only booked charts: [% P.chart.picker('chart_id_booked', '', booked=1, style=style) %]<br>
+All charts choose: [% P.chart.picker('chart_id_choose', '', choose=1, style=style) %]<br>
 </p>
 
 <p>
 Filter by link:<br>
-AR_paid: [% L.chart_picker('chart_id_ar_paid', undef, type='AR_paid', category='I,A' style=style) %]<br>
-AR: [% L.chart_picker('chart_id_ar', undef, type='AR', style=style) %]<br>
-AP: [% L.chart_picker('chart_id_ap', undef, type='AP', style=style) %]<br>
-AR or AP: [% L.chart_picker('chart_id_arap', undef, type='AR,AP', style=style) %]<br>
-IC_income,IC_sale: [% L.chart_picker('chart_id_icis', undef, type='IC_income,IC_sale', style=style) %]<br>
-IC_expense,IC_cogs: [% L.chart_picker('chart_id_icco', undef, type='IC_expense,IC_cogs', style=style) %]<br>
-IC: [% L.chart_picker('chart_id_ic', undef, type='IC', style=style) %]<br>
+AR_paid: [% P.chart.picker('chart_id_ar_paid', undef, type='AR_paid', category='I,A' style=style) %]<br>
+AR: [% P.chart.picker('chart_id_ar', undef, type='AR', style=style) %]<br>
+AP: [% P.chart.picker('chart_id_ap', undef, type='AP', style=style) %]<br>
+AR or AP: [% P.chart.picker('chart_id_arap', undef, type='AR,AP', style=style) %]<br>
+IC_income,IC_sale: [% P.chart.picker('chart_id_icis', undef, type='IC_income,IC_sale', style=style) %]<br>
+IC_expense,IC_cogs: [% P.chart.picker('chart_id_icco', undef, type='IC_expense,IC_cogs', style=style) %]<br>
+IC: [% P.chart.picker('chart_id_ic', undef, type='IC', style=style) %]<br>
 </p>
 
 <p>
 Filter by category:<br>
-I: [% L.chart_picker('chart_id_i', undef, category='I', style=style) %]<br>
-IE: [% L.chart_picker('chart_id_ie', undef, category='I,E', style=style) %]<br>
-AQL: [% L.chart_picker('chart_id_aql', undef, category='A,Q,L', style=style) %]<br>
+I: [% P.chart.picker('chart_id_i', undef, category='I', style=style) %]<br>
+IE: [% P.chart.picker('chart_id_ie', undef, category='I,E', style=style) %]<br>
+AQL: [% P.chart.picker('chart_id_aql', undef, category='A,Q,L', style=style) %]<br>
 </p>
 
 <p>
 Filter by special type:<br>
-GuV: [% L.chart_picker('chart_id_guv', undef, type='guv', style=style) %]<br>
+GuV: [% P.chart.picker('chart_id_guv', undef, type='guv', style=style) %]<br>
 </p>
 
-<p>bank (fat): [% L.chart_picker('bank_id', '', type='bank', fat_set_item=1, choose=1, style=style) %]
+<p>bank (fat): [% P.chart.picker('bank_id', '', type='bank', fat_set_item=1, choose=1, style=style) %]
 </p>
 <p id="banktext"></p>
 
 
 <p>
 [% FOREACH i IN [ 1 2 3 4 5 6 ] %]
-S [% i %]: [% L.chart_picker('credit_' _ i) %] - &nbsp;&nbsp;  H [% i %]: [% L.chart_picker('debit' _ i) %] <br>
+S [% i %]: [% P.chart.picker('credit_' _ i) %] - &nbsp;&nbsp;  H [% i %]: [% P.chart.picker('debit' _ i) %] <br>
 [% END %]
 </p>
 
 <p>
-Pre-filled chart object: [% L.chart_picker('pre_filled_chart_object', pre_filled_chart, style=style) %]<br>
-Pre-filled chart ID: [% L.chart_picker('pre_filled_chart_id', pre_filled_chart.id, style=style) %]<br>
+Pre-filled chart object: [% P.chart.picker('pre_filled_chart_object', pre_filled_chart, style=style) %]<br>
+Pre-filled chart ID: [% P.chart.picker('pre_filled_chart_id', pre_filled_chart.id, style=style) %]<br>
 </p>
 
 </div>
index bb92517..ee9669c 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
+[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE P -%][%- USE T8 -%]
 [% SET style="width: 500px" %]
 [%# L.dump( SELF.defaults ) %]
 <div id="default_accounts">
@@ -6,53 +6,53 @@
   <tr>
    <td align="right">[% LxERP.t8("Inventory Account") %]</td>
    <td>
-   [% L.chart_picker('defaults.inventory_accno_id', SELF.defaults.inventory_accno_id, type='IC', choose=1, style=style) %]
+   [% P.chart.picker('defaults.inventory_accno_id', SELF.defaults.inventory_accno_id, type='IC', choose=1, style=style) %]
    <td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Revenue Account") %]</td>
-   <td>[% L.chart_picker('defaults.income_accno_id', SELF.defaults.income_accno_id, type='IC_income,IC_sale', choose=1, style=style) %]</td>
+   <td>[% P.chart.picker('defaults.income_accno_id', SELF.defaults.income_accno_id, type='IC_income,IC_sale', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Expense Account") %]</td>
-   <td>[% L.chart_picker('defaults.expense_accno_id', SELF.defaults.expense_accno_id, type='IC_expense,IC_cogs', choose=1, style=style) %]</td>
+   <td>[% P.chart.picker('defaults.expense_accno_id', SELF.defaults.expense_accno_id, type='IC_expense,IC_cogs', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Foreign Exchange Gain") %]</td>
-   <td>[% L.chart_picker('defaults.fxgain_accno_id', SELF.defaults.fxgain_accno_id, category='I,A', choose=1, style=style) %]<td>
+   <td>[% P.chart.picker('defaults.fxgain_accno_id', SELF.defaults.fxgain_accno_id, category='I,A', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Foreign Exchange Loss") %]</td>
-   <td>[% L.chart_picker('defaults.fxloss_accno_id', SELF.defaults.fxloss_accno_id, category='E,A', choose=1, style=style) %]<td>
+   <td>[% P.chart.picker('defaults.fxloss_accno_id', SELF.defaults.fxloss_accno_id, category='E,A', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Rounding Gain") %]</td>
-   <td>[% L.chart_picker('defaults.rndgain_accno_id', SELF.defaults.rndgain_accno_id, category='I,A', choose=1, style=style) %]</td>
+   <td>[% P.chart.picker('defaults.rndgain_accno_id', SELF.defaults.rndgain_accno_id, category='I,A', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Rounding Loss") %]</td>
-   <td>[% L.chart_picker('defaults.rndloss_accno_id', SELF.defaults.rndloss_accno_id,  category='E,A', choose=1, style=style) %]</td>
+   <td>[% P.chart.picker('defaults.rndloss_accno_id', SELF.defaults.rndloss_accno_id,  category='E,A', choose=1, style=style) %]</td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Current assets account") %]</td>
-   <td>[% L.chart_picker('defaults.ar_paid_accno_id', SELF.defaults.ar_paid_accno_id, type='AR_paid', choose=1, style=style) %]<td>
+   <td>[% P.chart.picker('defaults.ar_paid_accno_id', SELF.defaults.ar_paid_accno_id, type='AR_paid', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Payable account") %]</td>
-   <td>[% L.chart_picker('defaults.ap_chart_id', SELF.defaults.ap_chart_id, type='AP', choose=1, style=style) %]<td>
+   <td>[% P.chart.picker('defaults.ap_chart_id', SELF.defaults.ap_chart_id, type='AP', choose=1, style=style) %]<td>
   </tr>
 
   <tr>
    <td align="right">[% LxERP.t8("Receivable account") %]</td>
-   <td>[% L.chart_picker('defaults.ar_chart_id', SELF.defaults.ar_chart_id, type='AR', choose=1, style=style) %]<td>
+   <td>[% P.chart.picker('defaults.ar_chart_id', SELF.defaults.ar_chart_id, type='AR', choose=1, style=style) %]<td>
   </tr>
 
  </table>
index 53422d0..7a952a8 100644 (file)
    <td align="right">[% LxERP.t8('Default article for converting into quotations and orders') %]</td>
    <td>
     [% IF SELF.h_unit_name %]
-     [% P.part_picker('defaults.requirement_spec_section_order_part_id', SELF.defaults.requirement_spec_section_order_part_id, convertible_unit=SELF.h_unit_name, style=style) %]
+     [% P.part.picker('defaults.requirement_spec_section_order_part_id', SELF.defaults.requirement_spec_section_order_part_id, convertible_unit=SELF.h_unit_name, style=style) %]
     [% ELSE %]
      [% LxERP.t8("Error: this feature requires that articles with a time-based unit (e.g. 'h' or 'min') exist.") %]
     [% END %]
   <tr><td class="listheading" colspan="4">[% LxERP.t8('Transport and service costs reminder') %]</td></tr>
  <tr>
   <td align="right">[% LxERP.t8('Default transport article number') %]</td>
-  <td>[% L.part_picker('defaults.transport_cost_reminder_article_number_id', SELF.defaults.transport_cost_reminder_article_number_id, style=style) %]</td>
+  <td>[% P.part.picker('defaults.transport_cost_reminder_article_number_id', SELF.defaults.transport_cost_reminder_article_number_id, style=style) %]</td>
    <td>[% LxERP.t8('Before saving a sales order, this article will be checked and a warning is generated.') %]</td>
  </tr>
 
index 4ec984b..8654854 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE HTML -%][%- USE L -%][%- USE LxERP -%][%- USE T8 -%]
+[%- USE HTML -%][%- USE L -%][%- USE LxERP -%][%- USE T8 -%][%- USE P -%]
 [%- SET id__    = cvar_cfg.id
         name__  = 'filter.cvar.' _ id__
         value__ = filter.cvar.$id__ %]
     L.select_tag(name__, options__, default=value__, class=cvar_class) %]
 
 [% ELSIF cvar_cfg.type == 'customer' %]
- [%- L.customer_vendor_picker(name__, value__, type='customer', class=cvar_class) %]
+ [%- P.customer_vendor.picker(name__, value__, type='customer', class=cvar_class) %]
 
 [% ELSIF cvar_cfg.type == 'vendor' %]
- [%- L.customer_vendor_picker(name__, value__, type='vendor', class=cvar_class) %]
+ [%- P.customer_vendor.picker(name__, value__, type='vendor', class=cvar_class) %]
 
 [% ELSIF cvar_cfg.type == 'part' %]
- [%- L.part_picker(name__, value__, class=cvar_class) %]
+ [%- P.part.picker(name__, value__, class=cvar_class) %]
 
 [%- ELSE %]
  [% SET value_name__ = id__ _ '_substr__ilike'
index c7072d4..96b69c6 100644 (file)
@@ -1,6 +1,7 @@
 [%- USE T8 %]
 [%- USE HTML %]
 [%- USE L %]
+[%- USE P %]
 [%- USE LxERP %]
 
 [%- DEFAULT var_name = HTML.escape(cvar_name_prefix) _ HTML.escape(var.config.name) _ HTML.escape(cvar_name_postfix) %]
 [%- ELSIF ( var.config.type == 'timestamp' ) %]
   [% L.input_tag(var_name, var.value) %]
 [%- ELSIF ( var.config.type == 'customer' ) %]
-  [% L.customer_vendor_picker(var_name, var.value, type='customer') %]
+  [% P.customer_vendor.picker(var_name, var.value, type='customer') %]
 [%- ELSIF ( var.config.type == 'vendor' ) %]
-  [% L.customer_vendor_picker(var_name, var.value, type='vendor') %]
+  [% P.customer_vendor.picker(var_name, var.value, type='vendor') %]
 [%- ELSIF ( var.config.type == 'part' ) %]
-  [% L.part_picker(var_name, var.value) %]
+  [% P.part.picker(var_name, var.value) %]
 [%- ELSIF ( var.config.type == 'select' ) %]
   [% L.select_tag(var_name, var.config.processed_options, default = var.value) %]
 [%- ELSIF ( var.config.type == 'number' ) %]
index c41ec96..e460924 100644 (file)
@@ -25,7 +25,7 @@
         <tr>
           <th align=right>[% is_customer ? LxERP.t8('Customer') : LxERP.t8('Vendor') %]</th>
           <td>
-           [% P.customer_vendor_picker(vc_id, $vc_id, type=vc, class="initial_focus", style=style) %]
+           [% P.customer_vendor.picker(vc_id, $vc_id, type=vc, class="initial_focus", style=style) %]
            [% P.hidden_tag("previous_" _ vc_id, $vc_id) %]
           </td>
         </tr>
index 3aaa813..9e9101d 100644 (file)
@@ -43,7 +43,7 @@
 <tr>
  <th align="right">[%- LxERP.t8('Parts Classification') %]:</th>
  <td colspan="10">
-  [% P.select_classification('settings.part_classification', default = SELF.profile.get('part_classification'), style = 'width: 300px') %]
+  [% P.part.select_classification('settings.part_classification', default = SELF.profile.get('part_classification'), style = 'width: 300px') %]
  </td>
 </tr>
 
index c1d26f9..2698cc7 100644 (file)
@@ -4,21 +4,21 @@
 
 <br>
 Customer: with preselected id 822<br>
-[% L.customer_vendor_picker('customer_id', 822, type='customer') %]<br>
+[% P.customer_vendor.picker('customer_id', 822, type='customer') %]<br>
 
 <br><hr>
 Vendor: <br>
-[% L.customer_vendor_picker('vendor_id', '', type='vendor') %]<br>
+[% P.customer_vendor.picker('vendor_id', '', type='vendor') %]<br>
 
 <br><hr>
 customer with fat change<br>
-[% L.customer_vendor_picker('customer_id2', '', type='customer', fat_set_item=1) %]<br>
+[% P.customer_vendor.picker('customer_id2', '', type='customer', fat_set_item=1) %]<br>
 <div>id from change <span id='change1'></span></div>
 <div>greeting from fat change <span id='change2'></span></div>
 
 <br><hr>
 fat vendor with change<br>
-[% L.customer_vendor_picker('vendor_id2', '', type='vendor', fat_set_item=1) %]<br>
+[% P.customer_vendor.picker('vendor_id2', '', type='vendor', fat_set_item=1) %]<br>
 <div>id  from change<span id='change3'></span></div>
 <div>greeting from fat change <span id='change4'></span></div>
 
@@ -31,7 +31,7 @@ this one will be a reinit_widget after 4s:<br>
 
 <br><hr>
 this should have three '-' before and after touching:<br>
----[% L.customer_vendor_picker('vendor5_id', '', type='vendor') %]---
+---[% P.customer_vendor.picker('vendor5_id', '', type='vendor') %]---
 
 
 <script type='text/javascript'>
index 70b6e6f..d38759d 100644 (file)
@@ -1,5 +1,6 @@
 [%- USE T8 %]
 [%- USE L %]
+[%- USE P %]
 [%- USE HTML %]
 [%- USE LxERP %]
 
@@ -12,7 +13,7 @@
  <table>
   <tr>
    <th align="right" nowrap>[% 'Part' | $T8 %]</th>
-   <td>[% L.part_picker('part_id', SELF.part) %]</td>
+   <td>[% P.part.picker('part_id', SELF.part) %]</td>
   </tr>
 
   <tr>
index d33570f..e1c05eb 100644 (file)
 [%- IF SELF.is_sales %]
     <tr>
      <th align='right'>[% 'Customer' | $T8 %]:</th>
-     <td>[% P.customer_vendor_picker('letter.customer_id', letter.customer_id, type='customer') %]</td>
+     <td>[% P.customer_vendor.picker('letter.customer_id', letter.customer_id, type='customer') %]</td>
     </tr>
 [%- ELSE %]
     <tr>
      <th align='right'>[% 'Vendor' | $T8 %]:</th>
-     <td>[% P.customer_vendor_picker('letter.vendor_id', letter.vendor_id, type='vendor') %]</td>
+     <td>[% P.customer_vendor.picker('letter.vendor_id', letter.vendor_id, type='vendor') %]</td>
     </tr>
 [%- END %]
     <tr>
index fa89fd6..3fd32dd 100644 (file)
@@ -1,6 +1,7 @@
 [% USE HTML %]
 [% USE T8 %]
 [% USE L %]
+[% USE P %]
 [% USE LxERP %]
 <form action="controller.pl" method="post" name="Form" id="search_form">
 
 [%- IF SELF.is_sales %]
   <tr>
    <td align="right">[% 'Customer' | $T8 %]</td>
-   <td>[% L.customer_vendor_picker('filter.customer_id', filter.customer_id, type='customer', style='width:250px') %]</td>
+   <td>[% P.customer_vendor.picker('filter.customer_id', filter.customer_id, type='customer', style='width:250px') %]</td>
   </tr>
 [%- ELSE %]
   <tr>
    <td align="right">[% 'Vendor' | $T8 %]</td>
-   <td>[% L.customer_vendor_picker('filter.vendor_id', filter.vendor_id, type='vendor', style='width:250px') %]</td>
+   <td>[% P.customer_vendor.picker('filter.vendor_id', filter.vendor_id, type='vendor', style='width:250px') %]</td>
   </tr>
 [%- END %]
   <tr>
index e39733d..d2c217f 100644 (file)
@@ -1,5 +1,6 @@
 [%- USE T8 %]
 [%- USE L %]
+[%- USE P %]
 [%- USE LxERP %]
 [%- USE HTML %]
 <form action='controller.pl' method='post' id='search_form'>
   </tr>
   <tr>
    <th align="right">[% 'Part' | $T8 %]</th>
-   <td>[% L.part_picker('filter.item_type_matches[].part', FORM.filter.item_type_matches.0.part, style='width: 300px') %]</td>
+   <td>[% P.part.picker('filter.item_type_matches[].part', FORM.filter.item_type_matches.0.part, style='width: 300px') %]</td>
   </tr>
   <tr id='price_rule_filter_customer_tr' [% "style='display:hidden' " UNLESS SELF.vc == 'customer' %]>
    <th align="right">[% 'Customer' | $T8 %]</th>
-   <td>[% L.customer_vendor_picker('filter.item_type_matches[].customer', FORM.filter.item_type_matches.0.customer, type='customer', id='price_rule_filter_customer', style='width: 300px') %]</td>
+   <td>[% P.customer_vendor.picker('filter.item_type_matches[].customer', FORM.filter.item_type_matches.0.customer, type='customer', id='price_rule_filter_customer', style='width: 300px') %]</td>
   </tr>
   <tr id='price_rule_filter_vendor_tr' [% "style='display:hidden' " UNLESS SELF.vc == 'customer' %]>
    <th align="right">[% 'Vendor' | $T8 %]</th>
-   <td>[% L.customer_vendor_picker('filter.item_type_matches[].vendor', FORM.filter.item_type_matches.0.vendor, type='vendor', id='price_rule_filter_vendor', style='width: 300px') %]</td>
+   <td>[% P.customer_vendor.picker('filter.item_type_matches[].vendor', FORM.filter.item_type_matches.0.vendor, type='vendor', id='price_rule_filter_vendor', style='width: 300px') %]</td>
   </tr>
   <tr>
    <th align="right">[% 'Business' | $T8 %]</th>
index e090666..2916507 100644 (file)
@@ -1,4 +1,5 @@
 [%- USE L %]
+[%- USE P %]
 [%- USE HTML %]
 [%- USE T8 %]
 [%- USE LxERP %]
 [% L.hidden_tag('price_rule.items[].type', item.type) %]
 [%- SWITCH item.type %]
   [% CASE 'part' %]
-    [% 'Part' | $T8 %] [% 'is' | $T8 %] [% L.part_picker('price_rule.items[].value_int', item.part) %]
+    [% 'Part' | $T8 %] [% 'is' | $T8 %] [% P.part.picker('price_rule.items[].value_int', item.part) %]
   [% CASE 'customer' %]
-    [% 'Customer' | $T8 %] [% 'is' | $T8 %] [% L.customer_vendor_picker('price_rule.items[].value_int', item.customer, type='customer') %]
+    [% 'Customer' | $T8 %] [% 'is' | $T8 %] [% P.customer_vendor.picker('price_rule.items[].value_int', item.customer, type='customer') %]
   [% CASE 'vendor' %]
-    [% 'Vendor' | $T8 %] [% 'is' | $T8 %] [% L.customer_vendor_picker('price_rule.items[].value_int', item.vendor, type='vendor') %]
+    [% 'Vendor' | $T8 %] [% 'is' | $T8 %] [% P.customer_vendor.picker('price_rule.items[].value_int', item.vendor, type='vendor') %]
   [% CASE 'business' %]
     [% 'Type of Business' | $T8 %] [% 'is' | $T8 %] [% L.select_tag('price_rule.items[].value_int', SELF.businesses, title_key='description', default=item.value_int) %]
   [% CASE 'partsgroup' %]
index ab8ebd5..8c9f709 100644 (file)
@@ -28,7 +28,7 @@
 
  <tr>
   <th align="right">[% 'Customer' | $T8 %]</th>
-<td>[% L.customer_vendor_picker('project.customer_id', SELF.project.customer_id, type='customer', fat_set_item=1, style='width: 300px', default=SELF.project.customer_id)%] [%- IF SELF.project.customer_id %]
+<td>[% P.customer_vendor.picker('project.customer_id', SELF.project.customer_id, type='customer', fat_set_item=1, style='width: 300px', default=SELF.project.customer_id)%] [%- IF SELF.project.customer_id %]
 [%- END %]
 </td>
  </tr>
index e7057ac..5175c71 100644 (file)
@@ -1,2 +1,2 @@
 [%- USE P %]
- [% P.grouped_record_list(records) %]
+ [% P.record.grouped_list(records) %]
index e4b8d92..29cbe44 100644 (file)
@@ -1,16 +1,17 @@
 [% USE L %]
+[% USE P %]
 
 <h1>Projekt-Picker-Testpage</h1>
 
 <br>
-[% L.project_picker('project_id', '', style='width: 600px') %] text<br>
+[% P.project.picker('project_id', '', style='width: 600px') %] text<br>
 
 Runtime test:<br>
 <div id='runtime_picker'>'
 
 <script>
 $(function() {
-  $('#runtime_picker').html('[% L.project_picker("project2_id") %]');
+  $('#runtime_picker').html('[% P.project.picker("project2_id") %]');
   kivi.reinit_widgets();
 })
 </script>
index 6ac59e1..0c97bd6 100644 (file)
@@ -26,7 +26,7 @@
   [% END %]
   <td>[%- HTML.escape(object.$description_column) %]</td>
   [% IF project_column %]
-   <td>[%- P.project(object.$project_column, no_link=1) %]</td>
+   <td>[%- object.$project_column.presenter.project(no_link=1) %]</td>
   [% END %]
  </tr>
  [%- END %]
index 162c59c..f28684c 100644 (file)
@@ -1,6 +1,7 @@
 [%- USE HTML %]
 [%- USE LxERP %]
 [%- USE L %]
+[%- USE P %]
 [%- USE T8 %]
 
 [%- BLOCK customized_report %]
 [%- BLOCK customer %]
   <tr>
     <th align=right nowrap>[% 'Customer' | $T8 %]</th>
-    <td colspan=3>[% L.customer_vendor_picker('customer_id', '', type='customer') %]</td>
+    <td colspan=3>[% P.customer_vendor.picker('customer_id', '', type='customer') %]</td>
   </tr>
 [%- END %]
 [%- BLOCK projectnumber %]
   <tr>
     <th align=right nowrap>[% 'Project' | $T8 %]</th>
-    <td colspan=3>[% L.project_picker('project_id', '') %]</td>
+    <td colspan=3>[% P.project.picker('project_id', '') %]</td>
   </tr>
 [%- END %]
 
index 63cc87f..f3da6cc 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE HTML -%][%- USE LxERP -%][%- USE L -%]
+[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE P -%]
 
 [% SET style="width: 400px" %]
 
@@ -29,7 +29,7 @@
  </tr>
  <tr>
   <th align="right">[% LxERP.t8('Chart') %]</th>
-  <td>[% L.chart_picker('object.chart_id', SELF.object.chart_id, type='AR_paid,AP_paid', category='A,L,Q', choose=1, style=style, "data-validate"="required", "data-title"=LxERP.t8("Chart")) %]</td>
+  <td>[% P.chart.picker('object.chart_id', SELF.object.chart_id, type='AR_paid,AP_paid', category='A,L,Q', choose=1, style=style, "data-validate"="required", "data-title"=LxERP.t8("Chart")) %]</td>
  </tr>
  <tr>
   <th align="right">[% LxERP.t8('Obsolete') %]</th>
index 9cddd46..b59385a 100644 (file)
@@ -1,4 +1,4 @@
-[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]<h1>[% HTML.escape(title) %]</h1>
+[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE P -%][%- USE T8 -%]<h1>[% HTML.escape(title) %]</h1>
 [% SET style="width: 400px" %]
 
 <form action="controller.pl" method="post" id="form">
@@ -13,9 +13,9 @@
   <tr>
     <th align="right">[% 'Revenue' | $T8 %] [% HTML.escape(bg.description) %]</th>
     [%- IF NOT SELF.config.id %]
-    <td>[% L.chart_picker('income_accno_id_' _ bg.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
+    <td>[% P.chart.picker('income_accno_id_' _ bg.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
     [%- ELSIF SELF.config.id AND SELF.config.orphaned %]
-    <td>[% L.chart_picker('income_accno_id_' _ bg.id, CHARTLIST.${bg.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
+    <td>[% P.chart.picker('income_accno_id_' _ bg.id, CHARTLIST.${bg.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td>
     [%- ELSE %]
     <td>[% CHARTLIST.${bg.id}.income_accno_description %]</td>
     [%- END %]
@@ -23,9 +23,9 @@
   <tr>
     <th align="right">[% 'Expense' | $T8 %] [% HTML.escape(bg.description) %]</th>
     [%- IF NOT SELF.config.id %]
-    <td>[% L.chart_picker('expense_accno_id_' _ bg.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
+    <td>[% P.chart.picker('expense_accno_id_' _ bg.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
     [%- ELSIF SELF.config.id AND SELF.config.orphaned %]
-    <td>[% L.chart_picker('expense_accno_id_' _ bg.id, CHARTLIST.${bg.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
+    <td>[% P.chart.picker('expense_accno_id_' _ bg.id, CHARTLIST.${bg.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td>
     [%- ELSE %]
     <td>[% CHARTLIST.${bg.id}.expense_accno_description %]</td>
     [%- END %]
index fb38257..6092496 100644 (file)
@@ -81,7 +81,7 @@
       </td>
 
       <th align="right">[% 'Project Number' | $T8 %]</th>
-      <td>[% P.project_picker("project_id", "", style=style) %]</td>
+      <td>[% P.project.picker("project_id", "", style=style) %]</td>
     </tr>
 
     <tr>
index 1101d1f..cf7581c 100644 (file)
@@ -98,7 +98,7 @@
        </tr>
        <tr>
         <th align="right" nowrap>[% 'Parts Classification' | $T8 %]:</th>
-        <td>[% P.select_classification('classification_id') %]</td>
+        <td>[% P.part.select_classification('classification_id') %]</td>
        </tr>
        <tr>
         <th align="right" nowrap>[% 'Part Description' | $T8 %]:</th>
index b41e905..cb3272f 100644 (file)
        </tr>
        <tr>
         <th align="right" nowrap>[% 'Parts Classification' | $T8 %]:</th>
-        <td>[% P.select_classification('classification_id') %]</td>
+        <td>[% P.part.select_classification('classification_id') %]</td>
        </tr>
        <tr>
         <th align="right" nowrap>[% 'Part Description' | $T8 %]:</th>
index 756e956..5bfdad9 100644 (file)
@@ -96,7 +96,7 @@
     <tr>
      <th align="right" nowrap>[% 'Part' | $T8 %]</th>
      <td>
-      [% P.part_picker("part_id", '', size="30", part_type="part,assembly") %]
+      [% P.part.picker("part_id", '', size="30", part_type="part,assembly") %]
      </td>
     </tr>
 
index 2bbd773..fba6b71 100644 (file)
@@ -66,7 +66,7 @@
     <tr>
      <th align="right" nowrap>[% 'Assembly' | $T8 %]</th>
      <td>
-      [% P.part_picker("parts_id", parts_id, part_type="assembly", class="initial_focus", fat_set_item="1") %]
+      [% P.part.picker("parts_id", parts_id, part_type="assembly", class="initial_focus", fat_set_item="1") %]
      </td>
     </tr>