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

fix errors in resource management, fixes #1331

Closes #1331

Merge request studip/studip!822
parent 707ddf6a
No related branches found
No related tags found
No related merge requests found
...@@ -427,100 +427,4 @@ class Resources_BuildingController extends AuthenticatedController ...@@ -427,100 +427,4 @@ class Resources_BuildingController extends AuthenticatedController
} }
} }
} }
public function lock_action($building_id = null)
{
if (!ResourceManager::userHasGlobalPermission(User::findCurrent(), 'admin')) {
throw new AccessDeniedException();
}
$this->show_form = false;
$this->building = Room::find($building_id);
if (!$this->building) {
PageLayout::postError(
_('Das angegebene Gebäude wurde nicht gefunden!')
);
return;
}
PageLayout::setTitle(
sprintf(
_('Gebäude %s sperren'),
$this->building->name
)
);
if (Request::submitted('confirmed')) {
$begin_date = Request::get('begin_date');
$begin_time = Request::get('begin_time');
$end_date = Request::get('end_date');
$end_time = Request::get('end_time');
//$begin and $end are in the format Y-m-d H:i
$begin_date = explode('.', $begin_date);
$begin_time = explode(':', $begin_time);
$this->begin = new DateTime();
$this->begin->setDate(
intval($begin_date[2]),
intval($begin_date[1]),
intval($begin_date[0])
);
$this->begin->setTime(
intval($begin_time[0]),
intval($begin_time[1]),
0
);
$end_date = explode('.', $end_date);
$end_time = explode(':', $end_time);
$this->end = new DateTime();
$this->end->setDate(
intval($end_date[2]),
intval($end_date[1]),
intval($end_date[0])
);
$this->end->setTime(
intval($end_time[0]),
intval($end_time[1]),
0
);
try {
$lock = ResourceManager::lockResource(
$this->building,
$this->begin,
$this->end
);
} catch (ResourceUnlockableException $e) {
PageLayout::postError(
_('Das Gebäude konnte nicht gesperrt werden!'),
[$e->getMessage()]
);
$this->show_form = true;
return;
} catch (ResourceUnavailableException $e) {
PageLayout::postError(
_('Das Gebäude konnte nicht gesperrt werden!'),
[$e->getMessage()]
);
$this->show_form = true;
return;
}
$this->show_form = false;
PageLayout::postSuccess(
sprintf(
_('Das Gebäude wurde im Zeitraum von %1$s bis %2$s gesperrt!'),
$this->begin->format('d.m.Y H:i'),
$this->end->format('d.m.Y H:i')
)
);
} else {
//Set default form data:
$this->begin = new DateTime();
$this->end = new DateTime();
$this->end->add(new DateInterval('P1D'));
$this->show_form = true;
}
}
} }
...@@ -454,8 +454,7 @@ class Resources_ExportController extends AuthenticatedController ...@@ -454,8 +454,7 @@ class Resources_ExportController extends AuthenticatedController
[0, 2] [0, 2]
); );
} else { } else {
$intervals = ResourceManager::getBookingIntervalsForResource( $intervals = $this->resource->getResourceBookings(
$this->resource,
$week_begin, $week_begin,
$week_end, $week_end,
[0, 2] [0, 2]
......
<? if ($show_form): ?>
<form class="default" method="post" data-dialog="reload-on-close"
action="<?= $controller->link_for('resources/building/lock/' . $building->id) ?>">
<fieldset>
<legend><?= _('Bitte Sperrzeiten auswählen') ?></legend>
<label>
<?= _('Startzeitpunkt') ?>
<input type="text" class="has-date-picker" name="begin_date" value="<?= htmlReady($begin->format('d.m.Y')) ?>">
<input type="text" class="has-time-picker" name="begin_time" value="<?= htmlReady($begin->format('H:i')) ?>">
</label>
<label>
<?= _('Endzeitpunkt') ?>
<input type="text" class="has-date-picker" name="end_date" value="<?= htmlReady($end->format('d.m.Y')) ?>">
<input type="text" class="has-time-picker" name="end_time" value="<?= htmlReady($end->format('H:i')) ?>">
</label>
</fieldset>
<div data-dialog-button>
<?= \Studip\Button::create(_('Sperren'), 'confirmed') ?>
</div>
</form>
<? endif ?>
...@@ -230,7 +230,7 @@ class BrokenResource extends Resource ...@@ -230,7 +230,7 @@ class BrokenResource extends Resource
return []; return [];
} }
public function getResourceBookings(DateTime $begin, DateTime $end) public function getResourceBookings(DateTime $begin, DateTime $end, array $booking_types = [0])
{ {
return []; return [];
} }
......
...@@ -2739,10 +2739,11 @@ class Resource extends SimpleORMap implements StudipItem ...@@ -2739,10 +2739,11 @@ class Resource extends SimpleORMap implements StudipItem
* *
* @param DateTime $begin Begin of timeframe. * @param DateTime $begin Begin of timeframe.
* @param DateTime $end End of timeframe. * @param DateTime $end End of timeframe.
* @param array $booking_types
* *
* @return ResourceBooking[] An array of ResourceBooking objects. * @return ResourceBooking[] An array of ResourceBooking objects.
*/ */
public function getResourceBookings(DateTime $begin, DateTime $end) public function getResourceBookings(DateTime $begin, DateTime $end, array $booking_types = [0])
{ {
return ResourceBooking::findByResourceAndTimeRanges( return ResourceBooking::findByResourceAndTimeRanges(
$this, $this,
...@@ -2752,7 +2753,7 @@ class Resource extends SimpleORMap implements StudipItem ...@@ -2752,7 +2753,7 @@ class Resource extends SimpleORMap implements StudipItem
'end' => $end->getTimestamp() 'end' => $end->getTimestamp()
] ]
], ],
[0] $booking_types
); );
} }
......
...@@ -223,7 +223,7 @@ class ResourceLabel extends Resource ...@@ -223,7 +223,7 @@ class ResourceLabel extends Resource
return []; return [];
} }
public function getResourceBookings(DateTime $begin, DateTime $end) public function getResourceBookings(DateTime $begin, DateTime $end, array $booking_types = [0])
{ {
return []; return [];
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment