From ed6f656789e73a0f4c15bd4c2a93832dc05718e9 Mon Sep 17 00:00:00 2001 From: Alex Buckley Date: Sun, 29 Jan 2017 11:33:35 +0000 Subject: [PATCH] Bug 18060 - Initial label onboarding tool --- C4/Budgets.pm | 7 +++ acqui/acqui-home.pl | 24 +++++++ admin/aqbudgetperiods.pl | 8 ++- admin/aqbudgets.pl | 12 +++- admin/currency.pl | 9 +++ koha-tmpl/intranet-tmpl/prog/css/staff-global.css | 6 ++ .../prog/en/includes/budgets-active-currency.inc | 16 ++++- .../prog/en/includes/onboardinginclude1.inc | 70 +++++++++++++++++++++ .../prog/en/includes/onboardinginclude2.inc | 65 +++++++++++++++++++ .../prog/en/includes/onboardinginclude3.inc | 73 ++++++++++++++++++++++ .../prog/en/modules/acqui/acqui-home.tt | 48 ++++++++++++-- .../prog/en/modules/admin/aqbudgetperiods.tt | 2 +- .../prog/en/modules/admin/aqbudgets.tt | 3 +- .../prog/en/modules/labels/label-home.tt | 5 +- labels/label-home.pl | 12 ++++ 15 files changed, 347 insertions(+), 13 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude3.inc diff --git a/C4/Budgets.pm b/C4/Budgets.pm index c68fbec..13d6ecd 100644 --- a/C4/Budgets.pm +++ b/C4/Budgets.pm @@ -146,6 +146,13 @@ sub GetPeriodsCount { } # ------------------------------------------------------------------- + +sub GetHighestBudgetPeriod{ + my $dbh = C4::Context->dbh; + warn my $data = $dbh->selectrow_array("SELECT MAX(budget_period_id) FROM aqbudgetperiods"); + return $data; +} +# ------------------------------------------------------------------- sub CheckBudgetParent { my ( $new_parent, $budget ) = @_; my $new_parent_id = $new_parent->{'budget_id'}; diff --git a/acqui/acqui-home.pl b/acqui/acqui-home.pl index fe53174..56b68de 100755 --- a/acqui/acqui-home.pl +++ b/acqui/acqui-home.pl @@ -122,11 +122,35 @@ $template->param( suggestions_count => $suggestions_count, ); + + + + + +my $aqstep; my $cur = Koha::Acquisition::Currencies->get_active; + if ( $cur ) { $template->param( currency => $cur->currency, ); } +my $budget = GetPeriodsCount(); +my $budgetid = C4::Budgets->GetHighestBudgetPeriod(); +if (!@budget_loop){ +if (!$cur) { + $aqstep = 1; + $template->param( step => $aqstep ); +} elsif ($budget && $budgetid == 1){ + $aqstep = 3; + $template->param( step => $aqstep ); +} elsif ($budgetid > 1) { + print $query->redirect("/cgi-bin/koha/admin/aqbudgetperiods.pl"); + exit; +} else { + $aqstep = 2; + $template->param( step => $aqstep ); +} +} output_html_with_http_headers $query, $cookie, $template->output; diff --git a/admin/aqbudgetperiods.pl b/admin/aqbudgetperiods.pl index ca2171f..26a2881 100755 --- a/admin/aqbudgetperiods.pl +++ b/admin/aqbudgetperiods.pl @@ -113,14 +113,18 @@ if ( $op eq 'add_form' ) { elsif ( $op eq 'add_validate' ) { ## add or modify a budget period (confirmation) - ## update budget period data +## update budget period data if ( $budget_period_id ne '' ) { $$budget_period_hashref{$_}||=0 for qw(budget_period_active budget_period_locked); my $status=ModBudgetPeriod($budget_period_hashref); } else { # ELSE ITS AN ADD my $budget_period_id=AddBudgetPeriod($budget_period_hashref); - } + my $stepfund = $input->param( 'step' ); + $template->param( stepfund => $stepfund ); + print $input->redirect("/cgi-bin/koha/acqui/acqui-home.pl"); + exit; +} $op='else'; } diff --git a/admin/aqbudgets.pl b/admin/aqbudgets.pl index 97664df..5e51a48 100755 --- a/admin/aqbudgets.pl +++ b/admin/aqbudgets.pl @@ -76,8 +76,6 @@ my $budget_permission = $input->param('budget_permission'); my $budget_users_ids = $input->param('budget_users_ids'); my $filter_budgetbranch = $input->param('filter_budgetbranch') // ''; my $filter_budgetname = $input->param('filter_budgetname'); - - # ' ------- get periods stuff ------------------' # IF PERIODID IS DEFINED, GET THE PERIOD - ELSE JUST GET THE ACTIVE PERIOD BY DEFAULT my $period; @@ -180,6 +178,7 @@ if ($op eq 'add_form') { # END $OP eq ADD_FORM #---------------------- DEFAULT DISPLAY BELOW --------------------- + # called by default form, used to confirm deletion of data in DB } elsif ($op eq 'delete_confirm') { @@ -221,6 +220,15 @@ if ($op eq 'add_form') { $budget_hash->{budget_id} = AddBudget( $budget_hash ); ModBudgetUsers($budget_hash->{budget_id}, @budgetusersid); $budget_modified = 1; + + my $fundcreation = $input->param('fundcreation'); + + if ($fundcreation eq "onboarding"){ + my $step = $input->param('step'); + $template->param('step' => $step); + print $input->redirect("/cgi-bin/koha/acqui/acqui-home.pl"); + exit; + } } my $set_owner_to_children = $input->param('set_owner_to_children'); diff --git a/admin/currency.pl b/admin/currency.pl index 09b6a74..ab26c91 100755 --- a/admin/currency.pl +++ b/admin/currency.pl @@ -89,6 +89,15 @@ if ( $op eq 'add_form' ) { } $searchfield = q||; $op = 'list'; + + my $aqcurrency = $input->param('aqcurrency'); + if ($aqcurrency == 1) { + my $step = $input->param( 'step' ); + $template->param( step => $step ); + print $input->redirect("/cgi-bin/koha/acqui/acqui-home.pl"); + exit; + } + } elsif ( $op eq 'delete_confirm' ) { my $currency = Koha::Acquisition::Currencies->find($currency_code); diff --git a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css index 175fce8..00c7701 100644 --- a/koha-tmpl/intranet-tmpl/prog/css/staff-global.css +++ b/koha-tmpl/intranet-tmpl/prog/css/staff-global.css @@ -2995,3 +2995,9 @@ fieldset.rows + fieldset.action { .yui-u .rows li p label.widelabel { width: auto; } + +div#aqhelp{ + background-color:#EDF4F6; + padding:20px; + width:50%; +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/budgets-active-currency.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/budgets-active-currency.inc index 1862059..75a018b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/budgets-active-currency.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/budgets-active-currency.inc @@ -1,14 +1,26 @@ + + [% IF ( currency ) %] [% IF ( not hide ) %]

