tkrebs / ep3-bs

Online booking system for courts
http://bs.hbsys.de/
MIT License
181 stars 108 forks source link

Namen nicht sichtbar im Kalender #334

Open schwarzekatze005 opened 4 years ago

schwarzekatze005 commented 4 years ago

Hallo, ich habe in den Einstellungen für die Plätze die Sichtbarkeit von Namen für angemeldete Benutzer aktiviert, aber außer der Verwaltung sieht keiner der aktivierten Benutzer irgendwelche Namen. Soll das so sein oder ist es ein Fehler an unserem System?

Shineson1001 commented 4 years ago

Hi @schwarzekatze005, die Einstellung "Sichtbarkeit von Namen" muss auf "Für andere angemeldete Benutzer"; und zwar bei allen Plätzen; gesetzt werden.

schwarzekatze005 commented 4 years ago

Hallo, ist bereits für jeden einzelnen Platz so eingestellt. Oder funktioniert es in Kombination mit der aktivierten Option Mehrfachbuchungen nur nicht?

schmidi2011 commented 4 years ago

Hallo zusammen, in Kombination mit der Mehrfachbuchung steht solange Frei, bis die Maximale Anzahl der Platzbuchung erreicht ist. Wünschenswert wäre aber durchaus die Möglichkeit dies anzuzeigen.

schwarzekatze005 commented 4 years ago

Bin zwar kein Experte aber habe jetzt einfach mal eine neue Datei äquivalent zu FreeForPrivileged.php erstellt und diese so bearbeitet das man die Namen angezeigt bekommt aber als normaler Nutzer sich trotzdem noch normal einbuchen kann.

`<?php

namespace Calendar\View\Helper\Cell\Render;

use Square\Entity\Square; use Zend\View\Helper\AbstractHelper;

class FreeForAll extends AbstractHelper { public function __invoke(array $reservations, array $cellLinkParams, Square $square, $user = null) { $view = $this->getView();

    $reservationsCount = count($reservations);

    if ($reservationsCount == 0) {
        $labelFree = $square->getMeta('label.free', $this->view->t('Free'));

        return $view->calendarCellLink($labelFree, $view->url('square', [], $cellLinkParams), 'cc-free');
    } else if ($reservationsCount == 1) {
        $reservation = current($reservations);
        $booking = $reservation->needExtra('booking');

        $cellGroup = ' cc-group-' . $booking->need('bid');

        if ($square->getMeta('public_names', 'false') == 'true') {
            $cellLabel = $booking->needExtra('user')->need('alias');
        } else if ($square->getMeta('private_names', 'false') == 'true' && $user) {
            $cellLabel = $booking->needExtra('user')->need('alias');
        } else {
            $cellLabel = null;
        }

        if (! $cellLabel) {
            $cellLabel = $this->view->t('Free');
        }       

        return $view->calendarCellLink($cellLabel, $view->url('square', [], $cellLinkParams), 'cc-free cc-free-partially' . $cellGroup);
    } else {
        $labelFree = $square->getMeta('label.free', 'Still free');

        return $view->calendarCellLink($labelFree, $view->url('square', [], $cellLinkParams), 'cc-free cc-free-partially');
    }
}

}`

Die neue Klasse noch in die dazugehörige module.config.php eintragen. Dann in der Free.php die Zeile 26 durch return $view->calendarCellRenderFreeForAll($reservations, $cellLinkParams, $square, $user); und Zeile 29 durch return $view->calendarCellRenderFreeForAll($reservations, $cellLinkParams, $square); ersetzen.

Geht vielleicht auch einfacher aber für uns reicht es so für 2 Kapazitäten, die Zelle noch farblich markiert und dann sieht man schneller wenn bei Mehrfachbuchungen noch Platz ist.