use SL::DB::Helper::ActsAsList;
__PACKAGE__->meta->add_relationship(
- children => {
- type => 'one to many',
- class => 'SL::DB::RequirementSpecItem',
- column_map => { id => 'parent_id' },
+ children => {
+ type => 'one to many',
+ class => 'SL::DB::RequirementSpecItem',
+ column_map => { id => 'parent_id' },
+ },
+ dependencies => {
+ map_class => 'SL::DB::RequirementSpecDependency',
+ map_from => 'depending_item',
+ map_to => 'depended_item',
+ type => 'many to many',
+ },
+ dependents => {
+ map_class => 'SL::DB::RequirementSpecDependency',
+ map_from => 'depended_item',
+ map_to => 'depending_item',
+ type => 'many to many',
},
);
1;
}
+sub validate {
+ my ($self) = @_;
+
+ my @errors;
+ push @errors, t8('The title is missing.') if !$self->parent_id && !$self->title;
+
+ return @errors;
+}
+
sub sorted_children {
my ($self) = @_;
return [ sort { $a->position <=> $b->position } @{ $self->children } ];
}
+sub get_section {
+ my ($self) = @_;
+
+ $self = $self->parent while $self->parent_id;
+
+ return $self;
+}
+
+sub get_type {
+ my ($self) = @_;
+
+ return 'section' if !$self->parent_id;
+ return $self->parent->parent_id ? 'sub-function-block' : 'function-block';
+}
+
1;