Currency = [% currency %]

[% END %] [% ELSE %] -
+

No active currency is defined

[% IF CAN_user_parameters_parameters_remaining_permissions %]

Please specify an active currency.

[% ELSE %]

Your administrator must specify an active currency.

[% END %] -
+
[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc new file mode 100644 index 0000000..057a074 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc @@ -0,0 +1,70 @@ + + +[% IF onboarding =="acqui" %] +
+

Acquisition onboarding wizard

+

This onboarding wizard will take you through the process of setting up Acquistions

+

Start by completing this form to create a currency which you will be used to create your first budget and fund.
+ A fund is the accounting value you use to create orders

+
+ + + +
+ + New currency + +
    +
  1. + [% IF currency %] + Currency: + + [% currency.currency %] + [% ELSE %] + + Required + [% END %] +
  2. +
  3. + + Required +
  4. +
  5. + + Required +
  6. +
  7. + + +
  8. +
  9. + + + +
  10. +
+
+
+ +
+
+
+ +[% ELSIF onboarding == "label" %] + +hello there + + +[% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc new file mode 100644 index 0000000..7646eb8 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc @@ -0,0 +1,65 @@ + +
+ [% IF displayonboardscreen == "acquisitions" %] +

Acquisition onboarding wizard

+

Create a budget which is the highest level value in acquisitions accountancy.
+ After creating this budget you will be prompted to create a fund which is what you will use to set up orders. +

+ If you have previously created a budget (which was subsequently deleted) then you will be redirected to the Budget Administration page after creating a budget using this form. On the Budget Administration page click Actions->Add fund to create a fund +

Create a budget

+
+
+ + + +
    +
  1. + + +
    [% INCLUDE 'date-format.inc' %]
    +
  2. + +
  3. + + +
    [% INCLUDE 'date-format.inc' %]
    +
  4. + +
  5. + + +
  6. + +
  7. + + +
  8. + +
  9. + + +
  10. +
+
+
+ + + +
+
+
+ [% ELSIF displayonboardscreen == "label" %] +

testing

+ [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude3.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude3.inc new file mode 100644 index 0000000..954869e --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude3.inc @@ -0,0 +1,73 @@ + + +
+

Acquisition onboarding wizard

+

Fill out this form to create a fund which will be assigned to the budget you just created.
+ A fund is an accounting value you will use to set up orders

+
+

Create a fund

+
+ + + + + [% IF ( budget_id ) %] + + [% END %] + [% budget_id %] + +
+ [% IF ( budget_id ) %]Modify[% ELSE %]Add[% END %] Fund + [% IF ( budget_period_description ) %] + [% budget_name %] for Budget '[% budget_period_description %]' + [% END %] + +
    + [% budget_parent_id = 0 %] +
  1. + Fund parent: + [% budget_parent_name %] + [% budget_parent_id %] - [% budget_parent_name %] + +
  2. +
  3. + + +
  4. + +
  5. + + +
  6. + +
  7. + + +
  8. + + + + [% IF ( budget_id ) %] + + [% END %] + +
+
+ + +
+
+ +
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt index f64a60b..72336ac 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt @@ -1,19 +1,28 @@ [% USE Price %] [% USE Branches %] +[% USE Koha %] +[% USE KohaDates %] +[% USE Branches %] + [% INCLUDE 'doc-head-open.inc' %] Koha › Acquisitions [% INCLUDE 'doc-head-close.inc' %] + [% INCLUDE 'datatables.inc' %] +[% INCLUDE 'calendar.inc' %] + + @@ -98,15 +111,21 @@ $(document).ready(function() {
[% INCLUDE 'acquisitions-toolbar.inc' %] - -

Acquisitions

- [% INCLUDE 'budgets-active-currency.inc' hide = 'yes' %] [% UNLESS ( loop_budget ) %] [% IF ( CAN_user_acquisition_period_manage ) %] - + [% displayonboardscreen = "acquisitions" %] + [% IF step == 1 %] + [% INCLUDE onboardinginclude1.inc %] + [% ELSIF step == 2 %] + [% INCLUDE onboardinginclude2.inc %] + [% ELSIF step == 3 %] + [% INCLUDE onboardinginclude3.inc %] + [% END %] [% ELSE %]
Your administrator must define a budget in Administration
[% END %] + [% ELSE %] +

Acquisitions

[% END %]
@@ -237,6 +256,27 @@ $(document).ready(function() {
[% END %] + +

+
+

Next steps

+

1. Create your first vendor

+

A vendor is the organisation your institution purchases items from i.e. suppliers
+ You must create a vendor before you can create any orders

+ Click here to create a vendor. +

+

2. Create your first basket

+

A basket is the conceptual container that holds orders. Each basket is assigned to a single vendor so you can perform multiple seperate orders from a single vendor simultaneously. Because of its reliance on vendor the basket must be created after the vendor

+ To create a basket, click the 'New basket' button on the Vendor Information page which is displayed after you create a vendor +

+

3. Create an order

+

An order is a assignment of items purchased from a single vendor at a single time

+ You create an order by clicking "Add to basket" in the Basket page. From here you can choose the item(s) you want to purchase from existing MARC records in your Koha catalogue, subscription, new item record, external source, staged file (bibliographic file in the process of being uploaded), or from popularly held items. +

+

+ For further information about creating a vendor, basket and order go to the Koha manual: + Koha manual Acquisitions section +
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt index 76f0701..acf8b97 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgetperiods.tt @@ -334,7 +334,7 @@
  • -
    [% INCLUDE 'date-format.inc' %]
    +
  • diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt index a3c9ee9..87350c2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/aqbudgets.tt @@ -453,7 +453,7 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") -[% IF op == 'add_form' && !error_not_authorised_to_modify %] +[% IF op == 'add_form' %]
    [% IF ( budget_id ) %]Modify[% ELSE %]Add[% END %] Fund @@ -464,6 +464,7 @@ var MSG_PARENT_BENEATH_BUDGET = "- " + _("New budget-parent is beneath budget") +
      [% IF ( budget_parent_id ) %]
    1. diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt index f5e7725..36031b7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt @@ -20,7 +20,10 @@
      [% INCLUDE 'labels-toolbar.inc' %]
      - + [% IF (layout || template) %] + [% onboarding = "label" %] + [% INCLUDE 'onboardinginclude1.inc' %] + [% END %]
  • diff --git a/labels/label-home.pl b/labels/label-home.pl index ca581ac..66b20ed 100755 --- a/labels/label-home.pl +++ b/labels/label-home.pl @@ -22,9 +22,13 @@ use strict; use warnings; use CGI qw ( -utf8 ); +use vars qw($debug); +use Data::Dumper; use C4::Auth qw(get_template_and_user); use C4::Output qw(output_html_with_http_headers); +use C4::Labels; +use C4::Creators; my $cgi = new CGI; my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -38,4 +42,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); + +#check if any layouts and/or templates already exist +my $layout = C4::Labels::Layout->retrieve(layout_id => 1 ); +$template->param( layout => $layout ); + +my $template = C4::Creators::Template->retrieve(layout_id => '1'); +$template->param( template => $template ); + output_html_with_http_headers $cgi, $cookie, $template->output; -- 2.1.4