Skip to content
Snippets Groups Projects
Commit eccec27f authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by David Siegfried
Browse files

fix errors in mvv models, fixes #1230

Closes #1230

Merge request studip/studip!741
parent 3cfe3110
No related branches found
No related tags found
No related merge requests found
<?php
/**
* This interface ensures that all objects of ModuleManagementModel have
* the same constructor signature. Otherwise, we can not guarantee that the
* use of "new static()" in ModuleManagement code will always do the right
* things.
*
* @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
* @license GPL2 or any later version
*/
interface ModuleManagementInterface
{
public function __construct($id = null);
}
......@@ -363,7 +363,7 @@ class Lvgruppe extends ModuleManagementModelTreeItem
*/
public function getTrailParent()
{
return Modul::findCached($this->getTrailParent_id());
return Modul::findCached($this->getTrailParentId());
}
/**
......
......@@ -16,7 +16,7 @@
require_once 'config/mvv_config.php';
abstract class ModuleManagementModel extends SimpleORMap
abstract class ModuleManagementModel extends SimpleORMap implements ModuleManagementInterface
{
/**
* Usable as option for ModuleManagementModel::getDisplayName().
......@@ -133,7 +133,7 @@ abstract class ModuleManagementModel extends SimpleORMap
/**
* Returns an object by given id with all relations and additional fields.
*
* @param tring $id The id of the object.
* @param string $id The id of the object.
* @return ModuleManagementModel
*/
public static function getEnriched($id)
......@@ -493,7 +493,7 @@ abstract class ModuleManagementModel extends SimpleORMap
* @param array $params Array with the parameters used in query
* @param int $row_count Number of rows to return
* @param int $offset Offset where the result set starts
* @return object SimpleOrMapCollection with all found objects or empty array
* @return SimpleOrMapCollection with all found objects or empty array
*/
public static function getEnrichedByQuery($query = null, $params = [],
$row_count = null, $offset = null)
......
......@@ -7,20 +7,18 @@
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
*
* @author Peter Thienel <thienel@data-quest.de>
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
* @category Stud.IP
* @since 3.5
*/
require_once 'ModuleManagementModel.php';
abstract class ModuleManagementModelTreeItem extends ModuleManagementModel implements MvvTreeItem
{
/**
* The default route through the MVV object structure.
*
*
* @var array
*/
public static $TRAIL_DEFAULT = [
......@@ -36,15 +34,15 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
'Abschluss',
'AbschlussKategorie'
];
/**
* An array of functions to filter mvv objects during path creation.
* The class name is the key and the filter function the value.
*
*
* @var array
*/
protected static $object_filter = [];
protected static $object_filter = [];
/**
* @see MvvTreeItem::getTrailParentId()
*/
......@@ -52,7 +50,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
{
return ($_SESSION['MVV/' . get_class() . '/trail_parent_id']);
}
public function getTrails($types = null, $mode = null, $path = null, $in_recursion = false)
{
$path = $path ?: self::$TRAIL_DEFAULT;
......@@ -61,7 +59,7 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
$class_name = get_class($this);
$next = $path[array_search($class_name, $path) + 1];
$parents = $this->getParents($next);
foreach ($parents as $parent) {
if ($parent) {
if ($this->checkFilter($parent)) {
......@@ -81,17 +79,17 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
}
}
}
if (empty($trails) && in_array($class_name, $types)) {
$trails = [[$class_name => $this]];
}
return $trails;
}
/**
* Checks trails object filter.
*
*
* @param MvvTreeItem $item The item to check.
* @return boolean True if item has passed the check.
*/
......@@ -106,22 +104,22 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
}
return true;
}
protected static function sortTrails($trail_a, $trail_b)
{
}
/**
* Returns whether this object is assignable to courses.
*
*
* @return boolean True if the object is assignable.
*/
public function isAssignable()
{
return false;
}
/**
* @see MvvTreeItem::hasChildren()
*/
......@@ -129,11 +127,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
{
return count($this->getChildren()) > 0;
}
/**
* Formats the trails to pathes. The path consists of alle names of the
* objects of a trail glued together with the given delimiter.
*
*
* @param array $trails All trails as array.
* @param string $delimiter A string used as the "glue".
* @param int $display_options Display options set by constants defined
......@@ -153,10 +151,10 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
sort($pathes, SORT_LOCALE_STRING);
return $pathes;
}
/**
* Filters trails by given object types.
*
*
* @param array $trails An array of trails.
* @param array $filter_objects An array of object class names.
* @return array The filtered trails.
......@@ -183,11 +181,11 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple
}
return $filtered_trails;
}
/**
* Stores filter function to restrict pathes only to objects fulfilling
* all conditions defined in this function.
*
*
* @param string $class_name The name of the class.
* @param Closure $filter_func The function defining the filter.
* @param array $params Parameters used by filter function.
......
......@@ -97,7 +97,7 @@ class Modulteil extends ModuleManagementModelTreeItem
/**
* Retrieves all Modulteile of the given Modul.
*
* @param type $modul_id The id of a Modul.
* @param string $modul_id The id of a Modul.
* @return SimpleORMapCollection A collection of Modulteile.
*/
public static function findByModul($modul_id)
......@@ -117,7 +117,7 @@ class Modulteil extends ModuleManagementModelTreeItem
/**
* Retrieves all Modulteile the given LV-Gruppe is assigned to.
*
* @param type $lvgruppe_id The id of a LV-Gruppe.
* @param string $lvgruppe_id The id of a LV-Gruppe.
* @return SimpleORMapCollection A collection of Modulteile.
*/
public static function findByLvgruppe($lvgruppe_id)
......
......@@ -37,7 +37,7 @@ class MvvCourse extends ModuleManagementModelTreeItem
*/
public function getTrailParent()
{
return LvGruppe::findCached($this->getTrailParent_id());
return LvGruppe::findCached($this->getTrailParentId());
}
/**
......@@ -58,7 +58,7 @@ class MvvCourse extends ModuleManagementModelTreeItem
public function getDisplayName($options = self::DISPLAY_DEFAULT)
{
$this->getName();
return $this->name;
}
/**
......
......@@ -44,12 +44,14 @@ class MvvFileFileref extends ModuleManagementModel
*
* @return string Name of the file.
*/
public function getFilename()
public function getFilename(): string
{
if ($this->file_ref) {
$filetype = $this->file_ref->getFileType();
return $filetype->getFilename();
}
throw new Exception("Could not load file ref for file");
}
/**
......@@ -92,5 +94,7 @@ class MvvFileFileref extends ModuleManagementModel
}
}
}
return false;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment