Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7e76e128

Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt

  • ID 7e76e1282d18eeec88be6a777c351ca4116a90cb
  • Vorgänger a36f8ac7
  • Nachfolger e36a3c06

In SL::InstanceConfiguration keine Rose-Objekte nutzen

Die Klasse muss ihre Daten laden, noch bevor die Datenbankupgrades
durch sind. Das bedeutet, dass gerade SL::DB::MetaSetup::Default noch
nicht dem Datenbankschema entspricht und das Laden damit fehlschlägt.

Unterschiede anzeigen:

SL/InstanceConfiguration.pm
3 3
use strict;
4 4

  
5 5
use Carp;
6
use SL::DB::Currency;
7
use SL::DB::Default;
6
use SL::DBUtils ();
8 7

  
9 8
use parent qw(Rose::Object);
10 9
use Rose::Object::MakeMethods::Generic (
......
12 11
);
13 12

  
14 13
sub init_data {
15
  my $default               = SL::DB::Default->get;
16
  my $data                  = { map { $_ => $default->$_ } $default->meta->columns };
17
  $data->{default_currency} = $default->currency ? $default->currency->name : undef;
14
  my $dbh                   = $::form->get_standard_dbh;
15
  my $data                  = SL::DBUtils::selectfirst_hashref_query($::form, $dbh, qq|SELECT * FROM defaults|);
16
  $data->{default_currency} = (SL::DBUtils::selectfirst_array_query($::form, $dbh, qq|SELECT name FROM currencies WHERE id = ?|, $data->{currency_id}))[0] if $data->{currency_id};
18 17

  
19 18
  return $data;
20 19
}
21 20

  
22 21
sub init_currencies {
23
  return [ map { $_->name } @{ SL::DB::Manager::Currency->get_all_sorted } ];
22
  return [ map { $_->{name} } SL::DBUtils::selectall_hashref_query($::form, $::form->get_standard_dbh, qq|SELECT name FROM currencies ORDER BY id ASC|) ];
24 23
}
25 24

  
26 25
sub reload {

Auch abrufbar als: Unified diff