Part-Controller: Normalisieren nach Parsen der Form und nicht als run_before
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 23 Nov 2018 16:25:50 +0000 (17:25 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 23 Nov 2018 16:35:06 +0000 (17:35 +0100)
Das Problem enstand durch commit 2e97532c88dacf9523576df4028b6f7df5967ea8
"Fixt #349 (Normalisierung Artikel) - normalize_text_blocks nach Part-Controller
migriert"

normalize_text_blocks greift auf $self->part zu, welches beim Neuanlegen
noch nicht existiert, wenn normalize_text_blocks als aller erstes durch
run_before aufgerufen wird. Danach wurde init_part aufgerufen, welches
aber bei einem neue Artikel den part_type braucht, um part zu erzeugen.
Das ist aber nicht nötig, da das part in den action_add_xxx-Methoden
später erzeugt wird.
Ausserdem muss normalize_text_blocks z.B. auch nicht bei den Picker-Actions
aufgerufen werden.

Also normalize_text_blocks nur nach dem Parsen der Form aufrufen.

Fixt #361

SL/Controller/Part.pm

index 31c670a..e427cab 100644 (file)
@@ -42,8 +42,6 @@ __PACKAGE__->run_before(sub { $::auth->assert('part_service_assembly_edit') },
 
 __PACKAGE__->run_before('check_part_id', only   => [ qw(edit delete) ]);
 
-__PACKAGE__->run_before('normalize_text_blocks');
-
 # actions for editing parts
 #
 sub action_add_part {
@@ -735,6 +733,8 @@ sub parse_form {
   $self->part->assign_attributes(%{ $params});
   $self->part->bin_id(undef) unless $self->part->warehouse_id;
 
+  $self->normalize_text_blocks;
+
   # Only reset items ([]) and rewrite from form if $::form->{assortment_items} isn't empty. This
   # will be the case for used assortments when saving, or when a used assortment
   # is "used as new"