From eb19fa6a076a8d211cd483afb01eeda6172d27e4 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Mon, 2 Oct 2023 09:26:54 +0000 Subject: [PATCH] fixes #3225 Closes #3225 Merge request studip/studip!2186 --- app/controllers/course/feedback.php | 10 +- app/controllers/course/room_requests.php | 6 +- app/controllers/resources/booking.php | 92 ++++++----- app/controllers/resources/export.php | 28 ++-- app/controllers/resources/print.php | 8 +- app/controllers/resources/resource.php | 9 +- app/controllers/resources/room_planning.php | 16 +- app/controllers/resources/room_request.php | 2 +- app/controllers/resources/statistics.php | 7 +- app/controllers/room_management/planning.php | 16 +- .../course/feedback/_add_edit_entry_form.php | 4 +- app/views/course/feedback/_entry.php | 2 +- .../course/feedback/_feedback_stream.php | 4 +- .../feedback/_new_edit_feedback_form.php | 18 ++- app/views/course/feedback/_results.php | 7 +- app/views/course/feedback/index.php | 6 +- .../resources/booking/_add_edit_form.php | 50 +++--- app/views/resources/booking/edit.php | 4 +- app/views/resources/booking/index.php | 4 +- .../print/individual_booking_plan.php | 6 +- app/views/resources/resource/booking_plan.php | 6 +- .../resources/room_planning/semester_plan.php | 6 +- app/views/resources/room_request/planning.php | 7 +- cli/Commands/SORM/DescribeModels.php | 142 +++++++++++++---- lib/models/Abschluss.php | 21 +++ lib/models/AbschlussKategorie.php | 20 ++- lib/models/AbschlussZuord.php | 11 ++ lib/models/AdmissionApplication.class.php | 35 ++-- lib/models/AdmissionRuleCompatibility.php | 9 +- lib/models/ArchivedCourse.class.php | 42 ++--- lib/models/ArchivedCourseMember.class.php | 12 +- lib/models/Aufbaustudiengang.php | 13 +- lib/models/AuthUserMd5.class.php | 28 ++-- lib/models/AuxLockRule.php | 19 +-- lib/models/Banner.class.php | 29 ++-- lib/models/BannerRoles.class.php | 6 +- lib/models/BlubberComment.php | 13 +- lib/models/BlubberGlobalThread.php | 21 +++ lib/models/BlubberMention.php | 9 ++ lib/models/BlubberStatusgruppeThread.php | 22 +++ lib/models/BlubberThread.php | 20 ++- lib/models/CacheType.php | 11 +- lib/models/CalendarEvent.class.php | 33 ++-- lib/models/CalendarUser.class.php | 11 ++ lib/models/Clipboard.class.php | 46 +++--- lib/models/ClipboardItem.class.php | 27 ++-- lib/models/ColourValue.class.php | 30 ++-- lib/models/ConfigEntry.class.php | 18 +-- lib/models/ConfigValue.php | 17 +- lib/models/ConsultationBlock.php | 31 ++-- lib/models/ConsultationBooking.php | 21 +-- lib/models/ConsultationEvent.php | 14 +- lib/models/ConsultationResponsibility.php | 11 +- lib/models/ConsultationSlot.php | 27 ++-- lib/models/Contact.class.php | 17 +- lib/models/ContentTermsOfUse.class.php | 39 ++--- lib/models/Course.class.php | 123 ++++++++------- lib/models/CourseCancelledEvent.class.php | 38 +++++ lib/models/CourseDate.class.php | 43 ++--- lib/models/CourseEvent.class.php | 36 +++++ lib/models/CourseExDate.class.php | 41 ++--- lib/models/CourseMarkedEvent.class.php | 36 +++++ lib/models/CourseMember.class.php | 43 +++-- lib/models/CourseMemberNotification.php | 19 ++- lib/models/CourseTopic.class.php | 28 ++-- lib/models/CourseWizardStepRegistry.php | 10 +- lib/models/Courseware/Block.php | 42 ++--- lib/models/Courseware/BlockComment.php | 16 +- lib/models/Courseware/BlockFeedback.php | 16 +- lib/models/Courseware/Bookmark.php | 14 +- lib/models/Courseware/Certificate.php | 11 +- lib/models/Courseware/Container.php | 41 ++--- lib/models/Courseware/PublicLink.php | 15 +- lib/models/Courseware/StructuralElement.php | 90 ++++++----- .../Courseware/StructuralElementComment.php | 16 +- .../Courseware/StructuralElementFeedback.php | 16 +- lib/models/Courseware/Task.php | 20 +-- lib/models/Courseware/TaskFeedback.php | 18 +-- lib/models/Courseware/TaskGroup.php | 24 +-- lib/models/Courseware/Template.php | 15 +- lib/models/Courseware/Unit.php | 36 ++--- lib/models/Courseware/UserDataField.php | 20 +-- lib/models/Courseware/UserProgress.php | 16 +- lib/models/CronjobLog.class.php | 18 +-- lib/models/CronjobSchedule.class.php | 44 +++--- lib/models/CronjobTask.class.php | 25 +-- lib/models/DataField.class.php | 40 ++--- lib/models/DatafieldEntryModel.class.php | 19 +-- lib/models/DatafieldEntryModelI18N.class.php | 19 +-- lib/models/Degree.class.php | 17 +- lib/models/Deputy.php | 28 +++- lib/models/EventData.class.php | 32 ++++ lib/models/ExternalUser.php | 14 +- lib/models/Fach.php | 21 +++ lib/models/FachFachbereich.php | 13 +- lib/models/Fachbereich.php | 21 ++- lib/models/FeedbackElement.php | 37 +++-- lib/models/FeedbackEntry.php | 7 +- lib/models/File.php | 31 ++-- lib/models/FileRef.php | 37 +++-- lib/models/Folder.php | 33 ++-- lib/models/ForumCat.php | 6 + lib/models/Freetext.php | 15 ++ lib/models/Grading/Definition.php | 16 ++ lib/models/Grading/Instance.php | 13 ++ lib/models/HelpContent.class.php | 18 +-- lib/models/HelpTour.class.php | 15 +- lib/models/HelpTourAudience.class.php | 12 +- lib/models/HelpTourSettings.class.php | 12 +- lib/models/HelpTourStep.class.php | 14 +- lib/models/HelpTourUser.class.php | 12 +- lib/models/Institute.class.php | 57 +++---- lib/models/InstituteMember.class.php | 45 +++--- lib/models/InstitutePlanColumn.class.php | 14 +- lib/models/Kategorie.class.php | 9 +- lib/models/License.php | 14 ++ lib/models/LikertScale.php | 15 ++ lib/models/LockRule.class.php | 20 +-- lib/models/LogAction.php | 25 +-- lib/models/LogEvent.php | 23 +-- lib/models/LoginBackground.class.php | 13 +- lib/models/LtiData.php | 16 +- lib/models/LtiGrade.php | 9 ++ lib/models/LtiTool.php | 14 ++ lib/models/Lvgruppe.php | 16 ++ lib/models/LvgruppeModulteil.php | 13 ++ lib/models/LvgruppeSeminar.php | 10 ++ lib/models/MailQueueEntry.class.php | 21 +-- lib/models/Message.class.php | 25 ++- lib/models/MessageUser.class.php | 21 ++- lib/models/Modul.php | 43 +++++ lib/models/ModulDeskriptor.php | 28 ++++ lib/models/ModulInst.php | 12 ++ lib/models/ModulLanguage.php | 11 ++ lib/models/Modulteil.php | 32 ++++ lib/models/ModulteilDeskriptor.php | 21 +++ lib/models/ModulteilLanguage.php | 11 ++ lib/models/ModulteilStgteilabschnitt.php | 12 ++ lib/models/MvvContact.php | 12 ++ lib/models/MvvContactRange.php | 34 ++-- lib/models/MvvCourse.php | 37 +++++ lib/models/MvvExternContact.php | 13 ++ lib/models/MvvFile.php | 15 ++ lib/models/MvvFileFileref.php | 14 ++ lib/models/MvvFileRange.php | 11 ++ lib/models/MvvOverlappingConflict.class.php | 23 +++ lib/models/MvvOverlappingExclude.php | 8 + lib/models/MvvOverlappingSelection.class.php | 17 ++ lib/models/NewsRange.class.php | 18 ++- lib/models/NewsRoles.class.php | 6 +- lib/models/OERDownloadcounter.php | 10 ++ lib/models/OERHost.php | 17 ++ lib/models/OERHostOERSI.php | 17 ++ lib/models/OERMaterial.php | 64 ++++---- lib/models/OERMaterialUser.php | 13 ++ lib/models/OERPostUpload.php | 13 +- lib/models/OERReview.php | 23 +++ lib/models/OERTag.php | 7 + lib/models/ObjectUserVisit.php | 15 +- lib/models/OpenGraphURL.class.php | 27 ++-- lib/models/PersonalNotifications.class.php | 16 +- lib/models/PersonalNotificationsUser.php | 9 ++ lib/models/Plugin.php | 27 ++-- lib/models/PluginAsset.php | 10 ++ lib/models/Questionnaire.php | 34 ++-- lib/models/QuestionnaireAnonymousAnswer.php | 11 ++ lib/models/QuestionnaireAnswer.php | 15 +- lib/models/QuestionnaireAssignment.php | 13 ++ lib/models/QuestionnaireInfo.php | 15 ++ lib/models/QuestionnaireQuestion.php | 17 +- lib/models/RangeScale.php | 15 ++ lib/models/RangeTreeNode.php | 20 +-- lib/models/Semester.class.php | 33 ++-- lib/models/SemesterCourse.class.php | 16 +- lib/models/SemesterHoliday.class.php | 17 +- lib/models/SeminarCycleDate.class.php | 46 +++--- lib/models/StatusgruppeUser.php | 24 ++- lib/models/Statusgruppen.php | 47 +++--- lib/models/StgteilAbschnitt.php | 18 +++ lib/models/StgteilBezeichnung.php | 12 ++ lib/models/StgteilVersion.php | 23 +++ lib/models/StgteilabschnittModul.php | 15 ++ lib/models/StockImage.php | 25 +-- lib/models/Studiengang.php | 44 ++++++ lib/models/StudiengangStgteil.php | 16 ++ lib/models/StudiengangTeil.php | 20 +++ lib/models/StudipCacheOperation.php | 7 + lib/models/StudipComment.class.php | 16 +- lib/models/StudipEvaluation.php | 33 ++-- lib/models/StudipNews.class.php | 33 ++-- lib/models/StudipScmEntry.class.php | 22 +-- lib/models/StudipStudyArea.class.php | 24 +-- lib/models/StudyCourse.class.php | 18 ++- lib/models/StudycourseLanguage.php | 12 ++ lib/models/StudycourseType.php | 9 ++ lib/models/TFASecret.php | 19 ++- lib/models/TFAToken.php | 5 + lib/models/Token.php | 12 +- lib/models/ToolActivation.php | 19 ++- lib/models/User.class.php | 107 +++++++------ lib/models/UserDomain.php | 9 ++ lib/models/UserInfo.class.php | 46 +++--- lib/models/UserOnline.class.php | 6 +- lib/models/UserStudyCourse.class.php | 23 +-- lib/models/Vote.php | 15 ++ lib/models/WebserviceAccessRule.class.php | 14 +- lib/models/WikiPage.class.php | 23 +-- lib/models/WikiPageConfig.php | 10 ++ lib/models/eTask/Assignment.php | 33 ++-- lib/models/eTask/AssignmentRange.php | 17 +- lib/models/eTask/Attempt.php | 21 +-- lib/models/eTask/ConfigureTrait.php | 14 +- lib/models/eTask/Response.php | 48 +++--- lib/models/eTask/Task.php | 37 ++--- lib/models/eTask/Test.php | 30 ++-- lib/models/eTask/TestTask.php | 22 +-- lib/models/resources/BrokenResource.class.php | 39 +++-- lib/models/resources/Building.class.php | 43 +++-- .../resources/GlobalResourceLock.class.php | 17 +- lib/models/resources/Location.class.php | 30 +++- lib/models/resources/Resource.class.php | 57 ++++--- .../resources/ResourceBooking.class.php | 96 ++++++----- .../ResourceBookingInterval.class.php | 35 ++-- .../resources/ResourceCategory.class.php | 12 +- .../ResourceCategoryProperty.class.php | 21 ++- lib/models/resources/ResourceLabel.class.php | 41 +++-- .../resources/ResourcePermission.class.php | 33 ++-- .../resources/ResourceProperty.class.php | 22 +-- .../ResourcePropertyDefinition.class.php | 28 ++-- .../resources/ResourcePropertyGroup.class.php | 11 +- .../resources/ResourceRequest.class.php | 149 +++++++++--------- .../ResourceRequestAppointment.class.php | 24 ++- .../ResourceRequestProperty.class.php | 20 +-- .../ResourceTemporaryPermission.class.php | 29 ++-- lib/models/resources/Room.class.php | 39 +++-- lib/models/resources/RoomRequest.class.php | 46 ++++-- lib/models/resources/SeparableRoom.class.php | 14 +- .../resources/SeparableRoomPart.class.php | 14 +- lib/raumzeit/SingleDate.class.php | 2 +- lib/resources/RoomManager.class.php | 14 +- 240 files changed, 3643 insertions(+), 1994 deletions(-) diff --git a/app/controllers/course/feedback.php b/app/controllers/course/feedback.php index cd970a03e41..dec20009bbb 100644 --- a/app/controllers/course/feedback.php +++ b/app/controllers/course/feedback.php @@ -71,7 +71,7 @@ class Course_FeedbackController extends AuthenticatedController 'range_type' => $range_type, 'results_visible' => 1, 'commentable' => 1, - 'mode' => 1 + 'mode' => FeedbackElement::MODE_5STAR_RATING, ]); } @@ -83,12 +83,12 @@ class Course_FeedbackController extends AuthenticatedController if (!Feedback::hasRangeAccess($range_id, $range_type)) { throw new AccessDeniedException(); } elseif ($this->create_perm) { - if(Request::get('comment_only') === 1) { - $mode = 0; + if (Request::bool('comment_only')) { + $mode = FeedbackElement::MODE_NO_RATING; $commentable = 1; } else { - $mode = intval(Request::get('mode')); - $commentable = intval(Request::get('commentable')); + $mode = Request::int('mode', FeedbackElement::MODE_NO_RATING); + $commentable = Request::bool('commentable'); } $feedback = FeedbackElement::build([ 'range_id' => $range_id, diff --git a/app/controllers/course/room_requests.php b/app/controllers/course/room_requests.php index 464404fac18..1f06afef800 100644 --- a/app/controllers/course/room_requests.php +++ b/app/controllers/course/room_requests.php @@ -583,7 +583,7 @@ class Course_RoomRequestsController extends AuthenticatedController } $this->preparation_time = intval($this->request->preparation_time / 60); - $this->reply_lecturers = $this->request->reply_recipients === 'lecturer'; + $this->reply_lecturers = $this->request->reply_recipients === ResourceRequest::REPLY_LECTURER; $this->comment = $this->request->comment; $_SESSION[$request_id]['search_by'] = $this->selected_room ? 'roomname' : 'category'; @@ -612,9 +612,9 @@ class Course_RoomRequestsController extends AuthenticatedController $this->request->comment = Request::get('comment'); if (Request::get('reply_lecturers')) { - $this->request->reply_recipients = 'lecturer'; + $this->request->reply_recipients = ResourceRequest::REPLY_LECTURER; } else { - $this->request->reply_recipients = 'requester'; + $this->request->reply_recipients = ResourceRequest::REPLY_REQUESTER; } $this->request->category_id = $_SESSION[$request_id]['room_category_id'] ?: $this->request->category_id; diff --git a/app/controllers/resources/booking.php b/app/controllers/resources/booking.php index 145a885a2a5..0e09d8c73fa 100644 --- a/app/controllers/resources/booking.php +++ b/app/controllers/resources/booking.php @@ -209,7 +209,7 @@ class Resources_BookingController extends AuthenticatedController protected function sendLockBookingMail(ResourceBooking $booking) { - if ($booking->booking_type != '2') { + if ($booking->booking_type != ResourceBooking::TYPE_LOCK) { return false; } @@ -306,7 +306,7 @@ class Resources_BookingController extends AuthenticatedController $preparation_time = 0, $description = '', $comment = '', - $booking_type = '0', + $booking_type = ResourceBooking::TYPE_NORMAL, $assigned_user = null, $repetition_interval = null, $notification_enabled = false, @@ -328,7 +328,7 @@ class Resources_BookingController extends AuthenticatedController if ($included_room_parts) { //Check if there are identical bookings in the other room parts: foreach ($included_room_parts as $room_part) { - if (($booking_type == '2') && $overwrite_bookings) { + if ($booking_type == ResourceBooking::TYPE_LOCK && $overwrite_bookings) { //Create a new booking: $room_part->createBooking( $user, @@ -351,7 +351,7 @@ class Resources_BookingController extends AuthenticatedController $comment, $booking_type, ( - $booking_type == '2' + $booking_type == ResourceBooking::TYPE_LOCK ? $overwrite_bookings : false ) @@ -396,7 +396,7 @@ class Resources_BookingController extends AuthenticatedController $comment, $booking_type, ( - $booking_type == '2' + $booking_type == ResourceBooking::TYPE_LOCK ? $overwrite_bookings : false ) @@ -430,7 +430,7 @@ class Resources_BookingController extends AuthenticatedController try { //Enable overwriting of bookings if it is a lock booking: $a->store( - $booking_type == '2' + $booking_type == ResourceBooking::TYPE_LOCK ? $overwrite_bookings : false ); @@ -465,7 +465,7 @@ class Resources_BookingController extends AuthenticatedController $comment, $booking_type, ( - $booking_type == '2' + $booking_type == ResourceBooking::TYPE_LOCK ? $overwrite_bookings : false ) @@ -475,7 +475,11 @@ class Resources_BookingController extends AuthenticatedController $result['errors'] = [$e->getMessage()]; } - if ($booking && ($booking_type == '2') && $notification_enabled) { + if ( + $booking + && $booking_type == ResourceBooking::TYPE_LOCK + && $notification_enabled + ) { $this->sendLockBookingMail($booking); } @@ -509,7 +513,7 @@ class Resources_BookingController extends AuthenticatedController $comment, $booking_type, ( - $booking_type == '2' + $booking_type == ResourceBooking::TYPE_LOCK ? $overwrite_bookings : false ) @@ -536,7 +540,7 @@ class Resources_BookingController extends AuthenticatedController protected function displayAssignResultMessages( - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $booking_count = 0, $errors = [], $room_part_errors = [] @@ -545,12 +549,12 @@ class Resources_BookingController extends AuthenticatedController if ($booking_count > 0) { if ($errors) { //Bookings could not be saved. - if ($booking_type == '1') { + if ($booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::postWarning( _('Es konnten nicht alle Reservierungen gespeichert werden!'), $errors ); - } elseif ($booking_type == '2') { + } elseif ($booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::postWarning( _('Es konnten nicht alle Sperrbuchungen gespeichert werden!'), $errors @@ -563,13 +567,13 @@ class Resources_BookingController extends AuthenticatedController } } elseif ($room_part_errors) { //Room parts could not be assigned. - if ($booking_type == '1') { + if ($booking_type == ResourceBooking::TYPE_RESERVATION) { $text = ngettext( 'Die Reservierung wurde gespeichert, aber es traten Fehler beim Reservieren der anderen Raumteile auf:', 'Die Reservierungen wurden gespeichert, aber es traten Fehler beim Reservieren der anderen Raumteile auf:', $booking_count ); - } elseif ($booking_type == '2') { + } elseif ($booking_type == ResourceBooking::TYPE_LOCK) { $text = ngettext( 'Die Sperrbuchung wurde gespeichert, aber es traten Fehler beim Sperren der anderen Raumteile auf:', 'Die Sperrbuchungen wurden gespeichert, aber es traten Fehler beim Sperren der anderen Raumteile auf:', @@ -589,7 +593,7 @@ class Resources_BookingController extends AuthenticatedController ); } else { //Everything went fine: - if ($booking_type == '1') { + if ($booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::postSuccess( ngettext( 'Die Reservierung wurde gespeichert.', @@ -597,7 +601,7 @@ class Resources_BookingController extends AuthenticatedController $booking_count ) ); - } elseif ($booking_type == '2') { + } elseif ($booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::postSuccess( ngettext( 'Die Sperrbuchung wurde gespeichert.', @@ -652,21 +656,21 @@ class Resources_BookingController extends AuthenticatedController $only_one_room = count($this->resources) == 1; if ($only_one_room) { - if ($this->booking_type == 3) { + if ($this->booking_type == ResourceBooking::TYPE_PLANNED) { PageLayout::setTitle( sprintf( _('%s: Neue geplante Buchung'), $this->resources[0]->getFullName() ) ); - } elseif ($this->booking_type == 2) { + } elseif ($this->booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::setTitle( sprintf( '%s: Neue Sperrbuchung', $this->resources[0]->getFullName() ) ); - } elseif ($this->booking_type == 1) { + } elseif ($this->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle( sprintf( '%s: Neue Reservierung', @@ -682,15 +686,15 @@ class Resources_BookingController extends AuthenticatedController ); } } else { - if ($this->booking_type == 3) { + if ($this->booking_type == ResourceBooking::TYPE_PLANNED) { PageLayout::setTitle( _('Neue geplante Buchung') ); - } elseif ($this->booking_type == 2) { + } elseif ($this->booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::setTitle( _('Neue Sperrbuchung') ); - } elseif ($this->booking_type == 1) { + } elseif ($this->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle( _('Neue Reservierung') ); @@ -721,7 +725,7 @@ class Resources_BookingController extends AuthenticatedController if ($mode == 'edit') { if (count($this->resources) == 1) { - if ($this->booking_type == 3) { + if ($this->booking_type == ResourceBooking::TYPE_PLANNED) { PageLayout::setTitle( sprintf( _('%1$s: Geplante Buchung am %2$s bearbeiten'), @@ -729,7 +733,7 @@ class Resources_BookingController extends AuthenticatedController $booking_date ) ); - } elseif ($this->booking_type == 2) { + } elseif ($this->booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::setTitle( sprintf( _('%1$s: Sperrbuchung am %2$s bearbeiten'), @@ -737,7 +741,7 @@ class Resources_BookingController extends AuthenticatedController $booking_date ) ); - } elseif ($this->booking_type == 1) { + } elseif ($this->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle( sprintf( _('%1$s: Reservierung am %2$s bearbeiten'), @@ -755,21 +759,21 @@ class Resources_BookingController extends AuthenticatedController ); } } else { - if ($this->booking_type == 3) { + if ($this->booking_type == ResourceBooking::TYPE_PLANNED) { PageLayout::setTitle( sprintf( _('Geplante Buchung am %s bearbeiten'), $booking_date ) ); - } elseif ($this->booking_type == 2) { + } elseif ($this->booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::setTitle( sprintf( _('Sperrbuchung am %s bearbeiten'), $booking_date ) ); - } elseif ($this->booking_type == 1) { + } elseif ($this->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle( sprintf( _('Reservierung am %s bearbeiten'), @@ -802,7 +806,7 @@ class Resources_BookingController extends AuthenticatedController //Check permissions: if ($mode == 'add') { - if ($this->booking_type != 2) { + if ($this->booking_type != ResourceBooking::TYPE_LOCK) { foreach ($this->resources as $resource) { if (!$resource->userHasBookingRights($this->current_user)) { //The permissions are insufficient for at least one @@ -1145,7 +1149,11 @@ class Resources_BookingController extends AuthenticatedController //Validation: - if (($this->booking_type < 0) || ($this->booking_type > 2)) { + if (!in_aray($this->booking_type, [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ])) { PageLayout::postError( _('Es wurde ein ungültiger Buchungstyp gewählt.') ); @@ -1909,9 +1917,9 @@ class Resources_BookingController extends AuthenticatedController return; } - if ($this->booking->booking_type == '0') { + if ($this->booking->booking_type == ResourceBooking::TYPE_NORMAL) { PageLayout::setTitle(_('Buchung in Reservierung umwandeln')); - } elseif ($this->booking->booking_type == '1') { + } elseif ($this->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle(_('Reservierung in Buchung umwandeln')); } else { PageLayout::postError( @@ -1931,7 +1939,7 @@ class Resources_BookingController extends AuthenticatedController return; } - if ($this->booking->booking_type == '1') { + if ($this->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { $fully_available = true; foreach ($intervals as $interval) { $begin = new DateTime(); @@ -1958,10 +1966,10 @@ class Resources_BookingController extends AuthenticatedController if (Request::submitted('transform')) { CSRFProtection::verifyUnsafeRequest(); - if ($this->booking->booking_type == '0') { - $this->booking->booking_type = '1'; - } elseif ($this->booking->booking_type == '1') { - $this->booking->booking_type = '0'; + if ($this->booking->booking_type == ResourceBooking::TYPE_NORMAL) { + $this->booking->booking_type = ResourceBooking::TYPE_RESERVATION; + } elseif ($this->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { + $this->booking->booking_type = ResourceBooking::TYPE_NORMAL; } $saved = false; @@ -1971,11 +1979,11 @@ class Resources_BookingController extends AuthenticatedController $saved = true; } if ($saved) { - if ($this->booking->booking_type == '0') { + if ($this->booking->booking_type == ResourceBooking::TYPE_NORMAL) { PageLayout::postSuccess( _('Die Buchung wurde gespeichert.') ); - } elseif ($this->booking->booking_type == '1') { + } elseif ($this->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::postSuccess( _('Die Reservierung wurde gespeichert.') ); @@ -1983,18 +1991,18 @@ class Resources_BookingController extends AuthenticatedController $this->response->add_header('X-Dialog-Close', '1'); $this->render_nothing(); } else { - if ($this->booking->booking_type == '0') { + if ($this->booking->booking_type == ResourceBooking::TYPE_NORMAL) { PageLayout::postError( _('Die Buchung konnte nicht gespeichert werden.') ); - } elseif ($this->booking->booking_type == '1') { + } elseif ($this->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::postError( _('Die Reservierung konnte nicht gespeichert werden.') ); } } } else { - if ($this->booking->booking_type == '0') { + if ($this->booking->booking_type == ResourceBooking::TYPE_NORMAL) { PageLayout::postWarning( _('Soll die folgende Buchung wirklich in eine Reservierung umgewandelt werden?') ); diff --git a/app/controllers/resources/export.php b/app/controllers/resources/export.php index a891af2bcfb..488cff5f54c 100644 --- a/app/controllers/resources/export.php +++ b/app/controllers/resources/export.php @@ -128,10 +128,10 @@ class Resources_ExportController extends AuthenticatedController // All available booking types. $this->booking_types = [ - 0 => _('Buchung'), - 1 => _('Reservierung'), - 2 => _('Sperrbuchung'), - 3 => _('geplante Buchung') + ResourceBooking::TYPE_NORMAL => _('Buchung'), + ResourceBooking::TYPE_RESERVATION => _('Reservierung'), + ResourceBooking::TYPE_LOCK => _('Sperrbuchung'), + ResourceBooking::TYPE_PLANNED => _('geplante Buchung') ]; $this->selected_booking_types = Request::intArray('bookingtypes') ?: Config::get()->RESOURCES_EXPORT_BOOKINGTYPES_DEFAULT; @@ -236,10 +236,10 @@ class Resources_ExportController extends AuthenticatedController // All available booking types. $this->booking_types = [ - 0 => _('Buchung'), - 1 => _('Reservierung'), - 2 => _('Sperrbuchung'), - 3 => _('geplante Buchung') + ResourceBooking::TYPE_NORMAL => _('Buchung'), + ResourceBooking::TYPE_RESERVATION => _('Reservierung'), + ResourceBooking::TYPE_LOCK => _('Sperrbuchung'), + ResourceBooking::TYPE_PLANNED => _('geplante Buchung') ]; $this->selected_booking_types = Config::get()->RESOURCES_EXPORT_BOOKINGTYPES_DEFAULT; } @@ -384,13 +384,13 @@ class Resources_ExportController extends AuthenticatedController ), $booking->resource->name, ( - $booking->booking_type == '0' + $booking->booking_type == ResourceBooking::TYPE_NORMAL ? _('Buchung') : ( - $booking->booking_type == '1' + $booking->booking_type == ResourceBooking::TYPE_RESERVATION ? _('Reservierung') : ( - $booking->booking_type == '2' + $booking->booking_type == ResourceBooking::TYPE_LOCK ? _('Sperrbuchung') : _('sonstiges') ) @@ -494,11 +494,11 @@ class Resources_ExportController extends AuthenticatedController } $booking_type_string = ''; - if ($interval->booking->booking_type == '0') { + if ($interval->booking->booking_type == ResourceBooking::TYPE_NORMAL) { $booking_type_string = _('Buchung'); - } elseif ($interval->booking->booking_type == '1') { + } elseif ($interval->booking->booking_type == ResourceBooking::TYPE_RESERVATION) { $booking_type_string = _('Reservierung'); - } elseif ($interval->booking->booking_type == '2') { + } elseif ($interval->booking->booking_type == ResourceBooking::TYPE_LOCK) { $booking_type_string = _('Sperrbuchung'); } diff --git a/app/controllers/resources/print.php b/app/controllers/resources/print.php index 3b4c1e5d94c..8674fae63bf 100644 --- a/app/controllers/resources/print.php +++ b/app/controllers/resources/print.php @@ -140,10 +140,10 @@ class Resources_PrintController extends AuthenticatedController // All available booking types. $this->booking_types = [ - 0 => _('Buchung'), - 1 => _('Reservierung'), - 2 => _('Sperrbuchung'), - 3 => _('geplante Buchung') + ResourceBooking::TYPE_NORMAL => _('Buchung'), + ResourceBooking::TYPE_RESERVATION => _('Reservierung'), + ResourceBooking::TYPE_LOCK => _('Sperrbuchung'), + ResourceBooking::TYPE_PLANNED => _('geplante Buchung'), ]; // Get additional text to print diff --git a/app/controllers/resources/resource.php b/app/controllers/resources/resource.php index d7bd0d24df0..6bec6e277d3 100644 --- a/app/controllers/resources/resource.php +++ b/app/controllers/resources/resource.php @@ -1203,21 +1203,24 @@ class Resources_ResourceController extends AuthenticatedController $this->show_form = false; $this->booking_type = Request::int('type'); - if (!in_array($this->booking_type, [1, 2])) { + if (!in_array($this->booking_type, [ + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK + ])) { PageLayout::postError( _('Es wurde kein passender Buchungstyp angegeben!') ); return; } - if ($this->booking_type == 1) { + if ($this->booking_type == ResourceBooking::TYPE_RESERVATION) { PageLayout::setTitle( sprintf( _('%s: Reservierung erstellen'), $this->resource->getFullName() ) ); - } elseif ($this->booking_type == 2) { + } elseif ($this->booking_type == ResourceBooking::TYPE_LOCK) { PageLayout::setTitle( sprintf( _('%s: Sperrbuchung erstellen'), diff --git a/app/controllers/resources/room_planning.php b/app/controllers/resources/room_planning.php index 220d7a84114..3b550f06828 100644 --- a/app/controllers/resources/room_planning.php +++ b/app/controllers/resources/room_planning.php @@ -148,7 +148,11 @@ class Resources_RoomPlanningController extends AuthenticatedController //The booking plan is also visible when the resource is a room //and its booking plan is publicly available. $this->anonymous_view = true; - $this->booking_types = [0, 1, 2]; + $this->booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ]; if ($this->user instanceof User) { if ($this->display_all_requests) { $plan_is_visible = $this->resource->userHasPermission( @@ -160,7 +164,7 @@ class Resources_RoomPlanningController extends AuthenticatedController } $this->anonymous_view = false; if ($this->resource->userHasPermission($this->user, 'admin')) { - $this->booking_types[] = 3; + $this->booking_types[] = ResourceBooking::TYPE_PLANNED; } } else { //If the plan visibility cannot be determined by the user, @@ -551,9 +555,13 @@ class Resources_RoomPlanningController extends AuthenticatedController $this->user_is_global_resource_admin = ResourceManager::userHasGlobalPermission($this->user, 'admin'); $this->show_global_admin_actions = $this->user_is_global_resource_admin; $this->user_has_booking_permissions = $this->resource->userHasBookingRights($this->user); - $this->booking_types = [0, 1, 2]; + $this->booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ]; if ($this->resource->userHasPermission($this->user, 'admin')) { - $this->booking_types[] = 3; + $this->booking_types[] = ResourceBooking::TYPE_PLANNED; } if ($this->user_has_booking_permissions) { URLHelper::addLinkParam('display_single_bookings', Request::get("display_single_bookings")); diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index db892e09d2e..c6aed3a4241 100644 --- a/app/controllers/resources/room_request.php +++ b/app/controllers/resources/room_request.php @@ -1458,7 +1458,7 @@ class Resources_RoomRequestController extends AuthenticatedController } $this->notification_settings = 'creator'; - if ($this->request->reply_recipients == 'lecturer') { + if ($this->request->reply_recipients === ResourceRequest::REPLY_LECTURER) { $this->notification_settings = 'creator_and_lecturers'; } $this->reply_comment = $this->request->reply_comment; diff --git a/app/controllers/resources/statistics.php b/app/controllers/resources/statistics.php index 6ae55e11d2d..6738833889c 100644 --- a/app/controllers/resources/statistics.php +++ b/app/controllers/resources/statistics.php @@ -60,7 +60,10 @@ class Resources_StatisticsController extends AuthenticatedController $sum_stmt->execute( [ - 'types' => [0, 1], + 'types' => [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ], 'begin' => $year_begin->getTimestamp(), 'end' => $year_end->getTimestamp() ] @@ -69,7 +72,7 @@ class Resources_StatisticsController extends AuthenticatedController $sum_stmt->execute( [ - 'types' => [2], + 'types' => [ResourceBooking::TYPE_LOCK], 'begin' => $year_begin->getTimestamp(), 'end' => $year_end->getTimestamp() ] diff --git a/app/controllers/room_management/planning.php b/app/controllers/room_management/planning.php index 81627e294ae..9bfd00fe226 100644 --- a/app/controllers/room_management/planning.php +++ b/app/controllers/room_management/planning.php @@ -149,7 +149,11 @@ class RoomManagement_PlanningController extends AuthenticatedController $request_rights_c = 0; $booking_rights_c = 0; $admin_rights_c = 0; - $this->booking_types = [0, 1, 2]; + $this->booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ]; foreach ($rooms as $room) { if ($room->userHasRequestRights($current_user)) { @@ -183,7 +187,7 @@ class RoomManagement_PlanningController extends AuthenticatedController $all_rooms_admin = ($room_c == $admin_rights_c); if ($all_rooms_admin) { //Display planned bookings, too: - $this->booking_types[] = 3; + $this->booking_types[] = ResourceBooking::TYPE_PLANNED; } if (!$this->all_rooms_booking_rights && $this->display_all_requests) { throw new AccessDeniedException( @@ -447,7 +451,11 @@ class RoomManagement_PlanningController extends AuthenticatedController $requestable_rooms_c = 0; $booking_rights_c = 0; $admin_rights_c = 0; - $this->booking_types = [0, 1, 2]; + $this->booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ]; foreach ($rooms as $room) { if ($room->userHasBookingRights($current_user)) { @@ -471,7 +479,7 @@ class RoomManagement_PlanningController extends AuthenticatedController $all_rooms_admin = ($room_c == $admin_rights_c); if ($all_rooms_admin) { //Display planned bookings, too: - $this->booking_types[] = 3; + $this->booking_types[] = ResourceBooking::TYPE_PLANNED; } if (!$all_rooms_booking_rights && $this->display_all_requests) { diff --git a/app/views/course/feedback/_add_edit_entry_form.php b/app/views/course/feedback/_add_edit_entry_form.php index e7442e24d7b..b117b782e9d 100644 --- a/app/views/course/feedback/_add_edit_entry_form.php +++ b/app/views/course/feedback/_add_edit_entry_form.php @@ -4,10 +4,10 @@ * @var FeedbackEntry|null $entry */ ?> -<? if ($feedback->mode != 0) : ?> +<? if ($feedback->mode != FeedbackElement::MODE_NO_RATING) : ?> <?php $n = 5; - if ($feedback->mode == 2) { + if ($feedback->mode == FeedbackElement::MODE_10STAR_RATING) { $n = 10; } ?> diff --git a/app/views/course/feedback/_entry.php b/app/views/course/feedback/_entry.php index 586743d5d87..29f35fbd967 100644 --- a/app/views/course/feedback/_entry.php +++ b/app/views/course/feedback/_entry.php @@ -25,7 +25,7 @@ <? endif; ?> </nav> </header> - <? if ($entry->feedback->mode != 0) : ?> + <? if ($entry->feedback->mode != FeedbackElement::MODE_NO_RATING) : ?> <div class="rating"> <span title="<?= $entry->rating ?>"> <? for ($i=0; $i < $entry->feedback->getMaxRating(); $i++) : ?> diff --git a/app/views/course/feedback/_feedback_stream.php b/app/views/course/feedback/_feedback_stream.php index 888b46390fc..af1ffad71b4 100644 --- a/app/views/course/feedback/_feedback_stream.php +++ b/app/views/course/feedback/_feedback_stream.php @@ -2,7 +2,7 @@ <header> <h1> <a href="<?= $controller->link_for('course/feedback/view/' . $feedback->id) ?>"> - <? if ($feedback->mode != 0 && ((!$feedback->isFeedbackable() && $feedback->results_visible == 1) || $admin_perm) && count($feedback->entries) > 0) : ?> + <? if ($feedback->mode != FeedbackElement::MODE_NO_RATING && ((!$feedback->isFeedbackable() && $feedback->results_visible == 1) || $admin_perm) && count($feedback->entries) > 0) : ?> <?= Icon::create('star') ?> <span class="mean"><?= $feedback->getMeanOfRating() ?></span> <? endif; ?> @@ -33,4 +33,4 @@ <div class="feedback-view"> <?= $this->render_partial('course/feedback/_feedback.php' , ['feedback' => $feedback]) ?> </div> -</article> \ No newline at end of file +</article> diff --git a/app/views/course/feedback/_new_edit_feedback_form.php b/app/views/course/feedback/_new_edit_feedback_form.php index e39fed4cf96..b5268c0a467 100644 --- a/app/views/course/feedback/_new_edit_feedback_form.php +++ b/app/views/course/feedback/_new_edit_feedback_form.php @@ -24,7 +24,7 @@ </label> <label> <input id="comment-only" type="checkbox" name="comment_only" value="1" - <?= $feedback->mode == 0 ? 'checked' : '' ?> <? if ($this->current_action == + <?= $feedback->mode == FeedbackElement::MODE_NO_RATING ? 'checked' : '' ?> <? if ($this->current_action == 'edit_form') {echo ('disabled');} else { echo('data-deactivates="#comment-activated, .feedback-mode"');}?>> <?= _('Nur Kommentare (keine numerische Bewertung)') ?> </label> @@ -34,13 +34,15 @@ <?= _('Bewertungsmodus') ?> </legend> <label> - <input class="feedback-mode" type="radio" name="mode" value="1" <?= $feedback->mode == 1 ? 'checked' : '' ?> - required <? if ($this->current_action == - 'edit_form') {echo ('disabled');}?>><?= _('Sternbewertung von 1 bis 5') ?> + <input class="feedback-mode" type="radio" name="mode" value="<?= FeedbackElement::MODE_5STAR_RATING ?>" + <?= $feedback->mode == FeedbackElement::MODE_5STAR_RATING ? 'checked' : '' ?> + required <? if ($current_action === 'edit_form') echo ('disabled'); ?>> + <?= _('Sternbewertung von 1 bis 5') ?> </label> <label> - <input class="feedback-mode" type="radio" name="mode" value="2" <?= $feedback->mode == 2 ? 'checked' : '' ?> <? - if ($this->current_action == - 'edit_form') {echo ('disabled');}?>><?= _('Sternbewertung von 1 bis 10') ?> + <input class="feedback-mode" type="radio" name="mode" value="<?= FeedbackElement::MODE_10STAR_RATING ?>" + <?= $feedback->mode == FeedbackElement::MODE_10STAR_RATING ? 'checked' : '' ?> <? + if ($current_action === 'edit_form') echo ('disabled'); ?>> + <?= _('Sternbewertung von 1 bis 10') ?> </label> -</fieldset> \ No newline at end of file +</fieldset> diff --git a/app/views/course/feedback/_results.php b/app/views/course/feedback/_results.php index 21e5cb1153f..6720632bf0c 100644 --- a/app/views/course/feedback/_results.php +++ b/app/views/course/feedback/_results.php @@ -4,13 +4,12 @@ <? if ($entries_count == 0 ) { print(_('Bisher wurde kein Feedback gegeben.')); } ?> - <? if ($feedback->mode == 0) { + <? if ($feedback->mode == FeedbackElement::MODE_NO_RATING) { printf(_('Insgesamt wurde %s mal Feedback gegeben.'), $entries_count); } ?> - <? if ($entries_count >= 1 && $feedback->mode != 0) : ?> + <? if ($entries_count >= 1 && $feedback->mode != FeedbackElement::MODE_NO_RATING) : ?> <? - $rating_scale = 5; - if ($feedback->mode == 2) {$rating_scale = 10;} + $rating_scale = $feedback->mode == FeedbackElement::MODE_5STAR_RATING ? 5 : 10; ?> <div class="ratings"> <table class="default sortable-table feedback" data-sortlist="[[1, 1]]"> diff --git a/app/views/course/feedback/index.php b/app/views/course/feedback/index.php index 44805346ca2..602d445a33f 100644 --- a/app/views/course/feedback/index.php +++ b/app/views/course/feedback/index.php @@ -72,7 +72,7 @@ </a> </td> <td> - <?php if (count($feedback->entries) >= 1 && $feedback->mode != 0) { + <?php if (count($feedback->entries) >= 1 && $feedback->mode != FeedbackElement::MODE_NO_RATING) { echo $feedback->getMeanOfRating(); } ?> @@ -81,9 +81,9 @@ <?= count($feedback->entries) ?> </td> <td data-sort-value="<?= $feedback->mode ?>" class="responsive-hidden"> - <? if($feedback->mode == 1) : ?> + <? if($feedback->mode == FeedbackElement::MODE_5STAR_RATING) : ?> <?= Icon::create('star', Icon::ROLE_INFO) ?> (1-5) - <? elseif($feedback->mode == 2): ?> + <? elseif($feedback->mode == FeedbackElement::MODE_10STAR_RATING): ?> <?= Icon::create('star', Icon::ROLE_INFO) ?> (1-10) <? else: ?> <?= _('Kommentar') ?> diff --git a/app/views/resources/booking/_add_edit_form.php b/app/views/resources/booking/_add_edit_form.php index c35f405db1c..571ff63f0ed 100644 --- a/app/views/resources/booking/_add_edit_form.php +++ b/app/views/resources/booking/_add_edit_form.php @@ -21,20 +21,20 @@ <fieldset class="booking-type-selection"> <legend><?= _('Bitte wählen Sie einen der folgenden Buchungstypen aus:') ?></legend> <select name="booking_type" autofocus> - <option value="0" - <?= $booking_type == '0' + <option value="<?= ResourceBooking::TYPE_NORMAL ?>" + <?= $booking_type == ResourceBooking::TYPE_NORMAL ? 'selected="selected"' : '' ?>> <?= _('Buchung') ?> </option> - <option value="1" - <?= $booking_type == '1' + <option value="<?= ResourceBooking::TYPE_RESERVATION ?>" + <?= $booking_type == ResourceBooking::TYPE_RESERVATION ? 'selected="selected"' : '' ?>> <?= _('Reservierung') ?> </option> - <option value="2" - <?= $booking_type == '2' + <option value="<?= ResourceBooking::TYPE_LOCK ?>" + <?= $booking_type == ResourceBooking::TYPE_LOCK ? 'selected="selected"' : '' ?>> <?= _('Sperrbuchung') ?> @@ -159,7 +159,7 @@ </div> - <? if ($booking_type != '2'): ?> + <? if ($booking_type != ResourceBooking::TYPE_LOCK): ?> <label> <?= _('Rüstzeit (Minuten)') ?> <input type="number" name="preparation_time" @@ -169,7 +169,7 @@ </label> <? endif ?> - <span class="notification-span <?= ($booking_type != '2') ? 'invisible' : '' ?>" data-booking_type="2"> + <span class="notification-span <?= ($booking_type != ResourceBooking::TYPE_LOCK) ? 'invisible' : '' ?>" data-booking_type="<?= ResourceBooking::TYPE_LOCK ?>"> <label> <input type="checkbox" name="notification_enabled" value="1" @@ -187,18 +187,16 @@ <?= $book_other_room_parts ? 'checked="checked"' : '' ?>> - <span data-booking_type="2" - <?= $booking_type == '2' ? '' : 'style="display:none;"' ?>> + <span data-booking_type="<?= ResourceBooking::TYPE_LOCK ?>" + <?= $booking_type == ResourceBooking::TYPE_LOCK ? '' : 'style="display:none;"' ?>> <?= _('Alle anderen Teilräume ebenfalls sperren.') ?> </span> - <span data-booking_type="1" - <?= $booking_type == '1' ? '' : 'style="display:none;"' ?>> + <span data-booking_type="<?= ResourceBooking::TYPE_RESERVATION ?>" + <?= $booking_type == ResourceBooking::TYPE_RESERVATION ? '' : 'style="display:none;"' ?>> <?= _('Alle anderen Teilräume ebenfalls reservieren.') ?> </span> - <span data-booking_type="0" - <?= (!$booking_type or $booking_type == '0') - ? '' - : 'style="display:none;"' ?>> + <span data-booking_type="<?= ResourceBooking::TYPE_NORMAL ?>" + <?= $booking_type == ResourceBooking::TYPE_NORMAL ? '' : 'style="display:none;"' ?>> <?= _('Alle anderen Teilräume ebenfalls buchen.') ?> </span> </label> @@ -514,29 +512,27 @@ </div> <div class="fieldset-row"> <fieldset class="comment-fieldset"> - <legend data-booking_type="1" - <?= $booking_type == '1' ? '' : 'style="display:none;"' ?>> + <legend data-booking_type="<?= ResourceBooking::TYPE_RESERVATION ?>" + <?= $booking_type == ResourceBooking::TYPE_RESERVATION ? '' : 'style="display:none;"' ?>> <?= _('Interner Kommentar zur Reservierung') ?> </legend> - <legend data-booking_type="2" - <?= $booking_type == '2' ? '' : 'style="display:none;"' ?>> + <legend data-booking_type="<?= ResourceBooking::TYPE_LOCK ?>" + <?= $booking_type == ResourceBooking::TYPE_LOCK ? '' : 'style="display:none;"' ?>> <?= _('Interner Kommentar zur Sperrbuchung') ?> </legend> - <legend data-booking_type="3" - <?= $booking_type == '3' ? '' : 'style="display:none;"' ?>> + <legend data-booking_type="<?= ResourceBooking::TYPE_PLANNED ?>" + <?= $booking_type == ResourceBooking::TYPE_PLANNED ? '' : 'style="display:none;"' ?>> <?= _('Interner Kommentar zur geplanten Buchung') ?> </legend> - <legend data-booking_type="0" - <?= (($booking_type == '0') || !$booking_type) - ? '' - : 'style="display:none;"' ?>> + <legend data-booking_type="<?= ResourceBooking::TYPE_NORMAL ?>" + <?= $booking_type == ResourceBooking::TYPE_NORMAL ? '' : 'style="display:none;"' ?>> <?= _('Interner Kommentar zur Buchung') ?> </legend> <label> <textarea name="internal_comment"><?= htmlReady($internal_comment) ?></textarea> </label> </fieldset> - <fieldset class="overwrite-fieldset <?= ($booking_type != '2') ? 'invisible' : '' ?>" data-booking_type="2"> + <fieldset class="overwrite-fieldset <?= $booking_type != ResourceBooking::TYPE_LOCK ? 'invisible' : '' ?>" data-booking_type="<?= ResourceBooking::TYPE_LOCK ?>"> <legend><?= _('Vorhandene Buchungen überschreiben') ?></legend> <label> <input type="checkbox" value="1" diff --git a/app/views/resources/booking/edit.php b/app/views/resources/booking/edit.php index 25c9d5ebae5..ee1610f283b 100644 --- a/app/views/resources/booking/edit.php +++ b/app/views/resources/booking/edit.php @@ -22,7 +22,7 @@ 'data-dialog' => 'size=auto' ] ) ?> - <? if ($booking->booking_type == '1') : ?> + <? if ($booking->booking_type == ResourceBooking::TYPE_RESERVATION) : ?> <?= \Studip\LinkButton::create( _('In Buchung umwandeln'), $controller->url_for('resources/booking/transform/' . $booking->id), @@ -30,7 +30,7 @@ 'data-dialog' => 'size=auto' ] ) ?> - <? elseif ($booking->booking_type == '0') : ?> + <? elseif ($booking->booking_type == ResourceBooking::TYPE_NORMAL) : ?> <?= \Studip\LinkButton::create( _('In Reservierung umwandeln'), $controller->url_for('resources/booking/transform/' . $booking->id), diff --git a/app/views/resources/booking/index.php b/app/views/resources/booking/index.php index 3e004ecf2b5..596ff3cea5f 100644 --- a/app/views/resources/booking/index.php +++ b/app/views/resources/booking/index.php @@ -41,7 +41,7 @@ <?= _('Nicht verfügbar') ?> <? endif ?> - <? if ($booking->booking_type == '2'): ?> + <? if ($booking->booking_type == ResourceBooking::TYPE_LOCK): ?> <? if ($user_has_user_perms): ?> <h3><?= _('Gesperrt für:') ?></h3> <?= htmlReady($booking->getAssignedUserName()) ?> @@ -50,7 +50,7 @@ <?= $booking->booking_user ? htmlReady($booking->booking_user->getFullName()) : _('unbekannt') ?> - <? elseif ($booking->booking_type == '1'): ?> + <? elseif ($booking->booking_type == ResourceBooking::TYPE_RESERVATION): ?> <? if ($user_has_user_perms): ?> <h3><?= _('Reserviert für:') ?></h3> <?= htmlReady($booking->getAssignedUserName()) ?> diff --git a/app/views/resources/print/individual_booking_plan.php b/app/views/resources/print/individual_booking_plan.php index 54672d60959..d8c60867d11 100644 --- a/app/views/resources/print/individual_booking_plan.php +++ b/app/views/resources/print/individual_booking_plan.php @@ -16,7 +16,11 @@ ), 'method' => 'GET', 'extraParams' => [ - 'booking_types' => [0,1,2] + 'booking_types' => [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ], ] ] ], diff --git a/app/views/resources/resource/booking_plan.php b/app/views/resources/resource/booking_plan.php index dc8852ddc8f..ced660e773c 100644 --- a/app/views/resources/resource/booking_plan.php +++ b/app/views/resources/resource/booking_plan.php @@ -24,7 +24,11 @@ ), 'method' => 'GET', 'extraParams' => [ - 'booking_types' => [0,1,2], + 'booking_types' => [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ], 'display_requests' => 0 ] ] diff --git a/app/views/resources/room_planning/semester_plan.php b/app/views/resources/room_planning/semester_plan.php index 11a2f799d4c..607891d42d7 100644 --- a/app/views/resources/room_planning/semester_plan.php +++ b/app/views/resources/room_planning/semester_plan.php @@ -110,7 +110,11 @@ ), 'method' => 'GET', 'extraParams' => [ - 'booking_types' => [0,1,2], + 'booking_types' => [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ], 'semester_id' => $semester->id, 'semester_timerange' => Request::get('semester_timerange', 'vorles'), 'display_requests' => 1, diff --git a/app/views/resources/room_request/planning.php b/app/views/resources/room_request/planning.php index 53f3dd01c86..364ee27e71f 100644 --- a/app/views/resources/room_request/planning.php +++ b/app/views/resources/room_request/planning.php @@ -89,7 +89,12 @@ ), 'method' => 'GET', 'extraParams' => [ - 'booking_types' => [0, 1, 2], + 'booking_types' => [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + + ], 'semester_id' => $semester->id, 'semester_timerange' => Request::get("semester_timerange", 'vorles'), 'display_requests' => 0, diff --git a/cli/Commands/SORM/DescribeModels.php b/cli/Commands/SORM/DescribeModels.php index 3d1256ff300..46dd8ff3fa4 100644 --- a/cli/Commands/SORM/DescribeModels.php +++ b/cli/Commands/SORM/DescribeModels.php @@ -15,6 +15,7 @@ final class DescribeModels extends AbstractCommand protected static $defaultName = 'sorm:describe'; private $progress; + private $reflection; protected function configure(): void { @@ -86,7 +87,7 @@ final class DescribeModels extends AbstractCommand } try { - $reflection = new \ReflectionClass($class_name); + $this->reflection = new \ReflectionClass($class_name); } catch (\Error $e) { $this->outputForFile( $output, @@ -95,7 +96,7 @@ final class DescribeModels extends AbstractCommand continue; } - if ($reflection->isAbstract()) { + if ($this->reflection->isAbstract()) { $this->outputForFile( $output, "Skipping abstract class {$class_name}", @@ -104,19 +105,36 @@ final class DescribeModels extends AbstractCommand continue; } - $model = $reflection->newInstance(); + + $model = $this->reflection->newInstance(); + + // Get configuration for class + $config_property = $this->reflection->getProperty('config'); + $config_property->setAccessible(true); + $model_config = $config_property->getValue()[$class_name]; + + // Get table metadata $meta = $model->getTableMetaData(); $properties = []; + if (!isset($meta['fields']['id']) && count($meta['pk']) > 0) { + $properties['id'] = [ + 'type' => count($meta['pk']) > 1 ? 'array' : $this->getPHPType($meta['pk'][0], $meta['fields'][$meta['pk'][0]]), + 'description' => 'alias for pk', + ]; + } + foreach ($meta['fields'] as $field => $info) { $name = mb_strtolower($field); - $type = $this->getPHPType($info); + $type = $this->getPHPType($field, $info, $model_config); $properties[$name] = [ 'type' => $type, 'description' => 'database column', ]; - if ($alias = array_search($name, $meta['alias_fields'])) { + + $alias = array_search($name, $meta['alias_fields']); + if ($alias) { $properties[$alias] = [ 'type' => $type, 'description' => "alias column for {$name}", @@ -127,24 +145,50 @@ final class DescribeModels extends AbstractCommand foreach ($meta['relations'] as $relation) { $options = $model->getRelationOptions($relation); $related_class_name = $options['class_name']; - if (in_array($options['type'], ['has_many', 'has_and_belongs_to_many'])) { - $related_class_name = SimpleORMapCollection::class; - } - if ($reflection->inNamespace()) { - $related_class_name = "\\{$related_class_name}"; - if (mb_strpos($related_class_name, "\\{$reflection->getNamespaceName()}") === 0) { - $related_class_name = substr($related_class_name, strlen($reflection->getNamespaceName()) + 2); + if (in_array($options['type'], ['has_many', 'has_and_belongs_to_many'])) { + $related_type = implode('|', [ + $this->adjustNamespaceForClass(SimpleORMapCollection::class), + $this->adjustNameSpaceForClass($related_class_name) . '[]', + ]); + } else { + $related_type = $this->adjustNamespaceForClass($related_class_name); + + if ( + $options['foreign_key'] !== 'id' + && isset($meta['fields'][$options['foreign_key']]) + && $meta['fields'][$options['foreign_key']]['null'] === 'YES' + ) { + $related_type .= '|null'; } } $properties[$relation] = [ - 'type' => $related_class_name, - 'description' => "{$options['type']} {$options['class_name']}", + 'type' => $related_type, + 'description' => "{$options['type']} " . $this->adjustNamespaceForClass($related_class_name), ]; } - if ($this->updateDocBlockOfClass($reflection, $properties)) { + foreach ($meta['additional_fields'] as $field => $definition) { + if ($field === 'id') { + continue; + } + + $property_type = null; + if (isset($definition['get']) && !isset($definition['set'])) { + $property_type = 'property-read'; + } elseif (!isset($definition['get']) && isset($definition['set'])) { + $property_type = 'property-write'; + } + + $properties[$field] = [ + 'property_type' => $property_type, + 'type' => $this->getAdditionFieldType($definition), + 'description' => 'additional field', + ]; + } + + if ($this->updateDocBlockOfClass($properties)) { $this->outputForFile( $output, '<info>Updated ' . $this->relativeFilePath($file->getPathname()) . '</info>' @@ -172,27 +216,35 @@ final class DescribeModels extends AbstractCommand } - private function getPHPType($info) + private function getPHPType(string $field, array $info, array $config = []): string { - if (preg_match('/^(?:tiny|small|medium|big)?int(?:eger)?/iS', $info['type'])) { - return 'int'; - } - - if (preg_match('/^(?:decimal|double|float|numeric)/iS', $info['type'])) { - return 'float'; + $field = strtolower($field); + + $type = []; + + if (isset($config['serialized_fields'][$field])) { + $type[] = $this->adjustNamespaceForClass($config['serialized_fields'][$field]); + } elseif (isset($config['i18n_fields'][$field])) { + $type[] = $this->adjustNamespaceForClass(\I18NString::class); + } elseif (preg_match('/^(?:tiny|small|medium|big)?int(?:eger)?/i', $info['type'])) { + $type[] = 'int'; + } elseif (preg_match('/^(?:decimal|double|float|numeric)/i', $info['type'])) { + $type[] = 'float'; + } else { + $type[] = 'string'; } - if (preg_match('/^bool(?:ean)?/iS', $info['type'])) { - return 'bool'; + if ($info['null'] === 'YES') { + $type[] = 'null'; } - return 'string'; + return implode('|', $type); } - private function updateDocBlockOfClass(\ReflectionClass $reflection, array $properties): bool + private function updateDocBlockOfClass(array $properties): bool { - $has_docblock = (bool) $reflection->getDocComment(); - $docblock = $reflection->getDocComment() ?: $this->getDefaultDocblock(); + $has_docblock = (bool) $this->reflection->getDocComment(); + $docblock = $this->reflection->getDocComment() ?: $this->getDefaultDocblock(); $docblock_lines = array_map('rtrim', explode("\n", $docblock)); @@ -214,7 +266,13 @@ final class DescribeModels extends AbstractCommand $docblock_lines = array_reverse($docblock_lines); $properties = array_map(function ($variable, $property) { - return " * @property {$property['type']} \${$variable} {$property['description']}"; + return sprintf( + ' * @%s %s $%s %s', + $property['property_type'] ?? 'property', + $property['type'], + $variable, + $property['description'] + ); }, array_keys($properties), array_values($properties)); array_unshift($properties, ' *'); @@ -226,7 +284,7 @@ final class DescribeModels extends AbstractCommand return false; } - $contents = file_get_contents($reflection->getFileName()); + $contents = file_get_contents($this->reflection->getFileName()); if ($has_docblock) { $contents = str_replace($docblock, $new_docblock, $contents); } else { @@ -238,7 +296,7 @@ final class DescribeModels extends AbstractCommand ); } - file_put_contents($reflection->getFileName(), $contents); + file_put_contents($this->reflection->getFileName(), $contents); return true; } @@ -282,4 +340,26 @@ final class DescribeModels extends AbstractCommand } return null; } + + private function adjustNamespaceForClass(string $class): string + { + if (!$this->reflection->inNamespace()) { + return $class; + } + + $namespace = $this->reflection->getNamespaceName(); + $class = "\\{$class}"; + if (str_starts_with($class, "\\{$namespace}")) { + $class = substr($class, strlen($namespace) + 2); + } + return $class; + } + + private function getAdditionFieldType($definition): string + { + // TODO: Try to get a reasonable field type + // $definition may either be an array with definition or a boolean value + + return 'mixed'; + } } diff --git a/lib/models/Abschluss.php b/lib/models/Abschluss.php index a3299c8ab02..29143423b7c 100644 --- a/lib/models/Abschluss.php +++ b/lib/models/Abschluss.php @@ -12,6 +12,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for abschluss_id + * @property string $abschluss_id database column + * @property I18NString $name database column + * @property I18NString|null $name_kurz database column + * @property I18NString|null $beschreibung database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|Fach[] $faecher has_many Fach + * @property SimpleORMapCollection|Studiengang[] $studiengaenge has_many Studiengang + * @property AbschlussKategorie $category belongs_to AbschlussKategorie + * @property AbschlussZuord $category_assignment has_one AbschlussZuord + * @property SimpleORMapCollection|Fach[] $professions has_and_belongs_to_many Fach + * @property-read mixed $count_faecher additional field + * @property-read mixed $kategorie_name additional field + * @property-read mixed $kategorie_id additional field + * @property-read mixed $count_studiengaenge additional field + * @property-read mixed $count_objects additional field + * @property-read mixed $count_user additional field */ class Abschluss extends ModuleManagementModelTreeItem implements PrivacyObject { diff --git a/lib/models/AbschlussKategorie.php b/lib/models/AbschlussKategorie.php index e60520197ea..f434062a849 100644 --- a/lib/models/AbschlussKategorie.php +++ b/lib/models/AbschlussKategorie.php @@ -12,8 +12,26 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for kategorie_id + * @property string $kategorie_id database column + * @property I18NString $name database column + * @property I18NString|null $name_kurz database column + * @property I18NString|null $beschreibung database column + * @property int|null $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|MvvFile[] $documents has_many MvvFile + * @property SimpleORMapCollection|MvvFile[] $document_assignments has_many MvvFile + * @property SimpleORMapCollection|AbschlussZuord[] $abschluss_assignments has_many AbschlussZuord + * @property SimpleORMapCollection|Abschluss[] $abschluesse has_and_belongs_to_many Abschluss + * @property-read mixed $count_abschluesse additional field + * @property-read mixed $count_studiengaenge additional field + * @property-read mixed $count_dokumente additional field + * @property-read mixed $count_objects additional field */ - class AbschlussKategorie extends ModuleManagementModelTreeItem { diff --git a/lib/models/AbschlussZuord.php b/lib/models/AbschlussZuord.php index 9a83e58fc29..a7b88d19b17 100644 --- a/lib/models/AbschlussZuord.php +++ b/lib/models/AbschlussZuord.php @@ -13,6 +13,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for abschluss_id + * @property string $abschluss_id database column + * @property string $kategorie_id database column + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Abschluss $abschluss belongs_to Abschluss + * @property AbschlussKategorie $kategorie belongs_to AbschlussKategorie */ class AbschlussZuord extends ModuleManagementModel diff --git a/lib/models/AdmissionApplication.class.php b/lib/models/AdmissionApplication.class.php index 4da0c6b83a8..a62ebb58951 100644 --- a/lib/models/AdmissionApplication.class.php +++ b/lib/models/AdmissionApplication.class.php @@ -13,23 +13,24 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string seminar_id database column - * @property string status database column - * @property string mkdate database column - * @property string position database column - * @property string comment database column - * @property string visible database column - * @property string vorname computed column read/write - * @property string nachname computed column read/write - * @property string username computed column read/write - * @property string email computed column read/write - * @property string title_front computed column read/write - * @property string title_rear computed column read/write - * @property string course_name computed column read/write - * @property string id computed column read/write - * @property User user belongs_to User - * @property Course course belongs_to Course + * @property array $id alias for pk + * @property string $user_id database column + * @property string $seminar_id database column + * @property string $status database column + * @property int $mkdate database column + * @property int|null $chdate database column + * @property int|null $position database column + * @property string $comment database column + * @property string $visible database column + * @property User $user belongs_to User + * @property Course $course belongs_to Course + * @property mixed $vorname additional field + * @property mixed $nachname additional field + * @property mixed $username additional field + * @property mixed $email additional field + * @property mixed $title_front additional field + * @property mixed $title_rear additional field + * @property mixed $course_name additional field */ class AdmissionApplication extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/AdmissionRuleCompatibility.php b/lib/models/AdmissionRuleCompatibility.php index f3447bc1cee..76b2f5763c3 100644 --- a/lib/models/AdmissionRuleCompatibility.php +++ b/lib/models/AdmissionRuleCompatibility.php @@ -14,10 +14,11 @@ * @category Stud.IP * @since 3.5 * - * @property string rule_type database column - * @property string compat_rule_type database column - * @property int mkdate database column - * @property int chdate database column + * @property array $id alias for pk + * @property string $rule_type database column + * @property string $compat_rule_type database column + * @property int $mkdate database column + * @property int $chdate database column */ class AdmissionRuleCompatibility extends SimpleORMap { diff --git a/lib/models/ArchivedCourse.class.php b/lib/models/ArchivedCourse.class.php index 9d26c8bf319..81879af2bf6 100644 --- a/lib/models/ArchivedCourse.class.php +++ b/lib/models/ArchivedCourse.class.php @@ -13,27 +13,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string seminar_id database column - * @property string id alias column for seminar_id - * @property string name database column - * @property string untertitel database column - * @property string beschreibung database column - * @property string start_time database column - * @property string semester database column - * @property string heimat_inst_id database column - * @property string institute database column - * @property string dozenten database column - * @property string fakultaet database column - * @property string dump database column - * @property string archiv_file_id database column - * @property string archiv_protected_file_id database column - * @property string mkdate database column - * @property string forumdump database column - * @property string wikidump database column - * @property string studienbereiche database column - * @property string veranstaltungsnummer database column - * @property SimpleORMapCollection members has_many ArchivedCourseMember - * @property Institute home_institut belongs_to Institute + * @property string $id alias column for seminar_id + * @property string $seminar_id database column + * @property string $name database column + * @property string $untertitel database column + * @property string $beschreibung database column + * @property int $start_time database column + * @property string $semester database column + * @property string $heimat_inst_id database column + * @property string $institute database column + * @property string $dozenten database column + * @property string $fakultaet database column + * @property string $dump database column + * @property string $archiv_file_id database column + * @property string $archiv_protected_file_id database column + * @property int $mkdate database column + * @property string $forumdump database column + * @property string|null $wikidump database column + * @property string $studienbereiche database column + * @property string $veranstaltungsnummer database column + * @property SimpleORMapCollection|ArchivedCourseMember[] $members has_many ArchivedCourseMember + * @property Institute $home_institut belongs_to Institute */ class ArchivedCourse extends SimpleORMap implements PrivacyObject diff --git a/lib/models/ArchivedCourseMember.class.php b/lib/models/ArchivedCourseMember.class.php index 536c1b677ea..1febd354070 100644 --- a/lib/models/ArchivedCourseMember.class.php +++ b/lib/models/ArchivedCourseMember.class.php @@ -13,12 +13,12 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string seminar_id database column - * @property string user_id database column - * @property string status database column - * @property string id computed column read/write - * @property User user belongs_to User - * @property ArchivedCourse course belongs_to ArchivedCourse + * @property array $id alias for pk + * @property string $seminar_id database column + * @property string $user_id database column + * @property string $status database column + * @property User $user belongs_to User + * @property ArchivedCourse $course belongs_to ArchivedCourse */ class ArchivedCourseMember extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/Aufbaustudiengang.php b/lib/models/Aufbaustudiengang.php index 9fba6e76eac..03913de843d 100644 --- a/lib/models/Aufbaustudiengang.php +++ b/lib/models/Aufbaustudiengang.php @@ -12,8 +12,19 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.4 + * + * @property int $id database column + * @property string $grund_stg_id database column + * @property string $aufbau_stg_id database column + * @property string $typ database column + * @property I18NString|null $kommentar database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Studiengang $grund_studiengang belongs_to Studiengang + * @property Studiengang $aufbau_studiengang has_one Studiengang */ - class Aufbaustudiengang extends ModuleManagementModel { protected static function configure($config = []) diff --git a/lib/models/AuthUserMd5.class.php b/lib/models/AuthUserMd5.class.php index 5879cb94836..48e27f8462a 100644 --- a/lib/models/AuthUserMd5.class.php +++ b/lib/models/AuthUserMd5.class.php @@ -13,20 +13,20 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string id alias column for user_id - * @property string username database column - * @property string password database column - * @property string perms database column - * @property string vorname database column - * @property string nachname database column - * @property string email database column - * @property string validation_key database column - * @property string auth_plugin database column - * @property string locked database column - * @property string lock_comment database column - * @property string locked_by database column - * @property string visible database column + * @property string $id alias column for user_id + * @property string $user_id database column + * @property string $username database column + * @property string $password database column + * @property string $perms database column + * @property string $vorname database column + * @property string $nachname database column + * @property string $email database column + * @property string $validation_key database column + * @property string|null $auth_plugin database column + * @property int $locked database column + * @property string|null $lock_comment database column + * @property string|null $locked_by database column + * @property string $visible database column */ class AuthUserMd5 extends SimpleORMap diff --git a/lib/models/AuxLockRule.php b/lib/models/AuxLockRule.php index 4bf8e8bcf25..abd3327bb5f 100644 --- a/lib/models/AuxLockRule.php +++ b/lib/models/AuxLockRule.php @@ -14,15 +14,16 @@ * @category Stud.IP * @since 3.0 * - * @property string lock_id database column - * @property string id alias column for lock_id - * @property string name database column - * @property string description database column - * @property JSONArrayObject attributes database column - * @property JSONArrayObject sorting database column - * @property array datafields computed column - * @property string order computed column - * @property Course[]|SimpleORMapCollection courses has_and_belongs_to_many Courses + * @property string $id alias column for lock_id + * @property string $lock_id database column + * @property I18NString $name database column + * @property I18NString $description database column + * @property JSONArrayObject $attributes database column + * @property JSONArrayObject $sorting database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|Course[] $courses has_many Course + * @property mixed $datafields additional field */ class AuxLockRule extends SimpleORMap { diff --git a/lib/models/Banner.class.php b/lib/models/Banner.class.php index 7f3309bfaf3..a4187604b09 100644 --- a/lib/models/Banner.class.php +++ b/lib/models/Banner.class.php @@ -14,20 +14,21 @@ * @package admin * @since 2.4 * - * @property string ad_id database column - * @property string id alias column for ad_id - * @property string banner_path database column - * @property string description database column - * @property string alttext database column - * @property string target_type database column - * @property string target database column - * @property string startdate database column - * @property string enddate database column - * @property string priority database column - * @property string views database column - * @property string clicks database column - * @property string mkdate database column - * @property string chdate database column + * @property string $id alias column for ad_id + * @property string $ad_id database column + * @property string $banner_path database column + * @property string|null $description database column + * @property string|null $alttext database column + * @property string $target_type database column + * @property string $target database column + * @property int $startdate database column + * @property int $enddate database column + * @property int $priority database column + * @property int $views database column + * @property int $clicks database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|BannerRoles[] $banner_roles has_many BannerRoles */ class Banner extends SimpleORMap diff --git a/lib/models/BannerRoles.class.php b/lib/models/BannerRoles.class.php index 82f5722ae3b..d1c29865317 100644 --- a/lib/models/BannerRoles.class.php +++ b/lib/models/BannerRoles.class.php @@ -14,8 +14,10 @@ * @package admin * @since 5.1 * - * @property string ad_id database column - * @property int roleid database column + * @property array $id alias for pk + * @property string $ad_id database column + * @property int $roleid database column + * @property Banner $banner_ads belongs_to Banner */ class BannerRoles extends SimpleORMap diff --git a/lib/models/BlubberComment.php b/lib/models/BlubberComment.php index 3e076af093a..dff5da9d339 100644 --- a/lib/models/BlubberComment.php +++ b/lib/models/BlubberComment.php @@ -13,7 +13,18 @@ * @category Stud.IP * @since 4.5 * - * @property BlubberThread thread related thread + * @property string $id alias column for comment_id + * @property string $comment_id database column + * @property string $thread_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property string|null $content database column + * @property string|null $network database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property BlubberThread $thread belongs_to BlubberThread + * @property User $user belongs_to User + * @property ExternalUser $external_user belongs_to ExternalUser */ class BlubberComment extends SimpleORMap implements PrivacyObject diff --git a/lib/models/BlubberGlobalThread.php b/lib/models/BlubberGlobalThread.php index b19a7f96e61..3279b87fbbf 100644 --- a/lib/models/BlubberGlobalThread.php +++ b/lib/models/BlubberGlobalThread.php @@ -1,5 +1,26 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for thread_id + * @property string $thread_id database column + * @property string $context_type database column + * @property string $context_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property string|null $content database column + * @property string|null $display_class database column + * @property int $visible_in_stream database column + * @property int $commentable database column + * @property JSONArrayObject|null $metadata database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|BlubberComment[] $comments has_many BlubberComment + * @property SimpleORMapCollection|BlubberMention[] $mentions has_many BlubberMention + * @property SimpleORMapCollection|ObjectUserVisit[] $visits has_many ObjectUserVisit + * @property User $user belongs_to User + */ class BlubberGlobalThread extends BlubberThread { public function isReadable(string $user_id = null) diff --git a/lib/models/BlubberMention.php b/lib/models/BlubberMention.php index c2a5008d2da..bd9b586b1e7 100644 --- a/lib/models/BlubberMention.php +++ b/lib/models/BlubberMention.php @@ -3,6 +3,15 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since 4.5 + * + * @property int $id alias column for mention_id + * @property int $mention_id database column + * @property string $thread_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property int $mkdate database column + * @property BlubberThread $thread belongs_to BlubberThread + * @property User $user belongs_to User */ class BlubberMention extends SimpleORMap diff --git a/lib/models/BlubberStatusgruppeThread.php b/lib/models/BlubberStatusgruppeThread.php index bd9e443351b..63e67a4d379 100644 --- a/lib/models/BlubberStatusgruppeThread.php +++ b/lib/models/BlubberStatusgruppeThread.php @@ -1,5 +1,27 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for thread_id + * @property string $thread_id database column + * @property string $context_type database column + * @property string $context_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property string|null $content database column + * @property string|null $display_class database column + * @property int $visible_in_stream database column + * @property int $commentable database column + * @property JSONArrayObject|null $metadata database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|BlubberComment[] $comments has_many BlubberComment + * @property SimpleORMapCollection|BlubberMention[] $mentions has_many BlubberMention + * @property SimpleORMapCollection|ObjectUserVisit[] $visits has_many ObjectUserVisit + * @property Statusgruppen $statusgruppe belongs_to Statusgruppen + * @property User $user belongs_to User + */ class BlubberStatusgruppeThread extends BlubberThread { protected static function configure($config = []) diff --git a/lib/models/BlubberThread.php b/lib/models/BlubberThread.php index 52465d2fe1f..d3a4de660a9 100644 --- a/lib/models/BlubberThread.php +++ b/lib/models/BlubberThread.php @@ -12,6 +12,24 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property string $id alias column for thread_id + * @property string $thread_id database column + * @property string $context_type database column + * @property string $context_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property string|null $content database column + * @property string|null $display_class database column + * @property int $visible_in_stream database column + * @property int $commentable database column + * @property JSONArrayObject|null $metadata database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|BlubberComment[] $comments has_many BlubberComment + * @property SimpleORMapCollection|BlubberMention[] $mentions has_many BlubberMention + * @property SimpleORMapCollection|ObjectUserVisit[] $visits has_many ObjectUserVisit + * @property User $user belongs_to User */ class BlubberThread extends SimpleORMap implements PrivacyObject @@ -47,7 +65,7 @@ class BlubberThread extends SimpleORMap implements PrivacyObject 'on_delete' => 'delete', ]; - $config['serialized_fields']['metadata'] = 'JSONArrayObject'; + $config['serialized_fields']['metadata'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/CacheType.php b/lib/models/CacheType.php index 78b9994e597..d1a4ae1a9e0 100644 --- a/lib/models/CacheType.php +++ b/lib/models/CacheType.php @@ -13,11 +13,12 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string cache_id database column - * @property string class_name database column - * @property string display_name database column - * @property int mkdate database column - * @property int chdate database column + * @property int $id alias column for cache_id + * @property int $cache_id database column + * @property string $class_name database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property mixed $display_name additional field */ class CacheType extends SimpleORMap diff --git a/lib/models/CalendarEvent.class.php b/lib/models/CalendarEvent.class.php index 96cc8699777..16ca91aab00 100644 --- a/lib/models/CalendarEvent.class.php +++ b/lib/models/CalendarEvent.class.php @@ -12,18 +12,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string event_id database column - * @property string range_id database column - * @property string group_status database column - * @property string mkdate database column - * @property string chdate database column - * @property string type computed column - * @property string name computed column - * @property string id computed column read/write - * @property user user belongs_to User - * @property course course belongs_to Course - * @property institute institute belongs_to Institute - * @property event belongs_to CalendarEvent + * @property array $id alias for pk + * @property string $range_id database column + * @property string $event_id database column + * @property int $group_status database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|CalendarEvent[] $attendees has_many CalendarEvent + * @property SimpleORMapCollection|ConsultationEvent[] $consultation_events has_many ConsultationEvent + * @property User $user belongs_to User + * @property Course $course belongs_to Course + * @property Institute $institute belongs_to Institute + * @property ConsultationBooking $consultation_booking belongs_to ConsultationBooking + * @property EventData $event has_one EventData + * @property mixed $type additional field + * @property mixed $name additional field + * @property mixed $author_id additional field + * @property mixed $editor_id additional field + * @property mixed $title additional field + * @property mixed $start additional field + * @property mixed $end additional field + * @property-read mixed $owner additional field */ class CalendarEvent extends SimpleORMap implements Event, PrivacyObject { diff --git a/lib/models/CalendarUser.class.php b/lib/models/CalendarUser.class.php index 02fdfceda23..f079ac67c88 100644 --- a/lib/models/CalendarUser.class.php +++ b/lib/models/CalendarUser.class.php @@ -11,6 +11,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.2 + * + * @property array $id alias for pk + * @property string $owner_id database column + * @property string $user_id database column + * @property int $permission database column + * @property int $mkdate database column + * @property int $chdate database column + * @property User $user belongs_to User + * @property User $owner has_one User + * @property-read mixed $nachname additional field + * @property-read mixed $vorname additional field */ class CalendarUser extends SimpleORMap diff --git a/lib/models/Clipboard.class.php b/lib/models/Clipboard.class.php index 2f4d0f2436b..cd8fe89a994 100644 --- a/lib/models/Clipboard.class.php +++ b/lib/models/Clipboard.class.php @@ -4,6 +4,11 @@ /** * Clipboard.class.php - model class for a clipboard (Merkzettel) * + * The Clipboard class extends the wish list functionality of the clipboard + * in the old literature management to allow it to be used in other areas of the + * Stud.IP system. Furthermore, clipboards managed by this class + * are stored permanently in the database until they are deleted. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -14,30 +19,25 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 - */ - - -/** - * The Clipboard class extends the wish list functionality of the clipboard - * in the old literature management to allow it to be used in other areas of the - * Stud.IP system. Furthermore, clipboards managed by this class - * are stored permanently in the database until they are deleted. * - * @property string id database column - * @property string user_id database column - * @property string name database column: The name of the clipboard. - * @property string allowed_item_class database column: The StudipItem class - * name where items have to be children of in order to be used - * with the clipboard. - * This attribute defaults to 'StudipItem' which means that by default - * all implementations of StudipItem can be inserted into a clipboard. - * If only items of a special implementation of StudipItem shall be - * able to be inserted into the clipboard this attribute has to be set - * to the class name of that implementation. - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection user belongs_to User - * @property SimpleORMapCollection items has_many WishListItem + * The "allowed_item_class" column containts the StudipItem class + * name where items have to be children of in order to be used + * with the clipboard. + * This attribute defaults to 'StudipItem' which means that by default + * all implementations of StudipItem can be inserted into a clipboard. + * If only items of a special implementation of StudipItem shall be + * able to be inserted into the clipboard this attribute has to be set + * to the class name of that implementation. + * + * @property int $id database column + * @property string $user_id database column + * @property string $name database column + * @property string $handler database column + * @property string $allowed_item_class database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|ClipboardItem[] $items has_many ClipboardItem + * @property User $user belongs_to User */ class Clipboard extends SimpleORMap { diff --git a/lib/models/ClipboardItem.class.php b/lib/models/ClipboardItem.class.php index b5199ed09f2..030388a8e60 100644 --- a/lib/models/ClipboardItem.class.php +++ b/lib/models/ClipboardItem.class.php @@ -1,10 +1,10 @@ <?php - - /** * ClipboardItem.class.php - model class for clipboard items * (Merkzettel-Einträge) * + * The ClipboardItem class holds single items of a clipboard. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,21 +15,14 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 - */ - - -/** - * The ClipboardItem class holds single items of a clipboard. * - * @property string id database column - * @property string clipboard_id database column - * @property string range_id database column: The ID of the Stud.IP object - * which is stored in this clipboard item. - * @property string range_type database column: The StudipItem class - * corresponding to the range-ID specified in the range_id column. - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection clipboard belongs_to Clipboard + * @property int $id database column + * @property int $clipboard_id database column + * @property string $range_id database column + * @property string $range_type database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Clipboard $clipboard belongs_to Clipboard */ class ClipboardItem extends SimpleORMap { @@ -48,7 +41,7 @@ class ClipboardItem extends SimpleORMap /** - * @returns A string representation of this clipboard item. + * @returns string representation of this clipboard item. */ public function __toString() { diff --git a/lib/models/ColourValue.class.php b/lib/models/ColourValue.class.php index 9b1a899d8aa..6ae05ad2706 100644 --- a/lib/models/ColourValue.class.php +++ b/lib/models/ColourValue.class.php @@ -4,6 +4,9 @@ * ColorValue.class.php * model class for table color_values * + * Objects of this class holds a colour's name (its purpose) + * and the value for the colour. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -14,28 +17,13 @@ * @since 4.5 * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP - */ - - -/** - * Objects of this class holds a colour's name (its purpose) - * and the value for the colour. - * - * @property string colour_id database column: An unique identifier for the colour. - * Recommendation for identifier naming for core system colours: - * <component>.<sub-component (optional)>.<colour name>.<colour variant> - * Example: - * Resources.BookingPlan.Reservation.Bg for the background colour - * of a reservation in a resource's booking plan. - * - * Plugins should use the plugin name as component. * - * @property string value database column: - * The colour value in the hexadecimal format RRGGBBAA - * (see CSS Color Module Level 4). - * @property string description database column - * @property string mkdate database column - * @property string chdate database column + * @property string $id alias column for colour_id + * @property string $colour_id database column + * @property I18NString $description database column + * @property string $value database column + * @property int $mkdate database column + * @property int $chdate database column */ class ColourValue extends SimpleORMap { diff --git a/lib/models/ConfigEntry.class.php b/lib/models/ConfigEntry.class.php index dd91dc69393..5e06da8a8ab 100644 --- a/lib/models/ConfigEntry.class.php +++ b/lib/models/ConfigEntry.class.php @@ -13,15 +13,15 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string id alias column for field - * @property string field database column - * @property string value database column - * @property string type database column - * @property string range database column - * @property string section database column - * @property string mkdate database column - * @property string chdate database column - * @property string description database column + * @property string $id alias column for field + * @property string $field database column + * @property string $value database column + * @property string $type database column + * @property string $range database column + * @property string $section database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string $description database column */ class ConfigEntry extends SimpleORMap diff --git a/lib/models/ConfigValue.php b/lib/models/ConfigValue.php index f5410c93a0c..0b9724802cb 100644 --- a/lib/models/ConfigValue.php +++ b/lib/models/ConfigValue.php @@ -13,15 +13,14 @@ * * @category Stud.IP * - * @property array $id - * @property string $field - * @property string $range_id - * @property string $value - * @property int $mkdate - * @property int $chdate - * @property string $comment - * - * @property ConfigEntry $entry + * @property array $id alias for pk + * @property string $field database column + * @property string $range_id database column + * @property string $value database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string $comment database column + * @property ConfigEntry $entry belongs_to ConfigEntry */ class ConfigValue extends SimpleORMap diff --git a/lib/models/ConsultationBlock.php b/lib/models/ConsultationBlock.php index f35e98b8359..ea792d8af66 100644 --- a/lib/models/ConsultationBlock.php +++ b/lib/models/ConsultationBlock.php @@ -10,30 +10,29 @@ * method when the dev board finally fully supports PHP7 since that * required "yield from". * - * @property string $id alias column for block_id - * @property string $block_id database column + * @property int $id alias column for block_id + * @property int $block_id database column * @property string $range_id database column * @property string $range_type database column * @property int $start database column * @property int $end database column * @property string $room database column - * @property bool $calendar_events database column - * @property bool $show_participants database column - * @property bool $require_reason database column - * @property string $confirmation_text database column + * @property int $calendar_events database column + * @property int $show_participants database column + * @property string $require_reason database column + * @property string|null $confirmation_text database column * @property string $note database column - * @property string $size database column - * @property int $lock_time + * @property int $size database column + * @property int|null $lock_time database column * @property int $mkdate database column * @property int $chdate database column - * - * @property bool $has_bookings computed column - * @property string $range_display - * @property bool $is_expired - * @property Range $range computed column - * @property ConsultationSlot[]|SimpleORMapCollection $slots has_many ConsultationSlot - * @property ConsultationResponsibility[]|SimpleCollection $responsibilities has_many ConsultationResponsibility - * @property User[] $responsible_persons + * @property SimpleORMapCollection|ConsultationSlot[] $slots has_many ConsultationSlot + * @property SimpleORMapCollection|ConsultationResponsibility[] $responsibilities has_many ConsultationResponsibility + * @property mixed $range additional field + * @property-read mixed $range_display additional field + * @property-read mixed $has_bookings additional field + * @property-read mixed $is_expired additional field + * @property-read mixed $responsible_persons additional field */ class ConsultationBlock extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/ConsultationBooking.php b/lib/models/ConsultationBooking.php index 1903249d6a2..06e6967c2a5 100644 --- a/lib/models/ConsultationBooking.php +++ b/lib/models/ConsultationBooking.php @@ -5,15 +5,18 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since Stud.IP 4.3 - * @property string booking_id database column - * @property string id alias column for booking_id - * @property string slot_id database column - * @property string user_id database column - * @property string reason database column - * @property string student_event_id database column - * @property ConsultationSlot slot belongs_to ConsultationSlot - * @property User user belongs_to User - * @property EventData event has_one EventData + * + * @property int $id alias column for booking_id + * @property int $booking_id database column + * @property int $slot_id database column + * @property string $user_id database column + * @property string|null $reason database column + * @property string|null $student_event_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property ConsultationSlot $slot belongs_to ConsultationSlot + * @property User $user belongs_to User + * @property EventData|null $event has_one EventData */ class ConsultationBooking extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/ConsultationEvent.php b/lib/models/ConsultationEvent.php index afc69805ffd..2665c6be1ba 100644 --- a/lib/models/ConsultationEvent.php +++ b/lib/models/ConsultationEvent.php @@ -4,13 +4,13 @@ * @license GPL2 or any later version * @since Stud.IP 5.1 * - * @property int slot_id database column - * @property int id alias column for slot_id - * @property string user_id database column - * @property string event_id database column - * @property int mkdate database column - * @property ConsultationSlot slot belongs_to ConsultationSlot - * @property EventData event belongs_to Event + * @property array $id alias for pk + * @property int $slot_id database column + * @property string $user_id database column + * @property string $event_id database column + * @property int $mkdate database column + * @property ConsultationSlot $slot belongs_to ConsultationSlot + * @property EventData $event has_one EventData */ class ConsultationEvent extends SimpleORMap { diff --git a/lib/models/ConsultationResponsibility.php b/lib/models/ConsultationResponsibility.php index 72cd12eb16b..a446a732fa6 100644 --- a/lib/models/ConsultationResponsibility.php +++ b/lib/models/ConsultationResponsibility.php @@ -4,11 +4,12 @@ * @license GPL2 or any later version * @since Stud.IP 5.1 * - * @property int block_id database column - * @property int id alias column for block_id - * @property string range_id database column - * @property string range_type database column - * @property int mkdate database column + * @property array $id alias for pk + * @property int $block_id database column + * @property string $range_id database column + * @property string $range_type database column + * @property int $mkdate database column + * @property ConsultationBlock $block belongs_to ConsultationBlock */ class ConsultationResponsibility extends SimpleORMap { diff --git a/lib/models/ConsultationSlot.php b/lib/models/ConsultationSlot.php index ab1dfa7ea3f..b9881900b18 100644 --- a/lib/models/ConsultationSlot.php +++ b/lib/models/ConsultationSlot.php @@ -5,15 +5,20 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since Stud.IP 4.3 - * @property string slot_id database column - * @property string id alias column for slot_id - * @property string block_id database column - * @property string start_time database column - * @property string end_time database column - * @property string note database column - * @property SimpleORMapCollection bookings has_many ConsultationBooking - * @property ConsultationBlock block belongs_to ConsultationBlock - * @property SimpleORMapCollection events has_many EventData + * + * @property int $id alias column for slot_id + * @property int $slot_id database column + * @property int $block_id database column + * @property int $start_time database column + * @property int $end_time database column + * @property string $note database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|ConsultationBooking[] $bookings has_many ConsultationBooking + * @property SimpleORMapCollection|ConsultationEvent[] $events has_many ConsultationEvent + * @property ConsultationBlock $block belongs_to ConsultationBlock + * @property-read mixed $has_bookings additional field + * @property-read mixed $is_expired additional field */ class ConsultationSlot extends SimpleORMap { @@ -51,10 +56,10 @@ class ConsultationSlot extends SimpleORMap } }; - $config['additional_fields']['has_bookings']['get'] = function ($slot) { + $config['additional_fields']['has_bookings']['get'] = function ($slot): bool { return count($slot->bookings) > 0; }; - $config['additional_fields']['is_expired']['get'] = function ($slot) { + $config['additional_fields']['is_expired']['get'] = function ($slot): bool { return $slot->end_time < time(); }; diff --git a/lib/models/Contact.class.php b/lib/models/Contact.class.php index 32eae2c74f6..be095de1f12 100644 --- a/lib/models/Contact.class.php +++ b/lib/models/Contact.class.php @@ -5,15 +5,14 @@ * * @author <mlunzena@uos.de> * @license GPL 2 or later - * @property string contact_id database column - * @property string id alias column for contact_id - * @property string owner_id database column - * @property string user_id database column - * @property string buddy database column - * @property string calpermission database column - * @property SimpleORMapCollection group_assignments has_many StatusgruppeUser - * @property User owner belongs_to User - * @property User friend belongs_to User + * + * @property array $id alias for pk + * @property string $owner_id database column + * @property string $user_id database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|StatusgruppeUser[] $group_assignments has_many StatusgruppeUser + * @property User $owner belongs_to User + * @property User $friend belongs_to User */ class Contact extends SimpleORMap { diff --git a/lib/models/ContentTermsOfUse.class.php b/lib/models/ContentTermsOfUse.class.php index 0e939a4cd8a..fb2e592cf68 100644 --- a/lib/models/ContentTermsOfUse.class.php +++ b/lib/models/ContentTermsOfUse.class.php @@ -20,19 +20,24 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string id database column: ID of the content terms of use object - * @property string name database column: Short name of the terms of use object - * @property string position database column: sorting of the entries can be made possible with this attribute - * @property string description database column: Description text of the terms of use object - * @property int download_condition: database column - * 0 = no conditions (downloadable by anyone) - * 1 = closed groups (e.g. courses with signup rules) - * 2 = only for owner - * @property string icon database column: either the name of the icon or the URL that points to the icon + * @property string $id database column + * @property I18NString $name database column + * @property int $position database column + * @property I18NString $description database column + * @property I18NString $student_description database column + * @property int $download_condition database column + * @property string $icon database column + * @property int $is_default database column + * @property int $mkdate database column + * @property int $chdate database column */ class ContentTermsOfUse extends SimpleORMap { + const DOWNLOAD_CONDITION_NONE = 0; // no conditions (downloadable by anyone) + const DOWNLOAD_CONDITION_CLOSED_GROUPS = 1; // closed groups (e.g. courses with signup rules) + const DOWNLOAD_CONDITION_OWNER_ONLY = 2; // only for owner + /** * @var */ @@ -49,7 +54,7 @@ class ContentTermsOfUse extends SimpleORMap $config['i18n_fields']['description'] = true; $config['i18n_fields']['student_description'] = true; - $config['default_values']['download_condition'] = 0; + $config['default_values']['download_condition'] = self::DOWNLOAD_CONDITION_NONE; $config['default_values']['icon'] = 'license'; $config['default_values']['position'] = 0; $config['default_values']['is_default'] = false; @@ -104,9 +109,9 @@ class ContentTermsOfUse extends SimpleORMap public static function getConditions() { return [ - 0 => _('Ohne Bedingung'), - 1 => _('Nur innerhalb geschlossener Veranstaltungen erlaubt'), - 2 => _('Nur für EigentümerIn erlaubt'), + self::DOWNLOAD_CONDITION_NONE => _('Ohne Bedingung'), + self::DOWNLOAD_CONDITION_CLOSED_GROUPS => _('Nur innerhalb geschlossener Veranstaltungen erlaubt'), + self::DOWNLOAD_CONDITION_OWNER_ONLY => _('Nur für EigentümerIn erlaubt'), ]; } @@ -119,9 +124,7 @@ class ContentTermsOfUse extends SimpleORMap public static function describeCondition($condition) { $conditions = self::getConditions(); - return isset($conditions[$condition]) - ? $conditions[$condition] - : _('Nicht definiert'); + return $conditions[$condition] ?? _('Nicht definiert'); } /** @@ -192,7 +195,7 @@ class ContentTermsOfUse extends SimpleORMap return true; } } - if ($this->download_condition == 1) { + if ($this->download_condition == self::DOWNLOAD_CONDITION_CLOSED_GROUPS) { //the content is only downloadable when the user is inside a closed group //(referenced by range_id). If download_condition is set to 2 @@ -213,7 +216,7 @@ class ContentTermsOfUse extends SimpleORMap return false; } - if ($this->download_condition == 2) { + if ($this->download_condition == self::DOWNLOAD_CONDITION_OWNER_ONLY) { return false; } diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php index 90053733201..c449922b65e 100644 --- a/lib/models/Course.class.php +++ b/lib/models/Course.class.php @@ -13,64 +13,71 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string seminar_id database column - * @property string id alias column for seminar_id - * @property string veranstaltungsnummer database column - * @property string institut_id database column - * @property string name database column - * @property string untertitel database column - * @property string status database column - * @property string beschreibung database column - * @property string ort database column - * @property string sonstiges database column - * @property string lesezugriff database column - * @property string schreibzugriff database column - * @property string start_time database column - * @property string duration_time database column - * @property string art database column - * @property string teilnehmer database column - * @property string vorrausetzungen database column - * @property string lernorga database column - * @property string leistungsnachweis database column - * @property string mkdate database column - * @property string chdate database column - * @property string ects database column - * @property string admission_turnout database column - * @property string admission_binding database column - * @property string admission_prelim database column - * @property string admission_prelim_txt database column - * @property string admission_disable_waitlist database column - * @property string visible database column - * @property string showscore database column - * @property string modules database column - * @property string aux_lock_rule database column - * @property string aux_lock_rule_forced database column - * @property string lock_rule database column - * @property string admission_waitlist_max database column - * @property string admission_disable_waitlist_move database column - * @property string completion database column - * @property string parent_course database column - * @property string end_time computed column read/write - * @property SimpleORMapCollection topics has_many CourseTopic - * @property SimpleORMapCollection dates has_many CourseDate - * @property SimpleORMapCollection ex_dates has_many CourseExDate - * @property SimpleORMapCollection members has_many CourseMember - * @property SimpleORMapCollection deputies has_many Deputy - * @property SimpleORMapCollection statusgruppen has_many Statusgruppen - * @property SimpleORMapCollection admission_applicants has_many AdmissionApplication - * @property SimpleORMapCollection datafields has_many DatafieldEntryModel - * @property SimpleORMapCollection cycles has_many SeminarCycleDate - * @property Semester[]|SimpleORMapCollection $semesters belongs_to Semester - * @property Semester start_semester belongs_to Semester - * @property Semester end_semester belongs_to Semester - * @property Institute home_institut belongs_to Institute - * @property AuxLockRule aux belongs_to AuxLockRule - * @property SimpleORMapCollection study_areas has_and_belongs_to_many StudipStudyArea - * @property SimpleORMapCollection institutes has_and_belongs_to_many Institute - * @property Course parent belongs_to Course - * @property SimpleORMapCollection children has_many Course - * @property CourseConfig config additional field - * @property ?\Courseware\StructuralElement $courseware has_one + * @property string $id alias column for seminar_id + * @property string $seminar_id database column + * @property string|null $veranstaltungsnummer database column + * @property string $institut_id database column + * @property I18NString $name database column + * @property I18NString|null $untertitel database column + * @property int $status database column + * @property I18NString $beschreibung database column + * @property I18NString|null $ort database column + * @property string|null $sonstiges database column + * @property int $lesezugriff database column + * @property int $schreibzugriff database column + * @property int|null $start_time database column + * @property int|null $duration_time database column + * @property I18NString|null $art database column + * @property I18NString|null $teilnehmer database column + * @property I18NString|null $vorrausetzungen database column + * @property I18NString|null $lernorga database column + * @property I18NString|null $leistungsnachweis database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $ects database column + * @property int|null $admission_turnout database column + * @property int|null $admission_binding database column + * @property int $admission_prelim database column + * @property string|null $admission_prelim_txt database column + * @property int $admission_disable_waitlist database column + * @property int $visible database column + * @property int|null $showscore database column + * @property string|null $aux_lock_rule database column + * @property int $aux_lock_rule_forced database column + * @property string|null $lock_rule database column + * @property int $admission_waitlist_max database column + * @property int $admission_disable_waitlist_move database column + * @property int $completion database column + * @property string|null $parent_course database column + * @property SimpleORMapCollection|CourseTopic[] $topics has_many CourseTopic + * @property SimpleORMapCollection|CourseDate[] $dates has_many CourseDate + * @property SimpleORMapCollection|CourseExDate[] $ex_dates has_many CourseExDate + * @property SimpleORMapCollection|CourseMember[] $members has_many CourseMember + * @property SimpleORMapCollection|Deputy[] $deputies has_many Deputy + * @property SimpleORMapCollection|Statusgruppen[] $statusgruppen has_many Statusgruppen + * @property SimpleORMapCollection|AdmissionApplication[] $admission_applicants has_many AdmissionApplication + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property SimpleORMapCollection|SeminarCycleDate[] $cycles has_many SeminarCycleDate + * @property SimpleORMapCollection|BlubberThread[] $blubberthreads has_many BlubberThread + * @property SimpleORMapCollection|ConsultationBlock[] $consultation_blocks has_many ConsultationBlock + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|Course[] $children has_many Course + * @property SimpleORMapCollection|ToolActivation[] $tools has_many ToolActivation + * @property SimpleORMapCollection|CourseMemberNotification[] $member_notifications has_many CourseMemberNotification + * @property SimpleORMapCollection|Courseware\Unit[] $courseware_units has_many Courseware\Unit + * @property Institute $home_institut belongs_to Institute + * @property AuxLockRule|null $aux belongs_to AuxLockRule + * @property Course|null $parent belongs_to Course + * @property SimpleORMapCollection|Semester[] $semesters has_and_belongs_to_many Semester + * @property SimpleORMapCollection|StudipStudyArea[] $study_areas has_and_belongs_to_many StudipStudyArea + * @property SimpleORMapCollection|Institute[] $institutes has_and_belongs_to_many Institute + * @property SimpleORMapCollection|UserDomain[] $domains has_and_belongs_to_many UserDomain + * @property-read mixed $teachers additional field + * @property mixed $end_time additional field + * @property mixed $start_semester additional field + * @property mixed $end_semester additional field + * @property-read mixed $semester_text additional field + * @property-read mixed $config additional field */ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, FeedbackRange diff --git a/lib/models/CourseCancelledEvent.class.php b/lib/models/CourseCancelledEvent.class.php index de2e4de2454..5fed9c53989 100644 --- a/lib/models/CourseCancelledEvent.class.php +++ b/lib/models/CourseCancelledEvent.class.php @@ -10,6 +10,44 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * + * @property string $id alias for pk + * @property string $termin_id database column + * @property string $event_id alias column for termin_id + * @property string $range_id database column + * @property string $sem_id alias column for range_id + * @property string $autor_id database column + * @property string $author_id alias column for autor_id + * @property string $content database column + * @property string $ex_description alias column for content + * @property int $date database column + * @property int $start alias column for date + * @property int $end_time database column + * @property int $end alias column for end_time + * @property int $mkdate database column + * @property int $chdate database column + * @property int $date_typ database column + * @property int $category_intern alias column for date_typ + * @property string|null $raum database column + * @property string|null $metadate_id database column + * @property string $resource_id database column + * @property SimpleORMapCollection|Folder[] $folders has_many Folder + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|ResourceRequestAppointment[] $resource_request_appointments has_many ResourceRequestAppointment + * @property User $author belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate|null $cycle belongs_to SeminarCycleDate + * @property ResourceBooking $room_booking has_one ResourceBooking + * @property SimpleORMapCollection|CourseTopic[] $topics has_and_belongs_to_many CourseTopic + * @property SimpleORMapCollection|Statusgruppen[] $statusgruppen has_and_belongs_to_many Statusgruppen + * @property SimpleORMapCollection|User[] $dozenten has_and_belongs_to_many User + * @property-read mixed $location additional field + * @property mixed $type additional field + * @property-read mixed $name additional field + * @property-read mixed $title additional field + * @property-read mixed $editor_id additional field + * @property-read mixed $uid additional field + * @property-read mixed $summary additional field + * @property-read mixed $description additional field */ class CourseCancelledEvent extends CourseEvent diff --git a/lib/models/CourseDate.class.php b/lib/models/CourseDate.class.php index 9ae0268e490..5ba3534df03 100644 --- a/lib/models/CourseDate.class.php +++ b/lib/models/CourseDate.class.php @@ -10,27 +10,28 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string termin_id database column - * @property string id alias column for termin_id - * @property string range_id database column - * @property string autor_id database column - * @property string content database column - * @property string date database column - * @property string end_time database column - * @property string mkdate database column - * @property string chdate database column - * @property string date_typ database column - * @property string topic_id database column - * @property string raum database column - * @property string metadate_id database column - * @property User author belongs_to User - * @property Course course belongs_to Course - * @property SeminarCycleDate cycle belongs_to SeminarCycleDate - * @property RoomRequest room_requests has_many RoomRequest - * @property ResourceBooking room_booking has_one ResourceBooking - * @property SimpleORMapCollection topics has_and_belongs_to_many CourseTopic - * @property SimpleORMapCollection statusgruppen has_and_belongs_to_many Statusgruppen - * @property SimpleORMapCollection dozenten has_and_belongs_to_many User + * @property string $id alias column for termin_id + * @property string $termin_id database column + * @property string $range_id database column + * @property string $autor_id database column + * @property string $content database column + * @property int $date database column + * @property int $end_time database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $date_typ database column + * @property string|null $raum database column + * @property string|null $metadate_id database column + * @property SimpleORMapCollection|Folder[] $folders has_many Folder + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|ResourceRequestAppointment[] $resource_request_appointments has_many ResourceRequestAppointment + * @property User $author belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate|null $cycle belongs_to SeminarCycleDate + * @property ResourceBooking $room_booking has_one ResourceBooking + * @property SimpleORMapCollection|CourseTopic[] $topics has_and_belongs_to_many CourseTopic + * @property SimpleORMapCollection|Statusgruppen[] $statusgruppen has_and_belongs_to_many Statusgruppen + * @property SimpleORMapCollection|User[] $dozenten has_and_belongs_to_many User */ class CourseDate extends SimpleORMap implements PrivacyObject diff --git a/lib/models/CourseEvent.class.php b/lib/models/CourseEvent.class.php index 2d564b5dd4f..0dee26a8c59 100644 --- a/lib/models/CourseEvent.class.php +++ b/lib/models/CourseEvent.class.php @@ -10,6 +10,42 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * + * @property string $id alias for pk + * @property string $termin_id database column + * @property string $event_id alias column for termin_id + * @property string $range_id database column + * @property string $sem_id alias column for range_id + * @property string $autor_id database column + * @property string $author_id alias column for autor_id + * @property string $content database column + * @property int $date database column + * @property int $start alias column for date + * @property int $end_time database column + * @property int $end alias column for end_time + * @property int $mkdate database column + * @property int $chdate database column + * @property int $date_typ database column + * @property int $category_intern alias column for date_typ + * @property string|null $raum database column + * @property string|null $metadate_id database column + * @property SimpleORMapCollection|Folder[] $folders has_many Folder + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|ResourceRequestAppointment[] $resource_request_appointments has_many ResourceRequestAppointment + * @property User $author belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate|null $cycle belongs_to SeminarCycleDate + * @property ResourceBooking $room_booking has_one ResourceBooking + * @property SimpleORMapCollection|CourseTopic[] $topics has_and_belongs_to_many CourseTopic + * @property SimpleORMapCollection|Statusgruppen[] $statusgruppen has_and_belongs_to_many Statusgruppen + * @property SimpleORMapCollection|User[] $dozenten has_and_belongs_to_many User + * @property-read mixed $location additional field + * @property mixed $type additional field + * @property-read mixed $name additional field + * @property-read mixed $title additional field + * @property-read mixed $editor_id additional field + * @property-read mixed $uid additional field + * @property-read mixed $summary additional field + * @property-read mixed $description additional field */ class CourseEvent extends CourseDate implements Event diff --git a/lib/models/CourseExDate.class.php b/lib/models/CourseExDate.class.php index f2c75b51610..993767a37b8 100644 --- a/lib/models/CourseExDate.class.php +++ b/lib/models/CourseExDate.class.php @@ -10,26 +10,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string termin_id database column - * @property string id alias column for termin_id - * @property string range_id database column - * @property string autor_id database column - * @property string content database column - * @property string date database column - * @property string end_time database column - * @property string mkdate database column - * @property string chdate database column - * @property string date_typ database column - * @property string topic_id database column - * @property string raum database column - * @property string metadate_id database column - * @property string resource_id database column - * @property string topics computed column - * @property string statusgruppen computed column - * @property string dozenten computed column - * @property User author belongs_to User - * @property Course course belongs_to Course - * @property SeminarCycleDate cycle belongs_to SeminarCycleDate + * @property string $id alias column for termin_id + * @property string $termin_id database column + * @property string $range_id database column + * @property string $autor_id database column + * @property string $content database column + * @property int $date database column + * @property int $end_time database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $date_typ database column + * @property string|null $raum database column + * @property string|null $metadate_id database column + * @property string $resource_id database column + * @property User $author belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate|null $cycle belongs_to SeminarCycleDate + * @property-read mixed $topics additional field + * @property-read mixed $statusgruppen additional field + * @property-read mixed $dozenten additional field + * @property-read mixed $room_booking additional field + * @property-read mixed $room_request additional field */ class CourseExDate extends SimpleORMap implements PrivacyObject diff --git a/lib/models/CourseMarkedEvent.class.php b/lib/models/CourseMarkedEvent.class.php index 76cc050702c..96f030043d5 100644 --- a/lib/models/CourseMarkedEvent.class.php +++ b/lib/models/CourseMarkedEvent.class.php @@ -10,6 +10,42 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * + * @property string $id alias for pk + * @property string $termin_id database column + * @property string $event_id alias column for termin_id + * @property string $range_id database column + * @property string $sem_id alias column for range_id + * @property string $autor_id database column + * @property string $author_id alias column for autor_id + * @property string $content database column + * @property int $date database column + * @property int $start alias column for date + * @property int $end_time database column + * @property int $end alias column for end_time + * @property int $mkdate database column + * @property int $chdate database column + * @property int $date_typ database column + * @property int $category_intern alias column for date_typ + * @property string|null $raum database column + * @property string|null $metadate_id database column + * @property SimpleORMapCollection|Folder[] $folders has_many Folder + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|ResourceRequestAppointment[] $resource_request_appointments has_many ResourceRequestAppointment + * @property User $author belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate|null $cycle belongs_to SeminarCycleDate + * @property ResourceBooking $room_booking has_one ResourceBooking + * @property SimpleORMapCollection|CourseTopic[] $topics has_and_belongs_to_many CourseTopic + * @property SimpleORMapCollection|Statusgruppen[] $statusgruppen has_and_belongs_to_many Statusgruppen + * @property SimpleORMapCollection|User[] $dozenten has_and_belongs_to_many User + * @property-read mixed $location additional field + * @property mixed $type additional field + * @property-read mixed $name additional field + * @property-read mixed $title additional field + * @property-read mixed $editor_id additional field + * @property-read mixed $uid additional field + * @property-read mixed $summary additional field + * @property-read mixed $description additional field */ class CourseMarkedEvent extends CourseEvent diff --git a/lib/models/CourseMember.class.php b/lib/models/CourseMember.class.php index 0988c5ae93f..cb32abc093d 100644 --- a/lib/models/CourseMember.class.php +++ b/lib/models/CourseMember.class.php @@ -13,28 +13,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string seminar_id database column - * @property string user_id database column - * @property string status database column - * @property string position database column - * @property string gruppe database column - * @property string notification database column - * @property string mkdate database column - * @property string comment database column - * @property string visible database column - * @property string label database column - * @property string bind_calendar database column - * @property string vorname computed column read/write - * @property string nachname computed column read/write - * @property string username computed column read/write - * @property string email computed column read/write - * @property string title_front computed column read/write - * @property string title_rear computed column read/write - * @property string course_name computed column read/write - * @property string id computed column read/write - * @property SimpleORMapCollection datafields has_many DatafieldEntryModel - * @property User user belongs_to User - * @property Course course belongs_to Course + * @property array $id alias for pk + * @property string $seminar_id database column + * @property string $user_id database column + * @property string $status database column + * @property int $position database column + * @property int $gruppe database column + * @property int $mkdate database column + * @property string $comment database column + * @property string $visible database column + * @property string $label database column + * @property int $bind_calendar database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property User $user belongs_to User + * @property Course $course belongs_to Course + * @property mixed $vorname additional field + * @property mixed $nachname additional field + * @property mixed $username additional field + * @property mixed $email additional field + * @property mixed $title_front additional field + * @property mixed $title_rear additional field + * @property mixed $course_name additional field */ class CourseMember extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/CourseMemberNotification.php b/lib/models/CourseMemberNotification.php index 3a1f072f13f..e72ba762be2 100644 --- a/lib/models/CourseMemberNotification.php +++ b/lib/models/CourseMemberNotification.php @@ -13,15 +13,14 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string seminar_id database column - * @property string user_id database column - * @property string notifications database column - * @property string mkdate database column - * @property string chdate database column - * @property User user belongs_to User - * @property Course course belongs_to Course - * - * @property JSONArrayObject notification_data + * @property array $id alias for pk + * @property string $user_id database column + * @property string $seminar_id database column + * @property JSONArrayObject|null $notification_data database column + * @property int $chdate database column + * @property int $mkdate database column + * @property User $user belongs_to User + * @property Course $course belongs_to Course */ class CourseMemberNotification extends SimpleORMap implements PrivacyObject { @@ -36,7 +35,7 @@ class CourseMemberNotification extends SimpleORMap implements PrivacyObject 'class_name' => Course::class, 'foreign_key' => 'seminar_id', ]; - $config['serialized_fields']['notification_data'] = 'JSONArrayObject'; + $config['serialized_fields']['notification_data'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/CourseTopic.class.php b/lib/models/CourseTopic.class.php index 61468d700db..eb26efa5adf 100644 --- a/lib/models/CourseTopic.class.php +++ b/lib/models/CourseTopic.class.php @@ -10,19 +10,21 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string issue_id database column - * @property string id alias column for issue_id - * @property string seminar_id database column - * @property string author_id database column - * @property string title database column - * @property string description database column - * @property string priority database column - * @property string mkdate database column - * @property string chdate database column - * @property Folder folder belongs_to DocumentFolder - * @property Course course belongs_to Course - * @property User author belongs_to User - * @property SimpleORMapCollection dates has_and_belongs_to_many CourseDate + * @property string $id alias column for issue_id + * @property string $issue_id database column + * @property string $seminar_id database column + * @property string $author_id database column + * @property I18NString $title database column + * @property I18NString $description database column + * @property int $priority database column + * @property int $paper_related database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|Folder[] $folders has_many Folder + * @property Course $course belongs_to Course + * @property User $author belongs_to User + * @property SimpleORMapCollection|CourseDate[] $dates has_and_belongs_to_many CourseDate + * @property-read mixed $forum_thread_url additional field */ class CourseTopic extends SimpleORMap { diff --git a/lib/models/CourseWizardStepRegistry.php b/lib/models/CourseWizardStepRegistry.php index 4f9eb6fc502..7c473c4e9ca 100644 --- a/lib/models/CourseWizardStepRegistry.php +++ b/lib/models/CourseWizardStepRegistry.php @@ -12,6 +12,14 @@ * @copyright 2015 Stud.IP Core-Group * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP + * + * @property string $id database column + * @property string $name database column + * @property string $classname database column + * @property int $number database column + * @property int $enabled database column + * @property int $mkdate database column + * @property int $chdate database column */ class CourseWizardStepRegistry extends SimpleORMap @@ -48,4 +56,4 @@ class CourseWizardStepRegistry extends SimpleORMap return sizeof(self::findBySQL("`enabled`=1")) > 0 ? true : false; } -} \ No newline at end of file +} diff --git a/lib/models/Courseware/Block.php b/lib/models/Courseware/Block.php index f5d8b202acb..b7948323438 100644 --- a/lib/models/Courseware/Block.php +++ b/lib/models/Courseware/Block.php @@ -14,27 +14,27 @@ use User; * * @since Stud.IP 5.0 * - * @property int $id database column - * @property int $container_id database column - * @property string $owner_id database column - * @property string $editor_id database column - * @property string $edit_blocker_id database column - * @property int $position database column - * @property string $block_type database column - * @property int $visible database column - * @property string $payload database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \Courseware\BlockTypes\BlockType $type computed column read/write - * @property string $files computed column - * @property \SimpleORMapCollection $data_fields has_many Courseware\UserDataField - * @property \SimpleORMapCollection $comments has_many Courseware\BlockComment - * @property \SimpleORMapCollection $block_feedback has_many Courseware\BlockFeedback - * @property \SimpleORMapCollection $progresses has_many Courseware\UserProgress - * @property \User $owner belongs_to User - * @property \User $editor belongs_to User - * @property \User $edit_blocker belongs_to User - * @property \Courseware\Container $container belongs_to Courseware\Container + * @property int $id database column + * @property int $container_id database column + * @property string $owner_id database column + * @property string $editor_id database column + * @property string|null $edit_blocker_id database column + * @property int $position database column + * @property string|null $block_type database column + * @property int $visible database column + * @property string $payload database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \SimpleORMapCollection|UserDataField[] $data_fields has_many UserDataField + * @property \SimpleORMapCollection|BlockComment[] $comments has_many BlockComment + * @property \SimpleORMapCollection|BlockFeedback[] $block_feedback has_many BlockFeedback + * @property \SimpleORMapCollection|UserProgress[] $progresses has_many UserProgress + * @property \User $owner belongs_to \User + * @property \User $editor belongs_to \User + * @property \User|null $edit_blocker belongs_to \User + * @property Container $container belongs_to Container + * @property mixed $type additional field + * @property-read mixed $files additional field */ class Block extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/BlockComment.php b/lib/models/Courseware/BlockComment.php index fc6811120b1..6191e1afd8b 100644 --- a/lib/models/Courseware/BlockComment.php +++ b/lib/models/Courseware/BlockComment.php @@ -14,14 +14,14 @@ use User; * * @since Stud.IP 5.0 * - * @property int $id database column - * @property int $block_id database column - * @property string $user_id database column - * @property string $comment database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $user belongs_to User - * @property \Courseware\Block $block belongs_to Courseware\Block + * @property int $id database column + * @property int $block_id database column + * @property string $user_id database column + * @property string $comment database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property Block $block belongs_to Block */ class BlockComment extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/BlockFeedback.php b/lib/models/Courseware/BlockFeedback.php index 21eed5d0a37..1be3b3c3d81 100644 --- a/lib/models/Courseware/BlockFeedback.php +++ b/lib/models/Courseware/BlockFeedback.php @@ -12,14 +12,14 @@ use User; * * @since Stud.IP 5.0 * - * @property int $id database column - * @property int $block_id database column - * @property string $user_id database column - * @property string $feedback database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $user belongs_to User - * @property \Courseware\Block $block belongs_to Courseware\Block + * @property int $id database column + * @property int $block_id database column + * @property string $user_id database column + * @property string $feedback database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property Block $block belongs_to Block */ class BlockFeedback extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/Bookmark.php b/lib/models/Courseware/Bookmark.php index ddff953a289..0cd4c59ac6b 100644 --- a/lib/models/Courseware/Bookmark.php +++ b/lib/models/Courseware/Bookmark.php @@ -12,13 +12,13 @@ namespace Courseware; * * @since Stud.IP 5.0 * - * @property array $id computed column read/write - * @property string $user_id database column - * @property int $element_id database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $user belongs_to User - * @property \Courseware\StructuralElement $element belongs_to Courseware\StructuralElement + * @property array $id alias for pk + * @property string $user_id database column + * @property int $element_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property StructuralElement $element belongs_to StructuralElement */ class Bookmark extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/Certificate.php b/lib/models/Courseware/Certificate.php index d0c9fd9a5e1..579c729d4be 100644 --- a/lib/models/Courseware/Certificate.php +++ b/lib/models/Courseware/Certificate.php @@ -12,10 +12,13 @@ use \User, \Course; * * @since Stud.IP 5.3 * - * @property string $id database column - * @property string $user_id database column - * @property string $course_id database column - * @property int $mkdate database column + * @property string $id database column + * @property string $user_id database column + * @property string $course_id database column + * @property int $unit_id database column + * @property int $mkdate database column + * @property \User $user belongs_to \User + * @property \Course $course belongs_to \Course */ class Certificate extends \SimpleORMap { diff --git a/lib/models/Courseware/Container.php b/lib/models/Courseware/Container.php index ac5ef60bbcc..a4f773fa9cc 100644 --- a/lib/models/Courseware/Container.php +++ b/lib/models/Courseware/Container.php @@ -2,6 +2,7 @@ namespace Courseware; +use JSONArrayObject; use User; /** @@ -14,24 +15,24 @@ use User; * * @since Stud.IP 5.0 * - * @property int $id database column - * @property int $structural_element_id database column - * @property string $owner_id database column - * @property string $editor_id database column - * @property string $edit_blocker_id database column - * @property int $position database column - * @property int $site database column - * @property string $container_type database column - * @property int $visible database column - * @property string $payload database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \Courseware\ContainerTypes\ContainerType $type computed column read/write - * @property \SimpleORMapCollection $blocks has_many Courseware\Block - * @property \User $owner belongs_to User - * @property \User $editor belongs_to User - * @property \User $edit_blocker belongs_to User - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\StructuralElement + * @property int $id database column + * @property int $structural_element_id database column + * @property string $owner_id database column + * @property string $editor_id database column + * @property string|null $edit_blocker_id database column + * @property int $position database column + * @property int $site database column + * @property string $container_type database column + * @property int $visible database column + * @property \JSONArrayObject $payload database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \SimpleORMapCollection|Block[] $blocks has_many Block + * @property \User $owner belongs_to \User + * @property \User $editor belongs_to \User + * @property \User|null $edit_blocker belongs_to \User + * @property StructuralElement $structural_element belongs_to StructuralElement + * @property mixed $type additional field */ class Container extends \SimpleORMap implements \PrivacyObject { @@ -39,7 +40,7 @@ class Container extends \SimpleORMap implements \PrivacyObject { $config['db_table'] = 'cw_containers'; - $config['serialized_fields']['payload'] = 'JSONArrayObject'; + $config['serialized_fields']['payload'] = JSONArrayObject::class; $config['has_many']['blocks'] = [ 'class_name' => Block::class, @@ -145,7 +146,7 @@ class Container extends \SimpleORMap implements \PrivacyObject 'payload' => $this['payload'], ]); - list($blockMapIds, $blockMapObjs) = $this->copyBlocks($user, $container); + [$blockMapIds, $blockMapObjs] = $this->copyBlocks($user, $container); $container['payload'] = $container->type->copyPayload($blockMapIds); diff --git a/lib/models/Courseware/PublicLink.php b/lib/models/Courseware/PublicLink.php index d02e077b1a0..16e61dc94e4 100644 --- a/lib/models/Courseware/PublicLink.php +++ b/lib/models/Courseware/PublicLink.php @@ -10,12 +10,15 @@ namespace Courseware; * * @since Stud.IP 5.2 * -* @property string $id database column -* @property int $structural_element_id database column -* @property string $password database column -* @property int $expire_date database column -* @property int $mkdate database column -* @property int $chdate database column + * + * @property string $id database column + * @property string $user_id database column + * @property int $structural_element_id database column + * @property string $password database column + * @property int $expire_date database column + * @property int $mkdate database column + * @property int $chdate database column + * @property StructuralElement $structural_element belongs_to StructuralElement */ class PublicLink extends \SimpleORMap { diff --git a/lib/models/Courseware/StructuralElement.php b/lib/models/Courseware/StructuralElement.php index 8c6d1ded615..940547ec65c 100644 --- a/lib/models/Courseware/StructuralElement.php +++ b/lib/models/Courseware/StructuralElement.php @@ -2,6 +2,7 @@ namespace Courseware; +use JSONArrayObject; use User; /** @@ -14,45 +15,42 @@ use User; * * @since Stud.IP 5.0 * - * @property int $id database column - * @property int $parent_id database column - * @property int $is_link database column - * @property int $target_id database column - * @property string $range_id database column - * @property string $range_type database column - * @property string $owner_id database column - * @property string $editor_id database column - * @property string $edit_blocker_id database column - * @property int $position database column - * @property string $title database column - * @property string $image_id database column - * @property string $image_type database column - * @property string $purpose database column - * @property \JSONArrayObject $payload database column - * @property int $public database column - * @property string $release_date database column - * @property string $withdraw_date database column - * @property \JSONArrayObject $read_approval database column - * @property \JSONArrayObject $write_approval database column - * @property \JSONArrayObject $copy_approval database column - * @property \JSONArrayObject $external_relations database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \SimpleORMapCollection $children has_many Courseware\StructuralElement - * @property \SimpleORMapCollection $containers has_many Courseware\Container - * @property ?\Courseware\StructuralElement $parent belongs_to Courseware\StructuralElement - * @property \User $user belongs_to User - * @property \Course $course belongs_to Course - * @property \User $owner belongs_to User - * @property \User $editor belongs_to User - * @property ?\User $edit_blocker belongs_to User - * @property \FileRef|\StockImage|null $image has_one FileRef or StockImage - * @property ?\Courseware\Task $task has_one Courseware\Task - * @property \SimpleORMapCollection $comments has_many Courseware\StructuralElementComment - * @property \SimpleORMapCollection $feedback has_many Courseware\StructuralElementFeedback - * - * @SuppressWarnings(PHPMD.TooManyPublicMethods) - * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @property int $id database column + * @property int|null $parent_id database column + * @property int $is_link database column + * @property int|null $target_id database column + * @property string $range_id database column + * @property string|null $range_type database column + * @property string $owner_id database column + * @property string $editor_id database column + * @property string|null $edit_blocker_id database column + * @property int $position database column + * @property string $title database column + * @property string|null $image_id database column + * @property string $image_type database column + * @property string|null $purpose database column + * @property \JSONArrayObject $payload database column + * @property int $public database column + * @property int $release_date database column + * @property int $withdraw_date database column + * @property \JSONArrayObject $read_approval database column + * @property \JSONArrayObject $write_approval database column + * @property \JSONArrayObject $copy_approval database column + * @property \JSONArrayObject $external_relations database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \SimpleORMapCollection|StructuralElement[] $children has_many StructuralElement + * @property \SimpleORMapCollection|Container[] $containers has_many Container + * @property \SimpleORMapCollection|StructuralElementComment[] $comments has_many StructuralElementComment + * @property \SimpleORMapCollection|StructuralElementFeedback[] $feedback has_many StructuralElementFeedback + * @property StructuralElement|null $parent belongs_to StructuralElement + * @property \User $user belongs_to \User + * @property \Course $course belongs_to \Course + * @property \User $owner belongs_to \User + * @property \User $editor belongs_to \User + * @property \User|null $edit_blocker belongs_to \User + * @property Task $task has_one Task + * @property mixed $image additional field */ class StructuralElement extends \SimpleORMap implements \PrivacyObject { @@ -60,11 +58,11 @@ class StructuralElement extends \SimpleORMap implements \PrivacyObject { $config['db_table'] = 'cw_structural_elements'; - $config['serialized_fields']['payload'] = 'JSONArrayObject'; - $config['serialized_fields']['read_approval'] = 'JSONArrayObject'; - $config['serialized_fields']['write_approval'] = 'JSONArrayObject'; - $config['serialized_fields']['copy_approval'] = 'JSONArrayObject'; - $config['serialized_fields']['external_relations'] = 'JSONArrayObject'; + $config['serialized_fields']['payload'] = JSONArrayObject::class; + $config['serialized_fields']['read_approval'] = JSONArrayObject::class; + $config['serialized_fields']['write_approval'] = JSONArrayObject::class; + $config['serialized_fields']['copy_approval'] = JSONArrayObject::class; + $config['serialized_fields']['external_relations'] = JSONArrayObject::class; $config['has_many']['children'] = [ 'class_name' => StructuralElement::class, @@ -898,7 +896,7 @@ SQL; $element->store(); - list($containerMap, $blockMap) = $this->copyContainers($user, $element); + [$containerMap, $blockMap] = $this->copyContainers($user, $element); $mappingId = $recursiveId === '' ? $this->id . '_' . $element->id : $recursiveId; if (!isset($mapping[$mappingId])) { @@ -1003,7 +1001,7 @@ SQL; $containerMap = []; $blockMap = []; foreach ($this->containers as $container) { - list($newContainer, $blockMapsObjs) = $container->copy($user, $newElement); + [$newContainer, $blockMapsObjs] = $container->copy($user, $newElement); $containerMap[$container->id] = $newContainer->id; $blockMap = $blockMap + $blockMapsObjs; } diff --git a/lib/models/Courseware/StructuralElementComment.php b/lib/models/Courseware/StructuralElementComment.php index 1e046c4d4e7..5ce4003f1fd 100644 --- a/lib/models/Courseware/StructuralElementComment.php +++ b/lib/models/Courseware/StructuralElementComment.php @@ -12,14 +12,14 @@ use User; * * @since Stud.IP 5.1 * - * @property int $id database column - * @property int $structural_element_id database column - * @property string $user_id database column - * @property string $comment database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $user belongs_to User - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\StructuralElement + * @property int $id database column + * @property int $structural_element_id database column + * @property string $user_id database column + * @property string $comment database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property StructuralElement $structural_element belongs_to StructuralElement */ class StructuralElementComment extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/StructuralElementFeedback.php b/lib/models/Courseware/StructuralElementFeedback.php index c7435d06b67..f13d4731495 100644 --- a/lib/models/Courseware/StructuralElementFeedback.php +++ b/lib/models/Courseware/StructuralElementFeedback.php @@ -12,14 +12,14 @@ use User; * * @since Stud.IP 5.1 * - * @property int $id database column - * @property int $structural_element_id database column - * @property string $user_id database column - * @property string $feedback database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $user belongs_to User - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\StructuralElement + * @property int $id database column + * @property int $structural_element_id database column + * @property string $user_id database column + * @property string $feedback database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property StructuralElement $structural_element belongs_to StructuralElement */ class StructuralElementFeedback extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/Task.php b/lib/models/Courseware/Task.php index d8ecb80bf20..3a68d3e4ffe 100644 --- a/lib/models/Courseware/Task.php +++ b/lib/models/Courseware/Task.php @@ -16,20 +16,22 @@ use User; * @property int $task_group_id database column * @property int $structural_element_id database column * @property string $solver_id database column - * @property string $solver_type database column + * @property string|null $solver_type database column * @property int $submission_date database column * @property int $submitted database column - * @property string $renewal database column + * @property string|null $renewal database column * @property int $renewal_date database column - * @property int $feedback_id database column + * @property int|null $feedback_id database column * @property int $mkdate database column * @property int $chdate database column - * @property \Courseware\TaskGroup $task_group belongs_to Courseware\TaskGroup - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\TaskGroup - * @property \User $user belongs_to User - * @property \Statusgruppen $group belongs_to Statusgruppen - * @property \Courseware\TaskFeedback $task_feedback belongs_to Courseware\TaskFeedback - * @property-read \User|\Statusgruppen|null $solver belongs_to User or Statusgruppen + * @property TaskGroup $task_group belongs_to TaskGroup + * @property StructuralElement $structural_element belongs_to StructuralElement + * @property \User $lecturer belongs_to \User + * @property \User $user belongs_to \User + * @property \Statusgruppen $group belongs_to \Statusgruppen + * @property \Course $course belongs_to \Course + * @property TaskFeedback|null $task_feedback belongs_to TaskFeedback + * @property mixed $solver additional field */ class Task extends \SimpleORMap { diff --git a/lib/models/Courseware/TaskFeedback.php b/lib/models/Courseware/TaskFeedback.php index 987aae9f5c0..2c549ad5709 100644 --- a/lib/models/Courseware/TaskFeedback.php +++ b/lib/models/Courseware/TaskFeedback.php @@ -12,15 +12,15 @@ use User; * * @since Stud.IP 5.1 * -* @property int $id database column -* @property int $task_id database column -* @property string $lecturer_id database column -* @property string $content database column -* @property int $mkdate database column -* @property int $chdate database column - -* @property \User $lecturer belongs_to User -* @property \Courseware\Task $task belongs_to Courseware\Task + * + * @property int $id database column + * @property int $task_id database column + * @property string $lecturer_id database column + * @property string $content database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $lecturer belongs_to \User + * @property Task $task belongs_to Task */ class TaskFeedback extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/TaskGroup.php b/lib/models/Courseware/TaskGroup.php index d32866390a9..092edf644a4 100644 --- a/lib/models/Courseware/TaskGroup.php +++ b/lib/models/Courseware/TaskGroup.php @@ -12,18 +12,18 @@ use User; * * @since Stud.IP 5.1 * - * @property int $id database column - * @property string $seminar_id database column - * @property string $lecturer_id database column - * @property int $structural_element_id database column - * @property int $solver_may_add_blocks database column - * @property string $title database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $lecturer belongs_to User - * @property \Course $course belongs_to Course - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\StructuralElement - * @property \SimpleORMapCollection $tasks has_many Courseware\Task + * @property int $id database column + * @property string $seminar_id database column + * @property string $lecturer_id database column + * @property int $target_id database column + * @property int $task_template_id database column + * @property int $solver_may_add_blocks database column + * @property string $title database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \SimpleORMapCollection|Task[] $tasks has_many Task + * @property \User $lecturer belongs_to \User + * @property \Course $course belongs_to \Course */ class TaskGroup extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/Courseware/Template.php b/lib/models/Courseware/Template.php index 8161d989ee9..11a6c5f7fd5 100644 --- a/lib/models/Courseware/Template.php +++ b/lib/models/Courseware/Template.php @@ -10,12 +10,13 @@ namespace Courseware; * * @since Stud.IP 5.1 * -* @property int $id database column -* @property string $name database column -* @property string $purpose database column -* @property string $structure database column -* @property int $mkdate database column -* @property int $chdate database column + * + * @property int $id database column + * @property string $name database column + * @property string|null $purpose database column + * @property string $structure database column + * @property int $mkdate database column + * @property int $chdate database column */ class Template extends \SimpleORMap { @@ -25,4 +26,4 @@ class Template extends \SimpleORMap parent::configure($config); } -} \ No newline at end of file +} diff --git a/lib/models/Courseware/Unit.php b/lib/models/Courseware/Unit.php index 647f9f9fb70..e89b04dbd62 100644 --- a/lib/models/Courseware/Unit.php +++ b/lib/models/Courseware/Unit.php @@ -2,6 +2,7 @@ namespace Courseware; +use JSONArrayObject; use User; /** @@ -12,23 +13,22 @@ use User; * * @since Stud.IP 5.3 * - * @property int $id database column - * @property string $range_id database column - * @property string $range_type database column - * @property int $structural_element_id database column - * @property string $content_type database column - * @property int $public database column - * @property string $creator_id database column - * @property int $release_date database column - * @property int $withdraw_date database column - * @property \JSONArrayObject $config database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \User $creator belongs_to User - * @property \Courseware\StructuralElement $structural_element belongs_to Courseware\StructuralElement - * - * @SuppressWarnings(PHPMD.TooManyPublicMethods) - * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @property int $id database column + * @property string|null $range_id database column + * @property string|null $range_type database column + * @property int $structural_element_id database column + * @property string $content_type database column + * @property int $public database column + * @property string|null $creator_id database column + * @property int|null $release_date database column + * @property int|null $withdraw_date database column + * @property \JSONArrayObject $config database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \Course|null $course belongs_to \Course + * @property \User|null $user belongs_to \User + * @property \User|null $creator belongs_to \User + * @property StructuralElement $structural_element has_one StructuralElement */ class Unit extends \SimpleORMap implements \PrivacyObject @@ -37,7 +37,7 @@ class Unit extends \SimpleORMap implements \PrivacyObject { $config['db_table'] = 'cw_units'; - $config['serialized_fields']['config'] = 'JSONArrayObject'; + $config['serialized_fields']['config'] = JSONArrayObject::class; $config['has_one']['structural_element'] = [ 'class_name' => StructuralElement::class, diff --git a/lib/models/Courseware/UserDataField.php b/lib/models/Courseware/UserDataField.php index af608809acd..011b9daa6d1 100644 --- a/lib/models/Courseware/UserDataField.php +++ b/lib/models/Courseware/UserDataField.php @@ -2,6 +2,8 @@ namespace Courseware; +use JSONArrayObject; + /** * Courseware's user data fields. * @@ -12,14 +14,14 @@ namespace Courseware; * * @since Stud.IP 5.0 * - * @property array $id computed column read/write - * @property string $user_id database column - * @property id $block_id database column - * @property \JSONArrayObject $payload database column - * @property int $mkdate database column - * @property int $chdate database column - * @property \Courseware\Block $block belongs_to Courseware\Block - * @property \User $user belongs_to User + * @property array $id alias for pk + * @property string $user_id database column + * @property int $block_id database column + * @property \JSONArrayObject $payload database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Block $block belongs_to Block + * @property \User $user belongs_to \User */ class UserDataField extends \SimpleORMap implements \PrivacyObject { @@ -27,7 +29,7 @@ class UserDataField extends \SimpleORMap implements \PrivacyObject { $config['db_table'] = 'cw_user_data_fields'; - $config['serialized_fields']['payload'] = 'JSONArrayObject'; + $config['serialized_fields']['payload'] = JSONArrayObject::class; $config['belongs_to']['block'] = [ 'class_name' => Block::class, diff --git a/lib/models/Courseware/UserProgress.php b/lib/models/Courseware/UserProgress.php index 195fd89222b..0cecf228fd9 100644 --- a/lib/models/Courseware/UserProgress.php +++ b/lib/models/Courseware/UserProgress.php @@ -12,14 +12,14 @@ namespace Courseware; * * @since Stud.IP 5.0 * - * @property array $id computed column read/write - * @property string $user_id database column - * @property int $block_id database column - * @property string $grade database column - * @property string $mkdate database column - * @property string $chdate database column - * @property \Courseware\Block $block belongs_to Courseware\Block - * @property \User $user belongs_to User + * @property array $id alias for pk + * @property string $user_id database column + * @property int $block_id database column + * @property float $grade database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Block $block belongs_to Block + * @property \User $user belongs_to \User */ class UserProgress extends \SimpleORMap implements \PrivacyObject { diff --git a/lib/models/CronjobLog.class.php b/lib/models/CronjobLog.class.php index 942bf6a8ce7..c9e92f796dc 100644 --- a/lib/models/CronjobLog.class.php +++ b/lib/models/CronjobLog.class.php @@ -27,15 +27,15 @@ * @category Stud.IP * @since 2.4 * - * @property string log_id database column - * @property string id alias column for log_id - * @property string schedule_id database column - * @property string scheduled database column - * @property string executed database column - * @property string exception database column - * @property string output database column - * @property string duration database column - * @property CronjobSchedule schedule belongs_to CronjobSchedule + * @property string $id alias column for log_id + * @property string $log_id database column + * @property string $schedule_id database column + * @property int $scheduled database column + * @property int $executed database column + * @property string|null $exception database column + * @property string|null $output database column + * @property float $duration database column + * @property CronjobSchedule $schedule belongs_to CronjobSchedule */ class CronjobLog extends SimpleORMap diff --git a/lib/models/CronjobSchedule.class.php b/lib/models/CronjobSchedule.class.php index 028eed7b12e..6fcb68ff965 100644 --- a/lib/models/CronjobSchedule.class.php +++ b/lib/models/CronjobSchedule.class.php @@ -27,28 +27,28 @@ * @category Stud.IP * @since 2.4 * - * @property string schedule_id database column - * @property string id alias column for schedule_id - * @property string task_id database column - * @property string active database column - * @property string title database column - * @property string description database column - * @property string parameters database column - * @property string priority database column - * @property string type database column - * @property string minute database column - * @property string hour database column - * @property string day database column - * @property string month database column - * @property string day_of_week database column - * @property string next_execution database column - * @property string last_execution database column - * @property string last_result database column - * @property string execution_count database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection logs has_many CronjobLog - * @property CronjobTask task belongs_to CronjobTask + * @property string $id alias column for schedule_id + * @property string $schedule_id database column + * @property string $task_id database column + * @property int $active database column + * @property string|null $title database column + * @property string|null $description database column + * @property string|null $parameters database column + * @property string $priority database column + * @property string $type database column + * @property int|null $minute database column + * @property int|null $hour database column + * @property int|null $day database column + * @property int|null $month database column + * @property int|null $day_of_week database column + * @property int $next_execution database column + * @property int|null $last_execution database column + * @property string|null $last_result database column + * @property int $execution_count database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|CronjobLog[] $logs has_many CronjobLog + * @property CronjobTask $task belongs_to CronjobTask */ class CronjobSchedule extends SimpleORMap diff --git a/lib/models/CronjobTask.class.php b/lib/models/CronjobTask.class.php index 0313e9b8f1d..f235951618f 100644 --- a/lib/models/CronjobTask.class.php +++ b/lib/models/CronjobTask.class.php @@ -27,18 +27,19 @@ * @category Stud.IP * @since 2.4 * - * @property string task_id database column - * @property string id alias column for task_id - * @property string filename database column - * @property string class database column - * @property string active database column - * @property string execution_count database column - * @property string assigned_count database column - * @property SimpleORMapCollection schedules has_many CronjobSchedule - * - * @property string $description - * @property string $name - * @property array $parameters + * @property string $id alias column for task_id + * @property string $task_id database column + * @property string $filename database column + * @property string $class database column + * @property int $active database column + * @property int $execution_count database column + * @property int $assigned_count database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|CronjobSchedule[] $schedules has_many CronjobSchedule + * @property-read mixed $description additional field + * @property-read mixed $name additional field + * @property-read mixed $parameters additional field */ class CronjobTask extends SimpleORMap { diff --git a/lib/models/DataField.class.php b/lib/models/DataField.class.php index ae7b7ac5d63..2d745a9de6b 100644 --- a/lib/models/DataField.class.php +++ b/lib/models/DataField.class.php @@ -13,25 +13,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string datafield_id database column - * @property string id alias column for datafield_id - * @property string name database column - * @property string object_type database column - * @property string object_class database column - * @property string edit_perms database column - * @property string view_perms database column - * @property string institut_id database column - * @property string system database column - * @property string priority database column - * @property string mkdate database column - * @property string chdate database column - * @property string type database column - * @property string typeparam database column - * @property string is_required database column - * @property string default_value database column - * @property string is_userfilter database column - * @property string description database column - * @property SimpleORMapCollection entries has_many DatafieldEntryModel + * @property string $id alias column for datafield_id + * @property string $datafield_id database column + * @property I18NString|null $name database column + * @property string|null $object_type database column + * @property string|null $object_class database column + * @property string|null $edit_perms database column + * @property string|null $view_perms database column + * @property string|null $institut_id database column + * @property int $priority database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property string $type database column + * @property string $typeparam database column + * @property int $is_required database column + * @property string|null $default_value database column + * @property int $is_userfilter database column + * @property string $description database column + * @property int $system database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $entries has_many DatafieldEntryModel + * @property SimpleORMapCollection|User_Visibility_Settings[] $visibility_settings has_many User_Visibility_Settings + * @property mixed $institution additional field */ class DataField extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/DatafieldEntryModel.class.php b/lib/models/DatafieldEntryModel.class.php index e1c24064f1a..33503e312fc 100644 --- a/lib/models/DatafieldEntryModel.class.php +++ b/lib/models/DatafieldEntryModel.class.php @@ -13,15 +13,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string datafield_id database column - * @property string range_id database column - * @property string content database column - * @property string mkdate database column - * @property string chdate database column - * @property string sec_range_id database column - * @property string name computed column read/write - * @property string id computed column read/write - * @property Datafield datafield belongs_to Datafield + * @property array $id alias for pk + * @property string $datafield_id database column + * @property string $range_id database column + * @property string|null $content database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property string $sec_range_id database column + * @property string $lang database column + * @property DataField $datafield belongs_to DataField + * @property mixed $name additional field */ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject diff --git a/lib/models/DatafieldEntryModelI18N.class.php b/lib/models/DatafieldEntryModelI18N.class.php index bea234df067..aa93a638e66 100644 --- a/lib/models/DatafieldEntryModelI18N.class.php +++ b/lib/models/DatafieldEntryModelI18N.class.php @@ -14,15 +14,16 @@ * @category Stud.IP * @since 4.1 * - * @property string datafield_id database column - * @property string range_id database column - * @property string content database column - * @property string mkdate database column - * @property string chdate database column - * @property string sec_range_id database column - * @property string name computed column read/write - * @property string id computed column read/write - * @property Datafield datafield belongs_to Datafield + * @property array $id alias for pk + * @property string $datafield_id database column + * @property string $range_id database column + * @property I18NString|null $content database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property string $sec_range_id database column + * @property string $lang database column + * @property DataField $datafield belongs_to DataField + * @property mixed $name additional field */ class DatafieldEntryModelI18N extends DatafieldEntryModel diff --git a/lib/models/Degree.class.php b/lib/models/Degree.class.php index c5b83c5d14c..6fef8342b48 100644 --- a/lib/models/Degree.class.php +++ b/lib/models/Degree.class.php @@ -13,12 +13,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string abschluss_id database column - * @property string id alias column for abschluss_id - * @property string name database column - * @property string beschreibung database column - * @property string mkdate database column - * @property string chdate database column + * @property string $id alias column for abschluss_id + * @property string $abschluss_id database column + * @property string $name database column + * @property string|null $name_kurz database column + * @property string|null $beschreibung database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|StudyCourse[] $professions has_and_belongs_to_many StudyCourse + * @property-read mixed $count_user additional field */ class Degree extends SimpleORMap { diff --git a/lib/models/Deputy.php b/lib/models/Deputy.php index eef56d4e1f3..f433e221daf 100644 --- a/lib/models/Deputy.php +++ b/lib/models/Deputy.php @@ -13,14 +13,26 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string range_id database column - * @property string user_id database column - * @property string gruppe database column - * @property string notification database column - * @property string edit_about database column - * @property User deputy belongs_to User - * @property Course course belongs_to Course - * @property User boss has_one User + * @property array $id alias for pk + * @property string $range_id database column + * @property string $user_id database column + * @property int $gruppe database column + * @property int $notification database column + * @property int $edit_about database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property User $deputy belongs_to User + * @property Course $course belongs_to Course + * @property User $boss belongs_to User + * @property mixed $vorname additional field + * @property mixed $nachname additional field + * @property mixed $username additional field + * @property mixed $perms additional field + * @property mixed $boss_vorname additional field + * @property mixed $boss_nachname additional field + * @property mixed $boss_username additional field + * @property mixed $course_name additional field + * @property mixed $course_number additional field */ class Deputy extends SimpleORMap { diff --git a/lib/models/EventData.class.php b/lib/models/EventData.class.php index e5e41401e12..75e6f0c36ea 100644 --- a/lib/models/EventData.class.php +++ b/lib/models/EventData.class.php @@ -11,6 +11,38 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.2 + * + * @property string $id alias column for event_id + * @property string $event_id database column + * @property string $author_id database column + * @property string|null $editor_id database column + * @property string $uid database column + * @property int $start database column + * @property int $end database column + * @property string $summary database column + * @property string|null $description database column + * @property string $class database column + * @property string|null $categories database column + * @property int $category_intern database column + * @property int $priority database column + * @property string|null $location database column + * @property int $ts database column + * @property int|null $linterval database column + * @property int|null $sinterval database column + * @property string|null $wdays database column + * @property int|null $month database column + * @property int|null $day database column + * @property string $rtype database column + * @property int $duration database column + * @property int|null $count database column + * @property int $expire database column + * @property string|null $exceptions database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $importdate database column + * @property SimpleORMapCollection|CalendarEvent[] $calendars has_many CalendarEvent + * @property User $author belongs_to User + * @property User|null $editor belongs_to User */ class EventData extends SimpleORMap implements PrivacyObject diff --git a/lib/models/ExternalUser.php b/lib/models/ExternalUser.php index 53a079ac583..73b79178be6 100644 --- a/lib/models/ExternalUser.php +++ b/lib/models/ExternalUser.php @@ -12,6 +12,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 5.0 + * + * @property string $id alias column for external_contact_id + * @property string $external_contact_id database column + * @property string|null $foreign_id database column + * @property string|null $host_id database column + * @property string $contact_type database column + * @property string $name database column + * @property string|null $avatar_url database column + * @property JSONArrayObject|null $data database column + * @property int $chdate database column + * @property int $mkdate database column + * @property OERHost|null $host belongs_to OERHost */ class ExternalUser extends SimpleORMap @@ -28,7 +40,7 @@ class ExternalUser extends SimpleORMap 'class_name' => OERHost::class, 'foreign_key' => 'host_id' ]; - $config['serialized_fields']['data'] = 'JSONArrayObject'; + $config['serialized_fields']['data'] = JSONArrayObject::class; parent::configure($config); } } diff --git a/lib/models/Fach.php b/lib/models/Fach.php index cc5d9145f05..24a1a6c5076 100644 --- a/lib/models/Fach.php +++ b/lib/models/Fach.php @@ -12,6 +12,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for fach_id + * @property string $fach_id database column + * @property I18NString $name database column + * @property I18NString|null $name_kurz database column + * @property I18NString|null $beschreibung database column + * @property string|null $schlagworte database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|Abschluss[] $abschluesse has_many Abschluss + * @property SimpleORMapCollection|StudiengangTeil[] $studiengangteile has_many StudiengangTeil + * @property SimpleORMapCollection|FachFachbereich[] $department_assignments has_many FachFachbereich + * @property SimpleORMapCollection|Fachbereich[] $departments has_and_belongs_to_many Fachbereich + * @property SimpleORMapCollection|Abschluss[] $degrees has_and_belongs_to_many Abschluss + * @property mixed $count_abschluesse additional field + * @property mixed $count_user additional field + * @property mixed $count_sem additional field + * @property mixed $count_stgteile additional field + * @property-read mixed $count_module additional field */ class Fach extends ModuleManagementModelTreeItem implements PrivacyObject diff --git a/lib/models/FachFachbereich.php b/lib/models/FachFachbereich.php index 0de44547c67..e22c764f2ac 100644 --- a/lib/models/FachFachbereich.php +++ b/lib/models/FachFachbereich.php @@ -1,5 +1,5 @@ <?php -/* +/** * FachFachbereich.php * Model class for assignments of Faecher to Fachbereiche (aka institutes). * (table mvv_fach_inst) @@ -13,6 +13,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $fach_id database column + * @property string $institut_id database column + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Fach $fach belongs_to Fach + * @property Fachbereich $fachbereich belongs_to Fachbereich */ class FachFachbereich extends ModuleManagementModel diff --git a/lib/models/Fachbereich.php b/lib/models/Fachbereich.php index 19b88a4b9d1..7e1586514df 100644 --- a/lib/models/Fachbereich.php +++ b/lib/models/Fachbereich.php @@ -1,5 +1,5 @@ <?php -/* +/** * Fachbereich.php * model class for Fachbereiche (aka institutes) * @@ -12,6 +12,25 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for institut_id + * @property string $institut_id database column + * @property I18NString $name database column + * @property string $fakultaets_id database column + * @property string $strasse database column + * @property string $plz database column + * @property string $url database column + * @property string $telefon database column + * @property string $email database column + * @property string $fax database column + * @property int $type database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $lit_plugin_name database column + * @property int $srienabled database column + * @property string $lock_rule database column + * @property-read mixed $count_objects additional field + * @property-read mixed $count_module additional field */ class Fachbereich extends ModuleManagementModelTreeItem diff --git a/lib/models/FeedbackElement.php b/lib/models/FeedbackElement.php index 08b5aa170ec..63a2186a046 100644 --- a/lib/models/FeedbackElement.php +++ b/lib/models/FeedbackElement.php @@ -4,31 +4,32 @@ * * @author Nils Gehrke <nils.gehrke@uni-goettingen.de> * + * The column "range_type" represents the name of a class that implements + * FeedbackRange. + * * @property int $id database column * @property string $user_id database column * @property string $range_id database column - * @property string $range_type database column: - * name of class that implements FeedbackRange - * + * @property string $range_type database column * @property string $course_id database column * @property string $question database column * @property string $description database column - * @property int $mode database column: - * 0 without rating; - * 1 with star rating from 1 to 5; - * 2 with star rating from 1 to 10; - * - * @property boolean $results_visible database column: - * show rating results to users after feedback submission - * @property boolean $commentable database column: users may comment ratings - * - * @property Feedbackentry[]|SimpleORMapCollection $entries - * @property Course $course - * @property User $user + * @property int $mode database column + * @property int $results_visible database column + * @property int $commentable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|FeedbackEntry[] $entries has_many FeedbackEntry + * @property Course $course belongs_to Course + * @property User $user belongs_to User */ class FeedbackElement extends SimpleORMap { + public const MODE_NO_RATING = 0; + public const MODE_5STAR_RATING = 1; + public const MODE_10STAR_RATING = 2; + public static function configure($config = []) { $config['db_table'] = 'feedback'; @@ -144,12 +145,10 @@ class FeedbackElement extends SimpleORMap public function getMaxRating() { switch ($this->mode) { - case 1: - // 5 Stars Rating + case self::MODE_5STAR_RATING: return 5; break; - case 2: - // 10 Stars Rating + case self::MODE_10STAR_RATING: return 10; break; default: diff --git a/lib/models/FeedbackEntry.php b/lib/models/FeedbackEntry.php index be370619162..4b4ea7c3564 100644 --- a/lib/models/FeedbackEntry.php +++ b/lib/models/FeedbackEntry.php @@ -9,9 +9,10 @@ * @property string $user_id database column * @property string $comment database column * @property int $rating database column - * - * @property FeedbackElement $feedback - * @property User $user + * @property int $mkdate database column + * @property int $chdate database column + * @property FeedbackElement $feedback belongs_to FeedbackElement + * @property User $user belongs_to User */ class FeedbackEntry extends SimpleORMap diff --git a/lib/models/File.php b/lib/models/File.php index 16c81efa195..097d2a31b38 100644 --- a/lib/models/File.php +++ b/lib/models/File.php @@ -13,20 +13,21 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * - * @property string id database column - * @property string user_id database column - * @property string mime_type database column - * @property string name database column - * @property string size database column - * @property string filetype database column - * @property string metadata database column - * @property string author_name database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMap owner belongs_to User - * @property SimpleORMap url has_one FileURL - * @property SimpleORMapCollection refs has_many FileReference + * @property string $id database column + * @property string $user_id database column + * @property string $mime_type database column + * @property string $name database column + * @property string|null $filetype database column + * @property int $size database column + * @property JSONArrayObject|null $metadata database column + * @property string $author_name database column + * @property int|null $is_accessible database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|FileRef[] $refs has_many FileRef + * @property User $owner belongs_to User + * @property mixed $extension additional field + * @property mixed $path additional field */ class File extends SimpleORMap { @@ -48,7 +49,7 @@ class File extends SimpleORMap $config['additional_fields']['extension'] = true; $config['additional_fields']['path'] = true; - $config['serialized_fields']['metadata'] = 'JSONArrayObject'; + $config['serialized_fields']['metadata'] = JSONArrayObject::class; $config['registered_callbacks']['after_delete'][] = 'deleteDataFile'; $config['registered_callbacks']['before_create'][] = 'cbSetAuthor'; diff --git a/lib/models/FileRef.php b/lib/models/FileRef.php index fe878a840f2..c70d1714bea 100644 --- a/lib/models/FileRef.php +++ b/lib/models/FileRef.php @@ -13,22 +13,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * - * @property string id database column - * @property string file_id database column - * @property string folder_id database column - * @property string user_id database column - * @property string name database column - * @property string downloads database column - * @property string description database column - * @property string license database column - * @property string content_terms_of_use_id database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMap file belongs_to File - * @property SimpleORMap folder belongs_to Folder - * @property SimpleORMap owner belongs_to User - * @property SimpleORMap terms_of_use belongs_to ContentTermsOfUse + * @property string $id database column + * @property string $file_id database column + * @property string $folder_id database column + * @property int $downloads database column + * @property string $description database column + * @property string $content_terms_of_use_id database column + * @property string $user_id database column + * @property string $name database column + * @property int $mkdate database column + * @property int $chdate database column + * @property File $file belongs_to File + * @property Folder $folder belongs_to Folder + * @property User $owner belongs_to User + * @property ContentTermsOfUse $terms_of_use belongs_to ContentTermsOfUse + * @property mixed $size additional field + * @property mixed $mime_type additional field + * @property mixed $download_url additional field + * @property-read mixed $author_name additional field + * @property-read mixed $is_accessible additional field + * @property-read mixed $is_link additional field + * @property mixed $foldertype additional field */ class FileRef extends SimpleORMap implements PrivacyObject, FeedbackRange { diff --git a/lib/models/Folder.php b/lib/models/Folder.php index 9faa76a7541..630a157da99 100644 --- a/lib/models/Folder.php +++ b/lib/models/Folder.php @@ -13,17 +13,26 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string id database column - * @property string user_id database column: owner of folder - * @property string parent_id database column: parent folder - * @property string range_id database column: user-ID, course-ID, institute-ID etc. - * @property string range_type database column: 'course', 'institute', 'user', ... - * @property string folder_type database column - * @property string name database column: folder name - * @property string data_content database column - * @property string description database column - * @property string mkdate database column - * @property string chdate database column + * @property string $id database column + * @property string $user_id database column + * @property string $parent_id database column + * @property string $range_id database column + * @property string $range_type database column + * @property string $folder_type database column + * @property string $name database column + * @property JSONArrayObject $data_content database column + * @property string $description database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|FileRef[] $file_refs has_many FileRef + * @property SimpleORMapCollection|Folder[] $subfolders has_many Folder + * @property User $owner belongs_to User + * @property Folder $parentfolder belongs_to Folder + * @property Course $course belongs_to Course + * @property Institute $institute belongs_to Institute + * @property User $user belongs_to User + * @property Message $message belongs_to Message + * @property-read mixed $is_empty additional field */ class Folder extends SimpleORMap implements FeedbackRange { @@ -72,7 +81,7 @@ class Folder extends SimpleORMap implements FeedbackRange 'class_name' => Message::class, 'foreign_key' => 'range_id', ]; - $config['serialized_fields']['data_content'] = 'JSONArrayObject'; + $config['serialized_fields']['data_content'] = JSONArrayObject::class; $config['registered_callbacks']['before_store'][] = 'cbMakeUniqueName'; $config['registered_callbacks']['after_delete'][] = 'cbRemoveFeedbackElements'; diff --git a/lib/models/ForumCat.php b/lib/models/ForumCat.php index c963b691f75..069f097c81c 100644 --- a/lib/models/ForumCat.php +++ b/lib/models/ForumCat.php @@ -10,6 +10,12 @@ * @author Till Glöggler <tgloeggl@uos.de> * @license http://www.gnu.org/licenses/gpl-3.0.html GPL version 3 * @category Stud.IP + * + * @property string $id alias column for category_id + * @property string $category_id database column + * @property string $seminar_id database column + * @property string $entry_name database column + * @property int $pos database column */ class ForumCat extends SimpleORMap diff --git a/lib/models/Freetext.php b/lib/models/Freetext.php index 4922030e69d..52182de0551 100644 --- a/lib/models/Freetext.php +++ b/lib/models/Freetext.php @@ -2,6 +2,21 @@ require_once 'lib/classes/QuestionType.interface.php'; +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class Freetext extends QuestionnaireQuestion implements QuestionType { /** diff --git a/lib/models/Grading/Definition.php b/lib/models/Grading/Definition.php index ed6df556f33..41b4f7171fb 100644 --- a/lib/models/Grading/Definition.php +++ b/lib/models/Grading/Definition.php @@ -2,6 +2,22 @@ namespace Grading; +/** + * @license GPL2 or any later version + * + * @property int $id database column + * @property string $course_id database column + * @property string $item database column + * @property string $name database column + * @property string $tool database column + * @property string $category database column + * @property int $position database column + * @property float $weight database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \SimpleORMapCollection|Instance[] $instances has_many Instance + * @property \Course $course belongs_to \Course + */ class Definition extends \SimpleORMap { const CUSTOM_DEFINITIONS_CATEGORY = 'xyzzy'; diff --git a/lib/models/Grading/Instance.php b/lib/models/Grading/Instance.php index 901fcff39cd..14ab25a8c4c 100644 --- a/lib/models/Grading/Instance.php +++ b/lib/models/Grading/Instance.php @@ -2,6 +2,19 @@ namespace Grading; +/** + * @license GPL2 or any later version + * + * @property array $id alias for pk + * @property int $definition_id database column + * @property string $user_id database column + * @property float $rawgrade database column + * @property string|null $feedback database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \User $user belongs_to \User + * @property Definition $definition belongs_to Definition + */ class Instance extends \SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/HelpContent.class.php b/lib/models/HelpContent.class.php index b254e214565..f1e61b1a3c6 100644 --- a/lib/models/HelpContent.class.php +++ b/lib/models/HelpContent.class.php @@ -26,22 +26,22 @@ * @author Arne Schröder <schroeder@data-quest> * @access public * + * @property string $id alias column for content_id + * @property string $global_content_id database column * @property string $content_id database column * @property string $language database column - * @property string $label database column - * @property string $icon database column * @property string $content database column - * @property string $comment database column * @property string $route database column * @property string $studip_version database column - * @property string $position database column - * @property string $custom database column - * @property string $visible database column + * @property int $position database column + * @property int $custom database column + * @property int $visible database column * @property string $author_email database column * @property string $installation_id database column - * @property string $mkdate database column - * @property string $chdate database column - * @property User|null $author has_one author + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $comment database column + * @property User $author has_one User */ class HelpContent extends SimpleORMap { diff --git a/lib/models/HelpTour.class.php b/lib/models/HelpTour.class.php index 18ed68ecaa2..68bd8307ba1 100644 --- a/lib/models/HelpTour.class.php +++ b/lib/models/HelpTour.class.php @@ -29,21 +29,24 @@ require_once 'lib/object.inc.php'; * @author Arne Schröder <schroeder@data-quest> * @access public * - * @property string $tour_id database column * @property string $id alias column for tour_id + * @property string $global_tour_id database column + * @property string $tour_id database column * @property string $name database column * @property string $description database column * @property string $type database column * @property string $roles database column - * @property string $version database column + * @property int $version database column * @property string $language database column * @property string $studip_version database column * @property string $installation_id database column - * @property string $mkdate database column - * @property SimpleORMapCollection $steps has_many HelpTourStep - * @property SimpleORMapCollection $audiences has_many HelpTourAudience + * @property string $author_email database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|HelpTourStep[] $steps has_many HelpTourStep + * @property SimpleORMapCollection|HelpTourAudience[] $audiences has_many HelpTourAudience * @property HelpTourSettings $settings has_one HelpTourSettings - * @property User|null $author has_one author + * @property User $author has_one User */ class HelpTour extends SimpleORMap { diff --git a/lib/models/HelpTourAudience.class.php b/lib/models/HelpTourAudience.class.php index 0d6e8c2402d..6255a465d25 100644 --- a/lib/models/HelpTourAudience.class.php +++ b/lib/models/HelpTourAudience.class.php @@ -29,11 +29,13 @@ * @author Arne Schröder <schroeder@data-quest> * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP - * - * @property string tour_id database column - * @property string range_id database column - * @property string type database column - * @property string id computed column read/write + * + * @property array $id alias for pk + * @property string $tour_id database column + * @property string $range_id database column + * @property string $type database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class HelpTourAudience extends SimpleORMap { diff --git a/lib/models/HelpTourSettings.class.php b/lib/models/HelpTourSettings.class.php index 7392c563f95..f24c86b276e 100644 --- a/lib/models/HelpTourSettings.class.php +++ b/lib/models/HelpTourSettings.class.php @@ -29,11 +29,13 @@ * @author Arne Schröder <schroeder@data-quest> * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP - * - * @property string tour_id database column - * @property string id alias column for tour_id - * @property string active database column - * @property string access database column + * + * @property string $id alias column for tour_id + * @property string $tour_id database column + * @property int $active database column + * @property string|null $access database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class HelpTourSettings extends SimpleORMap { diff --git a/lib/models/HelpTourStep.class.php b/lib/models/HelpTourStep.class.php index d2ce1dcb3d7..6f3132639fe 100644 --- a/lib/models/HelpTourStep.class.php +++ b/lib/models/HelpTourStep.class.php @@ -30,20 +30,22 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * + * @property array $id alias for pk * @property string $tour_id database column - * @property string $step database column + * @property int $step database column * @property string $title database column * @property string $tip database column * @property string $orientation database column - * @property string $interactive database column + * @property int $interactive database column * @property string $css_selector database column * @property string $route database column + * @property string $action_prev database column + * @property string $action_next database column * @property string $author_email database column - * @property string $mkdate database column - * @property string $chdate database column - * @property string $id computed column read/write + * @property int $mkdate database column + * @property int $chdate database column * @property HelpTour $help_tour belongs_to HelpTour - * @property User|null $author has_one author + * @property User $author has_one User */ class HelpTourStep extends SimpleORMap { diff --git a/lib/models/HelpTourUser.class.php b/lib/models/HelpTourUser.class.php index 49b16479980..aa2869d1485 100644 --- a/lib/models/HelpTourUser.class.php +++ b/lib/models/HelpTourUser.class.php @@ -30,11 +30,13 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string tour_id database column - * @property string user_id database column - * @property string step_nr database column - * @property string completed database column - * @property string id computed column read/write + * @property array $id alias for pk + * @property string $tour_id database column + * @property string $user_id database column + * @property int $step_nr database column + * @property int $completed database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class HelpTourUser extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/Institute.class.php b/lib/models/Institute.class.php index b6ec72bcdb1..5a5a1d0b3c7 100644 --- a/lib/models/Institute.class.php +++ b/lib/models/Institute.class.php @@ -13,33 +13,36 @@ * @category Stud.IP * @since 2.0 * - * @property string institut_id database column - * @property string id alias column for institut_id - * @property string name database column - * @property string fakultaets_id database column - * @property string strasse database column - * @property string plz database column - * @property string url database column - * @property string telefon database column - * @property string email database column - * @property string fax database column - * @property string type database column - * @property string modules database column - * @property string mkdate database column - * @property string chdate database column - * @property string lit_plugin_name database column - * @property string srienabled database column - * @property string lock_rule database column - * @property string is_fak computed column - * @property SimpleORMapCollection members has_many InstituteMember - * @property SimpleORMapCollection home_courses has_many Course - * @property SimpleORMapCollection sub_institutes has_many Institute - * @property SimpleORMapCollection datafields has_many DatafieldEntryModel - * @property Institute faculty belongs_to Institute - * @property SimpleORMapCollection courses has_and_belongs_to_many Course - * - * @property ConsultationBlock[]|SimpleORMapCollection $consultation_blocks - * @property ConsultationResponsibility[]|SimpleORMapCollection $consultation_responsibilities + * @property string $id alias column for institut_id + * @property string $institut_id database column + * @property I18NString $name database column + * @property string $fakultaets_id database column + * @property string $strasse database column + * @property string $plz database column + * @property string $url database column + * @property string $telefon database column + * @property string $email database column + * @property string $fax database column + * @property int $type database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $lit_plugin_name database column + * @property int $srienabled database column + * @property string $lock_rule database column + * @property SimpleORMapCollection|InstituteMember[] $members has_many InstituteMember + * @property SimpleORMapCollection|Course[] $home_courses has_many Course + * @property SimpleORMapCollection|Institute[] $sub_institutes has_many Institute + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property SimpleORMapCollection|StudipScmEntry[] $scm has_many StudipScmEntry + * @property SimpleORMapCollection|Statusgruppen[] $status_groups has_many Statusgruppen + * @property SimpleORMapCollection|BlubberThread[] $blubberthreads has_many BlubberThread + * @property SimpleORMapCollection|ConsultationBlock[] $consultation_blocks has_many ConsultationBlock + * @property SimpleORMapCollection|ConsultationResponsibility[] $consultation_responsibilities has_many ConsultationResponsibility + * @property SimpleORMapCollection|ToolActivation[] $tools has_many ToolActivation + * @property Institute $faculty belongs_to Institute + * @property SimpleORMapCollection|Course[] $courses has_and_belongs_to_many Course + * @property-read mixed $is_fak additional field + * @property-read mixed $all_status_groups additional field */ class Institute extends SimpleORMap implements Range diff --git a/lib/models/InstituteMember.class.php b/lib/models/InstituteMember.class.php index a501c61a303..3a513fec12f 100644 --- a/lib/models/InstituteMember.class.php +++ b/lib/models/InstituteMember.class.php @@ -13,27 +13,30 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string institut_id database column - * @property string inst_perms database column - * @property string sprechzeiten database column - * @property string raum database column - * @property string telefon database column - * @property string fax database column - * @property string externdefault database column - * @property string priority database column - * @property string visible database column - * @property string vorname computed column read/write - * @property string nachname computed column read/write - * @property string username computed column read/write - * @property string email computed column read/write - * @property string title_front computed column read/write - * @property string title_rear computed column read/write - * @property string institute_name computed column read/write - * @property string id computed column read/write - * @property SimpleORMapCollection datafields has_many DatafieldEntryModel - * @property User user belongs_to User - * @property Institute institute belongs_to Institute + * @property int $id database column + * @property string $user_id database column + * @property string $institut_id database column + * @property string $inst_perms database column + * @property I18NString $sprechzeiten database column + * @property I18NString $raum database column + * @property I18NString $telefon database column + * @property I18NString $fax database column + * @property int $externdefault database column + * @property int $priority database column + * @property int $visible database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property User $user belongs_to User + * @property Institute $institute belongs_to Institute + * @property mixed $vorname additional field + * @property mixed $nachname additional field + * @property mixed $username additional field + * @property mixed $email additional field + * @property mixed $title_front additional field + * @property mixed $title_rear additional field + * @property mixed $user_info additional field + * @property mixed $institute_name additional field */ class InstituteMember extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/InstitutePlanColumn.class.php b/lib/models/InstitutePlanColumn.class.php index eb5c49f877c..b5ec876d7a7 100644 --- a/lib/models/InstitutePlanColumn.class.php +++ b/lib/models/InstitutePlanColumn.class.php @@ -12,12 +12,14 @@ * @license GPL2 or any version * @since Stud.IP 4.5 * * - * @property string range_id database column - * @property string column database column - * @property string name database column - * @property string visible database column - * @property string mkdate database column - * @property string chdate database column + * + * @property array $id alias for pk + * @property string $range_id database column + * @property int $column database column + * @property string|null $name database column + * @property int $visible database column + * @property int $mkdate database column + * @property int $chdate database column */ class InstitutePlanColumn extends SimpleORMap { diff --git a/lib/models/Kategorie.class.php b/lib/models/Kategorie.class.php index 13c9c3a464f..a43629f68e0 100644 --- a/lib/models/Kategorie.class.php +++ b/lib/models/Kategorie.class.php @@ -12,16 +12,15 @@ * @category Stud.IP * @since 2.4 * - * @property string $kategorie_id database column * @property string $id alias column for kategorie_id + * @property string $kategorie_id database column * @property string $range_id database column - * @property string|I18NString $name database column - * @property string|I18NString $content database column + * @property I18NString $name database column + * @property I18NString $content database column * @property int $mkdate database column * @property int $chdate database column * @property int $priority database column - * - * @property User $user + * @property User $user belongs_to User */ class Kategorie extends SimpleORMap diff --git a/lib/models/License.php b/lib/models/License.php index 9dac65f8188..88ef26f63ad 100644 --- a/lib/models/License.php +++ b/lib/models/License.php @@ -1,5 +1,19 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for identifier + * @property string $identifier database column + * @property string|null $name database column + * @property string|null $link database column + * @property int|null $default database column + * @property string|null $description database column + * @property string|null $twillo_licensekey database column + * @property string|null $twillo_cclicenseversion database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + */ class License extends SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/LikertScale.php b/lib/models/LikertScale.php index 5e55e3c294d..5b2b4f59288 100644 --- a/lib/models/LikertScale.php +++ b/lib/models/LikertScale.php @@ -1,6 +1,21 @@ <?php require_once 'lib/classes/QuestionType.interface.php'; +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class LikertScale extends QuestionnaireQuestion implements QuestionType { public static function getIcon(bool $active = false) : Icon diff --git a/lib/models/LockRule.class.php b/lib/models/LockRule.class.php index 3f07a10e503..a3ef2713c3b 100644 --- a/lib/models/LockRule.class.php +++ b/lib/models/LockRule.class.php @@ -23,14 +23,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string lock_id database column - * @property string id alias column for lock_id - * @property string permission database column - * @property string name database column - * @property string description database column - * @property string attributes database column - * @property string object_type database column - * @property string user_id database column + * @property string $id alias column for lock_id + * @property string $lock_id database column + * @property string $permission database column + * @property string $name database column + * @property string $description database column + * @property JSONArrayObject $attributes database column + * @property string $object_type database column + * @property string $user_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class LockRule extends SimpleORMap @@ -39,7 +41,7 @@ class LockRule extends SimpleORMap { $config['db_table'] = 'lock_rules'; - $config['serialized_fields']['attributes'] = 'JSONArrayObject'; + $config['serialized_fields']['attributes'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/LogAction.php b/lib/models/LogAction.php index 2f004201f75..5ec4b7d73b7 100644 --- a/lib/models/LogAction.php +++ b/lib/models/LogAction.php @@ -13,17 +13,20 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.0 - * @property string action_id database column - * @property string id alias column for action_id - * @property string name database column - * @property string description database column - * @property string info_template database column - * @property string active database column - * @property string expires database column - * @property string filename database column - * @property string class database column - * @property string type database column - * @property SimpleORMapCollection events has_many LogEvent + * + * @property string $id alias column for action_id + * @property string $action_id database column + * @property string $name database column + * @property string|null $description database column + * @property string|null $info_template database column + * @property int $active database column + * @property int $expires database column + * @property string|null $filename database column + * @property string|null $class database column + * @property string|null $type database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|LogEvent[] $events has_many LogEvent */ class LogAction extends SimpleORMap { diff --git a/lib/models/LogEvent.php b/lib/models/LogEvent.php index 7205dbac5e5..547447e48f1 100644 --- a/lib/models/LogEvent.php +++ b/lib/models/LogEvent.php @@ -13,17 +13,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.0 - * @property string event_id database column - * @property string id alias column for event_id - * @property string user_id database column - * @property string action_id database column - * @property string affected_range_id database column - * @property string coaffected_range_id database column - * @property string info database column - * @property string dbg_info database column - * @property string mkdate database column - * @property LogAction action belongs_to LogAction - * @property User user belongs_to User + * + * @property int $id alias column for event_id + * @property int $event_id database column + * @property string $user_id database column + * @property string $action_id database column + * @property string|null $affected_range_id database column + * @property string|null $coaffected_range_id database column + * @property string|null $info database column + * @property string|null $dbg_info database column + * @property int $mkdate database column + * @property LogAction $action belongs_to LogAction + * @property User $user belongs_to User */ diff --git a/lib/models/LoginBackground.class.php b/lib/models/LoginBackground.class.php index df7fb9e5c1f..3ede27551fe 100644 --- a/lib/models/LoginBackground.class.php +++ b/lib/models/LoginBackground.class.php @@ -12,11 +12,14 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string background_id database column - * @property string id alias column for background_id - * @property string filename database column - * @property string active database column - * @property string in_release database column + * @property int $id alias column for background_id + * @property int $background_id database column + * @property string $filename database column + * @property int $mobile database column + * @property int $desktop database column + * @property int $in_release database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class LoginBackground extends SimpleORMap { diff --git a/lib/models/LtiData.php b/lib/models/LtiData.php index 2f0a08d41a1..3434287911e 100644 --- a/lib/models/LtiData.php +++ b/lib/models/LtiData.php @@ -9,6 +9,20 @@ * * @author Elmar Ludwig * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 + * + * @property int $id database column + * @property int $position database column + * @property string $course_id database column + * @property string $title database column + * @property string $description database column + * @property int $tool_id database column + * @property string $launch_url database column + * @property int $mkdate database column + * @property int $chdate database column + * @property JSONArrayObject|null $options database column + * @property SimpleORMapCollection|LtiGrade[] $grades has_many LtiGrade + * @property Course $course belongs_to Course + * @property LtiTool $tool belongs_to LtiTool */ class LtiData extends SimpleORMap @@ -20,7 +34,7 @@ class LtiData extends SimpleORMap { $config['db_table'] = 'lti_data'; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; $config['belongs_to']['course'] = [ 'class_name' => Course::class, diff --git a/lib/models/LtiGrade.php b/lib/models/LtiGrade.php index 43fdc9a9f07..167ea58ced4 100644 --- a/lib/models/LtiGrade.php +++ b/lib/models/LtiGrade.php @@ -9,6 +9,15 @@ * * @author Elmar Ludwig * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 + * + * @property array $id alias for pk + * @property int $link_id database column + * @property string $user_id database column + * @property float $score database column + * @property int $mkdate database column + * @property int $chdate database column + * @property LtiData $link belongs_to LtiData + * @property User $user belongs_to User */ class LtiGrade extends SimpleORMap diff --git a/lib/models/LtiTool.php b/lib/models/LtiTool.php index 41b6f32199a..53be2bc81b8 100644 --- a/lib/models/LtiTool.php +++ b/lib/models/LtiTool.php @@ -9,6 +9,20 @@ * * @author Elmar Ludwig * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 + * + * @property int $id database column + * @property string $name database column + * @property string $launch_url database column + * @property string $consumer_key database column + * @property string $consumer_secret database column + * @property string $custom_parameters database column + * @property int $allow_custom_url database column + * @property int $deep_linking database column + * @property int $send_lis_person database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string $oauth_signature_method database column + * @property SimpleORMapCollection|LtiData[] $links has_many LtiData */ class LtiTool extends SimpleORMap diff --git a/lib/models/Lvgruppe.php b/lib/models/Lvgruppe.php index 3355f77de01..138d28e4d81 100644 --- a/lib/models/Lvgruppe.php +++ b/lib/models/Lvgruppe.php @@ -12,6 +12,22 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for lvgruppe_id + * @property string $lvgruppe_id database column + * @property string $name database column + * @property I18NString|null $alttext database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|Modulteil[] $modulteile has_and_belongs_to_many Modulteil + * @property SimpleORMapCollection|Course[] $courses has_and_belongs_to_many Course + * @property SimpleORMapCollection|ArchivedCourse[] $archived_courses has_and_belongs_to_many ArchivedCourse + * @property mixed $count_seminare additional field + * @property mixed $count_archiv additional field + * @property mixed $count_modulteile additional field + * @property mixed $count_semester additional field */ class Lvgruppe extends ModuleManagementModelTreeItem diff --git a/lib/models/LvgruppeModulteil.php b/lib/models/LvgruppeModulteil.php index da64a4b26f9..06dd1691c80 100644 --- a/lib/models/LvgruppeModulteil.php +++ b/lib/models/LvgruppeModulteil.php @@ -13,6 +13,19 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $lvgruppe_id database column + * @property string $modulteil_id database column + * @property int $position database column + * @property string|null $fn_id database column + * @property string|null $flexnow_id alias column for fn_id + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Lvgruppe $lvgruppe belongs_to Lvgruppe + * @property Modulteil $modulteil belongs_to Modulteil */ class LvgruppeModulteil extends ModuleManagementModel diff --git a/lib/models/LvgruppeSeminar.php b/lib/models/LvgruppeSeminar.php index 99d6e09a640..ae6543db55e 100644 --- a/lib/models/LvgruppeSeminar.php +++ b/lib/models/LvgruppeSeminar.php @@ -13,6 +13,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $lvgruppe_id database column + * @property string $seminar_id database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Lvgruppe $lvgruppe belongs_to Lvgruppe + * @property Course $course belongs_to Course */ class LvgruppeSeminar extends ModuleManagementModel diff --git a/lib/models/MailQueueEntry.class.php b/lib/models/MailQueueEntry.class.php index 11d0a2f2284..7fe63f67ea8 100644 --- a/lib/models/MailQueueEntry.class.php +++ b/lib/models/MailQueueEntry.class.php @@ -14,15 +14,16 @@ * Use MailQueueEntry::add($mail, $message_id, $user_id) to add a mail to the queue * and MailQueueEntry::sendAll() or MailQueueEntry::sendNew() to flush the queue * and send the mails. - * @property string mail_queue_id database column - * @property string id alias column for mail_queue_id - * @property string mail database column - * @property string message_id database column - * @property string user_id database column - * @property string tries database column - * @property string last_try database column - * @property string mkdate database column - * @property string chdate database column + * + * @property string $id alias column for mail_queue_id + * @property string $mail_queue_id database column + * @property JSONArrayObject $mail database column + * @property string|null $message_id database column + * @property string|null $user_id database column + * @property int $tries database column + * @property int $last_try database column + * @property int $mkdate database column + * @property int $chdate database column */ class MailQueueEntry extends SimpleORMap { @@ -30,7 +31,7 @@ class MailQueueEntry extends SimpleORMap { $config['db_table'] = 'mail_queue_entries'; - $config['serialized_fields']['mail'] = 'JSONArrayObject'; + $config['serialized_fields']['mail'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/Message.class.php b/lib/models/Message.class.php index 05cfc39feb2..e4f938b324b 100644 --- a/lib/models/Message.class.php +++ b/lib/models/Message.class.php @@ -11,19 +11,18 @@ * @author mlunzena * @copyright (c) Authors * - * @property string message_id database column - * @property string id alias column for message_id - * @property string chat_id database column - * @property string autor_id database column - * @property string subject database column - * @property string message database column - * @property string mkdate database column - * @property string readed database column - * @property string priority database column - * @property SimpleORMapCollection receivers has_many MessageUser - * @property SimpleORMapCollection attachment_folder has_one Folder - * @property User author has_one User - * @property MessageUser originator has_one MessageUser + * @property string $id alias column for message_id + * @property string $message_id database column + * @property string $autor_id database column + * @property string $subject database column + * @property string $message database column + * @property int $show_adressees database column + * @property int $mkdate database column + * @property string $priority database column + * @property SimpleORMapCollection|MessageUser[] $receivers has_many MessageUser + * @property User $author belongs_to User + * @property MessageUser $originator has_one MessageUser + * @property Folder $attachment_folder has_one Folder */ class Message extends SimpleORMap implements PrivacyObject diff --git a/lib/models/MessageUser.class.php b/lib/models/MessageUser.class.php index c8a406cd85d..0ae6dd5cfef 100644 --- a/lib/models/MessageUser.class.php +++ b/lib/models/MessageUser.class.php @@ -11,17 +11,16 @@ * @author mlunzena * @copyright (c) Authors * - * @property string user_id database column - * @property string message_id database column - * @property string readed database column - * @property string deleted database column - * @property string snd_rec database column - * @property string confirmed_read database column - * @property string answered database column - * @property string mkdate database column - * @property string id computed column read/write - * @property User user belongs_to User - * @property Message message belongs_to Message + * @property array $id alias for pk + * @property string $user_id database column + * @property string $message_id database column + * @property int $readed database column + * @property int $deleted database column + * @property string $snd_rec database column + * @property int $answered database column + * @property int $mkdate database column + * @property User $user belongs_to User + * @property Message $message belongs_to Message */ class MessageUser extends SimpleORMap implements PrivacyObject diff --git a/lib/models/Modul.php b/lib/models/Modul.php index 80e2753854e..54764262d81 100644 --- a/lib/models/Modul.php +++ b/lib/models/Modul.php @@ -12,6 +12,49 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for modul_id + * @property string $modul_id database column + * @property string|null $quelle database column + * @property string|null $variante database column + * @property string|null $flexnow_modul database column + * @property string|null $flexnow_id alias column for flexnow_modul + * @property string|null $code database column + * @property string|null $start database column + * @property string|null $end database column + * @property int|null $beschlussdatum database column + * @property int|null $fassung_nr database column + * @property string|null $fassung_typ database column + * @property string $version database column + * @property string|null $dauer database column + * @property string $kapazitaet database column + * @property float|null $kp database column + * @property int|null $wl_selbst database column + * @property int|null $wl_pruef database column + * @property string|null $pruef_ebene database column + * @property string $faktor_note database column + * @property string|null $stat database column + * @property string|null $kommentar_status database column + * @property string|null $verantwortlich database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|Modulteil[] $modulteile has_many Modulteil + * @property SimpleORMapCollection|ModulInst[] $assigned_institutes has_many ModulInst + * @property SimpleORMapCollection|MvvContactRange[] $contact_assignments has_many MvvContactRange + * @property SimpleORMapCollection|StgteilabschnittModul[] $abschnitte_modul has_many StgteilabschnittModul + * @property SimpleORMapCollection|ModulLanguage[] $languages has_many ModulLanguage + * @property Semester|null $start_semester belongs_to Semester + * @property Semester|null $end_semester belongs_to Semester + * @property ModulDeskriptor $deskriptoren has_one ModulDeskriptor + * @property Modul|null $modul_quelle has_one Modul + * @property Modul|null $modul_variante has_one Modul + * @property ModulInst $responsible_institute has_one ModulInst + * @property SimpleORMapCollection|StgteilAbschnitt[] $abschnitte has_and_belongs_to_many StgteilAbschnitt + * @property mixed $count_modulteile additional field + * @property mixed $languagesofinstruction additional field + * @property-read mixed $display_name additional field */ class Modul extends ModuleManagementModelTreeItem diff --git a/lib/models/ModulDeskriptor.php b/lib/models/ModulDeskriptor.php index 330e325d069..5a3d07152cf 100644 --- a/lib/models/ModulDeskriptor.php +++ b/lib/models/ModulDeskriptor.php @@ -12,6 +12,34 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for deskriptor_id + * @property string $deskriptor_id database column + * @property string $modul_id database column + * @property I18NString|null $verantwortlich database column + * @property I18NString|null $bezeichnung database column + * @property I18NString|null $voraussetzung database column + * @property I18NString|null $kompetenzziele database column + * @property I18NString|null $inhalte database column + * @property I18NString|null $literatur database column + * @property I18NString|null $links database column + * @property I18NString|null $kommentar database column + * @property I18NString|null $turnus database column + * @property I18NString|null $kommentar_kapazitaet database column + * @property I18NString|null $kommentar_sws database column + * @property I18NString|null $kommentar_wl_selbst database column + * @property I18NString|null $kommentar_wl_pruef database column + * @property I18NString|null $kommentar_note database column + * @property I18NString|null $pruef_vorleistung database column + * @property I18NString|null $pruef_leistung database column + * @property I18NString|null $pruef_wiederholung database column + * @property I18NString|null $ersatztext database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property Modul $modul belongs_to Modul */ class ModulDeskriptor extends ModuleManagementModel diff --git a/lib/models/ModulInst.php b/lib/models/ModulInst.php index 7393bdf4856..2c39c76e2ac 100644 --- a/lib/models/ModulInst.php +++ b/lib/models/ModulInst.php @@ -13,6 +13,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $modul_id database column + * @property string $institut_id database column + * @property string $gruppe database column + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Fachbereich $institute belongs_to Fachbereich + * @property Modul $modul belongs_to Modul */ class ModulInst extends ModuleManagementModel diff --git a/lib/models/ModulLanguage.php b/lib/models/ModulLanguage.php index 160a1018bb9..e8bf1cb0d4a 100644 --- a/lib/models/ModulLanguage.php +++ b/lib/models/ModulLanguage.php @@ -13,6 +13,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $modul_id database column + * @property string $lang database column + * @property string $language alias column for lang + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Modul $modul belongs_to Modul */ class ModulLanguage extends ModuleManagementModel diff --git a/lib/models/Modulteil.php b/lib/models/Modulteil.php index 14a34baa3c3..55ef6fd9140 100644 --- a/lib/models/Modulteil.php +++ b/lib/models/Modulteil.php @@ -12,6 +12,38 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for modulteil_id + * @property string $modulteil_id database column + * @property string $modul_id database column + * @property int $position database column + * @property string|null $flexnow_modul database column + * @property string|null $nummer database column + * @property string|null $num_bezeichnung database column + * @property string|null $lernlehrform database column + * @property string|null $semester database column + * @property string|null $kapazitaet database column + * @property float|null $kp database column + * @property int|null $sws database column + * @property int|null $wl_praesenz database column + * @property int|null $wl_bereitung database column + * @property int|null $wl_selbst database column + * @property int|null $wl_pruef database column + * @property int|null $anteil_note database column + * @property int $ausgleichbar database column + * @property int $pflicht database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|ModulteilStgteilabschnitt[] $abschnitt_assignments has_many ModulteilStgteilabschnitt + * @property SimpleORMapCollection|LvgruppeModulteil[] $lvgruppen_assignments has_many LvgruppeModulteil + * @property SimpleORMapCollection|ModulteilLanguage[] $languages has_many ModulteilLanguage + * @property Modul $modul belongs_to Modul + * @property ModulteilDeskriptor $deskriptoren has_one ModulteilDeskriptor + * @property SimpleORMapCollection|StgteilAbschnitt[] $abschnitte has_and_belongs_to_many StgteilAbschnitt + * @property SimpleORMapCollection|Lvgruppe[] $lvgruppen has_and_belongs_to_many Lvgruppe + * @property mixed $count_lvgruppen additional field */ class Modulteil extends ModuleManagementModelTreeItem diff --git a/lib/models/ModulteilDeskriptor.php b/lib/models/ModulteilDeskriptor.php index 8b1801c0064..aa6ddf7054b 100644 --- a/lib/models/ModulteilDeskriptor.php +++ b/lib/models/ModulteilDeskriptor.php @@ -12,6 +12,27 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for deskriptor_id + * @property string $deskriptor_id database column + * @property string $modulteil_id database column + * @property I18NString $bezeichnung database column + * @property I18NString|null $voraussetzung database column + * @property I18NString|null $kommentar database column + * @property I18NString|null $kommentar_kapazitaet database column + * @property I18NString|null $kommentar_wl_praesenz database column + * @property I18NString|null $kommentar_wl_bereitung database column + * @property I18NString|null $kommentar_wl_selbst database column + * @property I18NString|null $kommentar_wl_pruef database column + * @property I18NString|null $pruef_vorleistung database column + * @property I18NString|null $pruef_leistung database column + * @property I18NString|null $kommentar_pflicht database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property Modulteil $modulteil belongs_to Modulteil */ class ModulteilDeskriptor extends ModuleManagementModel diff --git a/lib/models/ModulteilLanguage.php b/lib/models/ModulteilLanguage.php index ed09bff3fe1..af510c5f0db 100644 --- a/lib/models/ModulteilLanguage.php +++ b/lib/models/ModulteilLanguage.php @@ -13,6 +13,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $modulteil_id database column + * @property string $lang database column + * @property string $language alias column for lang + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Modulteil $modulteil belongs_to Modulteil */ class ModulteilLanguage extends ModuleManagementModel diff --git a/lib/models/ModulteilStgteilabschnitt.php b/lib/models/ModulteilStgteilabschnitt.php index 4f84c303b39..d16c3a0cd03 100644 --- a/lib/models/ModulteilStgteilabschnitt.php +++ b/lib/models/ModulteilStgteilabschnitt.php @@ -13,6 +13,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $modulteil_id database column + * @property string $abschnitt_id database column + * @property int $fachsemester database column + * @property string $differenzierung database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Modulteil $modulteil belongs_to Modulteil + * @property StgteilAbschnitt $abschnitt belongs_to StgteilAbschnitt */ class ModulteilStgteilabschnitt extends ModuleManagementModel diff --git a/lib/models/MvvContact.php b/lib/models/MvvContact.php index 26ff5f0e6c6..3aa72d65546 100644 --- a/lib/models/MvvContact.php +++ b/lib/models/MvvContact.php @@ -11,6 +11,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property string $id alias column for contact_id + * @property string $contact_id database column + * @property string $contact_status database column + * @property string $alt_mail database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|MvvContactRange[] $ranges has_many MvvContactRange + * @property-read mixed $name additional field + * @property-read mixed $count_relations additional field */ class MvvContact extends ModuleManagementModel diff --git a/lib/models/MvvContactRange.php b/lib/models/MvvContactRange.php index 85bdf6347ae..8881e59118f 100644 --- a/lib/models/MvvContactRange.php +++ b/lib/models/MvvContactRange.php @@ -12,24 +12,22 @@ * @category Stud.IP * @since 4.5 * - * @property string $id - * @property string $contact_range_id - * @property string $contact_id - * @property string $range_id - * @property string $range_type - * @property string $type - * @property string $category - * @property int|null $position - * @property string $author_id - * @property string $editor_id - * @property int $mkdate - * @property int $chdate - * - * @property MvvContact $contact - * - * @property int $count_relations - * @property string $name - * @property string $contact_status + * @property string $id alias column for contact_range_id + * @property string $contact_range_id database column + * @property string $contact_id database column + * @property string $range_id database column + * @property string $range_type database column + * @property string $type database column + * @property string $category database column + * @property int|null $position database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property MvvContact $contact belongs_to MvvContact + * @property-read mixed $count_relations additional field + * @property-read mixed $name additional field + * @property-read mixed $contact_status additional field */ class MvvContactRange extends ModuleManagementModel diff --git a/lib/models/MvvCourse.php b/lib/models/MvvCourse.php index 0e82d3bcb0f..78b6aeca0d4 100644 --- a/lib/models/MvvCourse.php +++ b/lib/models/MvvCourse.php @@ -12,6 +12,43 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for seminar_id + * @property string $seminar_id database column + * @property string|null $veranstaltungsnummer database column + * @property string $institut_id database column + * @property string $name database column + * @property string|null $untertitel database column + * @property int $status database column + * @property string $beschreibung database column + * @property string|null $ort database column + * @property string|null $sonstiges database column + * @property int $lesezugriff database column + * @property int $schreibzugriff database column + * @property int|null $start_time database column + * @property int|null $duration_time database column + * @property string|null $art database column + * @property string|null $teilnehmer database column + * @property string|null $vorrausetzungen database column + * @property string|null $lernorga database column + * @property string|null $leistungsnachweis database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $ects database column + * @property int|null $admission_turnout database column + * @property int|null $admission_binding database column + * @property int $admission_prelim database column + * @property string|null $admission_prelim_txt database column + * @property int $admission_disable_waitlist database column + * @property int $visible database column + * @property int|null $showscore database column + * @property string|null $aux_lock_rule database column + * @property int $aux_lock_rule_forced database column + * @property string|null $lock_rule database column + * @property int $admission_waitlist_max database column + * @property int $admission_disable_waitlist_move database column + * @property int $completion database column + * @property string|null $parent_course database column */ class MvvCourse extends ModuleManagementModelTreeItem diff --git a/lib/models/MvvExternContact.php b/lib/models/MvvExternContact.php index 855d276012c..504de65d994 100644 --- a/lib/models/MvvExternContact.php +++ b/lib/models/MvvExternContact.php @@ -11,6 +11,19 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property string $id alias column for extern_contact_id + * @property string $extern_contact_id database column + * @property I18NString $name database column + * @property string|null $vorname database column + * @property I18NString $homepage database column + * @property string $mail database column + * @property string $tel database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property MvvContact $MvvContact belongs_to MvvContact */ class MvvExternContact extends ModuleManagementModel diff --git a/lib/models/MvvFile.php b/lib/models/MvvFile.php index 109ac2b6e4f..50cd9b21a98 100644 --- a/lib/models/MvvFile.php +++ b/lib/models/MvvFile.php @@ -11,6 +11,21 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property string $id alias column for mvvfile_id + * @property string $mvvfile_id database column + * @property int|null $year database column + * @property string|null $type database column + * @property string|null $category database column + * @property string|null $tags database column + * @property int|null $extern_visible database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|MvvFileFileref[] $file_refs has_many MvvFileFileref + * @property SimpleORMapCollection|MvvFileRange[] $ranges has_many MvvFileRange + * @property-read mixed $count_relations additional field */ class MvvFile extends ModuleManagementModel diff --git a/lib/models/MvvFileFileref.php b/lib/models/MvvFileFileref.php index 0771055936e..fe2e9e62472 100644 --- a/lib/models/MvvFileFileref.php +++ b/lib/models/MvvFileFileref.php @@ -11,6 +11,20 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property array $id alias for pk + * @property string $mvvfile_id database column + * @property string $file_language database column + * @property string $name database column + * @property string $fileref_id database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property MvvFile $mvv_file belongs_to MvvFile + * @property FileRef $file_ref belongs_to FileRef + * @property-read mixed $filetype additional field + * @property-read mixed $filename additional field */ class MvvFileFileref extends ModuleManagementModel diff --git a/lib/models/MvvFileRange.php b/lib/models/MvvFileRange.php index 35e2329751d..9f0dc8d7bf8 100644 --- a/lib/models/MvvFileRange.php +++ b/lib/models/MvvFileRange.php @@ -11,6 +11,17 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property array $id alias for pk + * @property string $mvvfile_id database column + * @property string $range_id database column + * @property-read mixed $range_type additional field + * @property int|null $position database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property MvvFile $mvv_file belongs_to MvvFile */ class MvvFileRange extends ModuleManagementModel diff --git a/lib/models/MvvOverlappingConflict.class.php b/lib/models/MvvOverlappingConflict.class.php index a36f6bf8d93..6ac8e298648 100644 --- a/lib/models/MvvOverlappingConflict.class.php +++ b/lib/models/MvvOverlappingConflict.class.php @@ -12,6 +12,29 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.4 + * + * @property int $id alias column for conflict_id + * @property int $conflict_id database column + * @property int $selection_id database column + * @property string $base_abschnitt_id database column + * @property string $base_modulteil_id database column + * @property string $base_course_id database column + * @property string $base_metadate_id database column + * @property string $comp_abschnitt_id database column + * @property string $comp_modulteil_id database column + * @property string $comp_course_id database column + * @property string $comp_metadate_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property MvvOverlappingSelection $selection belongs_to MvvOverlappingSelection + * @property StgteilAbschnitt $base_abschnitt belongs_to StgteilAbschnitt + * @property Modulteil $base_modulteil belongs_to Modulteil + * @property SeminarCycleDate $base_cycle belongs_to SeminarCycleDate + * @property Course $base_course belongs_to Course + * @property StgteilAbschnitt $comp_abschnitt belongs_to StgteilAbschnitt + * @property Modulteil $comp_modulteil belongs_to Modulteil + * @property SeminarCycleDate $comp_cycle belongs_to SeminarCycleDate + * @property Course $comp_course belongs_to Course */ class MvvOverlappingConflict extends SimpleORMap diff --git a/lib/models/MvvOverlappingExclude.php b/lib/models/MvvOverlappingExclude.php index a940787360a..d199e3040b5 100644 --- a/lib/models/MvvOverlappingExclude.php +++ b/lib/models/MvvOverlappingExclude.php @@ -13,6 +13,14 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.4 + * + * @property array $id alias for pk + * @property string $selection_id database column + * @property string $course_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property MvvOverlappingSelection $selection belongs_to MvvOverlappingSelection + * @property Course $course belongs_to Course */ class MvvOverlappingExclude extends SimpleORMap diff --git a/lib/models/MvvOverlappingSelection.class.php b/lib/models/MvvOverlappingSelection.class.php index 8dc2ef08287..9d159e2d6f9 100644 --- a/lib/models/MvvOverlappingSelection.class.php +++ b/lib/models/MvvOverlappingSelection.class.php @@ -12,6 +12,23 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.4 + * + * @property int $id database column + * @property string $selection_id database column + * @property string $semester_id database column + * @property string $base_version_id database column + * @property string $comp_version_id database column + * @property string $fachsems database column + * @property string $semtypes database column + * @property string $user_id database column + * @property int $show_excluded database column + * @property int $mkdate database column + * @property SimpleORMapCollection|MvvOverlappingConflict[] $conflicts has_many MvvOverlappingConflict + * @property SimpleORMapCollection|MvvOverlappingExclude[] $excludes has_many MvvOverlappingExclude + * @property Semester $semester belongs_to Semester + * @property StgteilVersion $base_version belongs_to StgteilVersion + * @property StgteilVersion $comp_version belongs_to StgteilVersion + * @property User $user belongs_to User */ class MvvOverlappingSelection extends SimpleORMap diff --git a/lib/models/NewsRange.class.php b/lib/models/NewsRange.class.php index 0bcaaa6c6c3..d780b55abac 100644 --- a/lib/models/NewsRange.class.php +++ b/lib/models/NewsRange.class.php @@ -12,14 +12,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string news_id database column - * @property string range_id database column - * @property string type computed column - * @property string name computed column - * @property string id computed column read/write - * @property User user belongs_to User - * @property Course course belongs_to Course - * @property Institute institute belongs_to Institute + * @property array $id alias for pk + * @property string $news_id database column + * @property string $range_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property User $user belongs_to User + * @property Course $course belongs_to Course + * @property Institute $institute belongs_to Institute + * @property mixed $type additional field + * @property mixed $name additional field */ class NewsRange extends SimpleORMap { diff --git a/lib/models/NewsRoles.class.php b/lib/models/NewsRoles.class.php index e2de5f85001..56da6ec6017 100644 --- a/lib/models/NewsRoles.class.php +++ b/lib/models/NewsRoles.class.php @@ -14,8 +14,10 @@ * @package admin * @since 5.1 * - * @property string news_id database column - * @property int roleid database column + * @property array $id alias for pk + * @property string $news_id database column + * @property int $roleid database column + * @property StudipNews $news_ranges belongs_to StudipNews */ class NewsRoles extends SimpleORMap diff --git a/lib/models/OERDownloadcounter.php b/lib/models/OERDownloadcounter.php index 4e0a6877906..c772eaaa6cc 100644 --- a/lib/models/OERDownloadcounter.php +++ b/lib/models/OERDownloadcounter.php @@ -1,4 +1,14 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for counter_id + * @property string $counter_id database column + * @property string $material_id database column + * @property float|null $longitude database column + * @property float|null $latitude database column + * @property int|null $mkdate database column + */ class OERDownloadcounter extends SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/OERHost.php b/lib/models/OERHost.php index 6db0747c6ca..5e6d71cb773 100644 --- a/lib/models/OERHost.php +++ b/lib/models/OERHost.php @@ -1,5 +1,22 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for host_id + * @property string $host_id database column + * @property string $sorm_class database column + * @property string $name database column + * @property string $url database column + * @property string $public_key database column + * @property string|null $private_key database column + * @property int $active database column + * @property int $index_server database column + * @property int $allowed_as_index_server database column + * @property int $last_updated database column + * @property int $chdate database column + * @property int $mkdate database column + */ class OERHost extends OERIdentity { diff --git a/lib/models/OERHostOERSI.php b/lib/models/OERHostOERSI.php index a6c55918bfe..1b5528bea9f 100644 --- a/lib/models/OERHostOERSI.php +++ b/lib/models/OERHostOERSI.php @@ -1,5 +1,22 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for host_id + * @property string $host_id database column + * @property string $sorm_class database column + * @property string $name database column + * @property string $url database column + * @property string $public_key database column + * @property string|null $private_key database column + * @property int $active database column + * @property int $index_server database column + * @property int $allowed_as_index_server database column + * @property int $last_updated database column + * @property int $chdate database column + * @property int $mkdate database column + */ class OERHostOERSI extends OERHost { diff --git a/lib/models/OERMaterial.php b/lib/models/OERMaterial.php index f0e101d94df..d72853faacd 100644 --- a/lib/models/OERMaterial.php +++ b/lib/models/OERMaterial.php @@ -1,37 +1,37 @@ <?php /** - * @property string $id - * @property string $material_id - * @property string|null $foreign_material_id - * @property string|null $host_id - * @property string $name - * @property string $category - * @property bool $draft - * @property string $filename - * @property string|null $short_description - * @property string $description - * @property int $difficulty_start - * @property int $difficulty_end - * @property string|null $player_url - * @property string|null $tool - * @property string $content_type - * @property string|null $front_image_content_type - * @property JSONArrayObject $structure - * @property float $rating - * @property string $license_identifier - * @property string $uri - * @property string $uri_hash - * @property string|null $published_id_on_twillo - * @property string|null $source_url - * @property JSONArrayObject $data - * @property int $chdate - * @property int $mkdate * - * @property OERHost $host - * @property OERReview[]|SimpleORMapCollection $reviews - * @property OERMaterialUser[]|SimpleORMapCollection $users - * @property License $license + * @property string $id alias column for material_id + * @property string $material_id database column + * @property string|null $foreign_material_id database column + * @property string|null $host_id database column + * @property string $name database column + * @property string $category database column + * @property int $draft database column + * @property string $filename database column + * @property string|null $short_description database column + * @property string $description database column + * @property int $difficulty_start database column + * @property int $difficulty_end database column + * @property string|null $player_url database column + * @property string|null $tool database column + * @property string $content_type database column + * @property string|null $front_image_content_type database column + * @property JSONArrayObject|null $structure database column + * @property float|null $rating database column + * @property string $license_identifier database column + * @property string $uri database column + * @property string $uri_hash database column + * @property string|null $published_id_on_twillo database column + * @property string|null $source_url database column + * @property JSONArrayObject|null $data database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|OERReview[] $reviews has_many OERReview + * @property SimpleORMapCollection|OERMaterialUser[] $users has_many OERMaterialUser + * @property OERHost|null $host belongs_to OERHost + * @property License $license belongs_to License */ class OERMaterial extends SimpleORMap { @@ -55,8 +55,8 @@ class OERMaterial extends SimpleORMap 'class_name' => License::class, 'foreign_key' => 'license_identifier' ]; - $config['serialized_fields']['structure'] = 'JSONArrayObject'; - $config['serialized_fields']['data'] = 'JSONArrayObject'; + $config['serialized_fields']['structure'] = JSONArrayObject::class; + $config['serialized_fields']['data'] = JSONArrayObject::class; $config['registered_callbacks']['before_store'][] = "cbHashURI"; $config['registered_callbacks']['before_delete'][] = "cbDeleteFile"; parent::configure($config); diff --git a/lib/models/OERMaterialUser.php b/lib/models/OERMaterialUser.php index 9b4e1aa2829..b31a7119390 100644 --- a/lib/models/OERMaterialUser.php +++ b/lib/models/OERMaterialUser.php @@ -1,5 +1,18 @@ <?php +/** + * @license GPL2 or any later version + * + * @property array $id alias for pk + * @property string $material_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property ExternalUser $oeruser belongs_to ExternalUser + * @property OERMaterial $material belongs_to OERMaterial + */ class OERMaterialUser extends SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/OERPostUpload.php b/lib/models/OERPostUpload.php index 8bf73863f6f..1fab6202daa 100644 --- a/lib/models/OERPostUpload.php +++ b/lib/models/OERPostUpload.php @@ -12,11 +12,14 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 5.3 - * @property string file_ref_id database column - * @property string user_id database column - * @property int reminder_date database column - * @property string mkdate database column - * @property string chdate database column + * + * @property array $id alias for pk + * @property string $file_ref_id database column + * @property string $user_id database column + * @property int|null $reminder_date database column + * @property int $mkdate database column + * @property int $chdate database column + * @property File $file belongs_to File */ class OERPostUpload extends SimpleORMap { diff --git a/lib/models/OERReview.php b/lib/models/OERReview.php index 58a25e457f4..3655c570bf5 100644 --- a/lib/models/OERReview.php +++ b/lib/models/OERReview.php @@ -1,5 +1,28 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for thread_id + * @property string $thread_id database column + * @property string $context_type database column + * @property string $context_id database column + * @property string $user_id database column + * @property int $external_contact database column + * @property string|null $content database column + * @property string|null $display_class database column + * @property int $visible_in_stream database column + * @property int $commentable database column + * @property JSONArrayObject|null $metadata database column + * @property int|null $chdate database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|BlubberComment[] $comments has_many BlubberComment + * @property SimpleORMapCollection|BlubberMention[] $mentions has_many BlubberMention + * @property SimpleORMapCollection|ObjectUserVisit[] $visits has_many ObjectUserVisit + * @property OERMaterial $material belongs_to OERMaterial + * @property User $user belongs_to User + * @property OERHost $host has_one OERHost + */ class OERReview extends BlubberThread { protected static function configure($config = []) diff --git a/lib/models/OERTag.php b/lib/models/OERTag.php index cfefcc64725..a1e49616804 100644 --- a/lib/models/OERTag.php +++ b/lib/models/OERTag.php @@ -1,5 +1,12 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for tag_hash + * @property string $tag_hash database column + * @property string $name database column + */ class OERTag extends SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/ObjectUserVisit.php b/lib/models/ObjectUserVisit.php index 90a331e042a..167ae8cb3a8 100644 --- a/lib/models/ObjectUserVisit.php +++ b/lib/models/ObjectUserVisit.php @@ -1,13 +1,14 @@ <?php /** - * @property array $id - * @property string $object_id - * @property string $user_id - * @property int $plugin_id - * @property int $visitdate - * @property int $last_visitdate - * @property User $user + * + * @property array $id alias for pk + * @property string $object_id database column + * @property string $user_id database column + * @property int $plugin_id database column + * @property int $visitdate database column + * @property int $last_visitdate database column + * @property User $user belongs_to User */ class ObjectUserVisit extends SimpleORMap { diff --git a/lib/models/OpenGraphURL.class.php b/lib/models/OpenGraphURL.class.php index 62eecc45145..29e5718ff0d 100644 --- a/lib/models/OpenGraphURL.class.php +++ b/lib/models/OpenGraphURL.class.php @@ -12,17 +12,20 @@ * A model class to handle the database table "opengraphdata", fetch data from * an Opengraph-URL and render a fitting box with the opengraph information to * the user. - * @property string url database column - * @property string id alias column for url - * @property string is_opengraph database column - * @property string title database column - * @property string image database column - * @property string description database column - * @property string type database column - * @property string data database column - * @property string last_update database column - * @property string chdate database column - * @property string mkdate database column + * + * @property int $id alias column for opengraph_id + * @property int $opengraph_id database column + * @property string $hash database column + * @property string $url database column + * @property int|null $is_opengraph database column + * @property string|null $title database column + * @property string|null $image database column + * @property string|null $description database column + * @property string|null $type database column + * @property JSONArrayObject $data database column + * @property int $last_update database column + * @property int $chdate database column + * @property int $mkdate database column */ class OpenGraphURL extends SimpleORMap { @@ -37,7 +40,7 @@ class OpenGraphURL extends SimpleORMap { $config['db_table'] = 'opengraphdata'; - $config['serialized_fields']['data'] = 'JSONArrayObject'; + $config['serialized_fields']['data'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/PersonalNotifications.class.php b/lib/models/PersonalNotifications.class.php index 9218bc0bb68..efa44c16b70 100644 --- a/lib/models/PersonalNotifications.class.php +++ b/lib/models/PersonalNotifications.class.php @@ -29,13 +29,15 @@ * @category Stud.IP * @since 2.4 * - * @property string personal_notification_id database column - * @property string id alias column for personal_notification_id - * @property string url database column - * @property string text database column - * @property string avatar database column - * @property string html_id database column - * @property string mkdate database column + * @property int $id alias column for personal_notification_id + * @property int $personal_notification_id database column + * @property string $url database column + * @property string $text database column + * @property string $avatar database column + * @property int $dialog database column + * @property string $html_id database column + * @property int $mkdate database column + * @property mixed $more_unseen additional field */ class PersonalNotifications extends SimpleORMap { diff --git a/lib/models/PersonalNotificationsUser.php b/lib/models/PersonalNotificationsUser.php index 3363bb5b8a7..e8f74d8b52c 100644 --- a/lib/models/PersonalNotificationsUser.php +++ b/lib/models/PersonalNotificationsUser.php @@ -1,5 +1,14 @@ <?php +/** + * @license GPL2 or any later version + * + * @property array $id alias for pk + * @property int $personal_notification_id database column + * @property string $user_id database column + * @property int $seen database column + * @property PersonalNotifications $notification belongs_to PersonalNotifications + */ class PersonalNotificationsUser extends SimpleORMap { protected static function configure($config = []) diff --git a/lib/models/Plugin.php b/lib/models/Plugin.php index 2030e8a3c82..7e4343a1fc7 100644 --- a/lib/models/Plugin.php +++ b/lib/models/Plugin.php @@ -1,17 +1,22 @@ <?php /** - * @property int $id - * @property int $pluginid - * @property string $pluginclassname - * @property string $pluginpath - * @property string $pluginname - * @property string $plugintype - * @property string $enabled - * @property int $navigationpos - * @property int|null $dependentonid - * @property string|null $automatic_update_url - * @property string|null $automatic_update_secret + * + * @property int $id alias column for pluginid + * @property int $pluginid database column + * @property string $pluginclassname database column + * @property string $pluginpath database column + * @property string $pluginname database column + * @property string $plugintype database column + * @property string $enabled database column + * @property int $navigationpos database column + * @property int|null $dependentonid database column + * @property string|null $automatic_update_url database column + * @property string|null $automatic_update_secret database column + * @property I18NString|null $description database column + * @property string|null $description_mode database column + * @property int|null $highlight_until database column + * @property I18NString|null $highlight_text database column */ class Plugin extends SimpleORMap { diff --git a/lib/models/PluginAsset.php b/lib/models/PluginAsset.php index dbd4c2ba940..5f9a73d4424 100644 --- a/lib/models/PluginAsset.php +++ b/lib/models/PluginAsset.php @@ -5,6 +5,16 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since Stud.IP 3.4 + * + * @property string $id alias column for asset_id + * @property string $asset_id database column + * @property int $plugin_id database column + * @property string|null $type database column + * @property string $filename database column + * @property string $storagename database column + * @property int|null $size database column + * @property int $mkdate database column + * @property int $chdate database column */ class PluginAsset extends SimpleORMap { diff --git a/lib/models/Questionnaire.php b/lib/models/Questionnaire.php index 7a250442879..f29a2de7f1b 100644 --- a/lib/models/Questionnaire.php +++ b/lib/models/Questionnaire.php @@ -1,23 +1,23 @@ <?php /** - * @property string $id - * @property string $questionnaire_id - * @property string $title - * @property string $description - * @property string $user_id - * @property int|null $startdate - * @property int|null $stopdate - * @property bool $visible - * @property bool $anonymous - * @property string $resultvisibility - * @property bool $editanswers - * @property bool $copyable - * @property string $chdate - * @property string $mkdate * - * @property QuestionnaireQuestion[]|SimpleORMapCollection $questions - * @property QuestionnaireAssignment[]|SimpleORMapCollection $assignments - * @property QuestionnaireAnonymousAnswer[]|SimpleORMapCollection $anonymousanswers + * @property string $id alias column for questionnaire_id + * @property string $questionnaire_id database column + * @property string $title database column + * @property string|null $description database column + * @property string $user_id database column + * @property int|null $startdate database column + * @property int|null $stopdate database column + * @property int $visible database column + * @property int $anonymous database column + * @property string $resultvisibility database column + * @property int $editanswers database column + * @property int $copyable database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireQuestion[] $questions has_many QuestionnaireQuestion + * @property SimpleORMapCollection|QuestionnaireAssignment[] $assignments has_many QuestionnaireAssignment + * @property SimpleORMapCollection|QuestionnaireAnonymousAnswer[] $anonymousanswers has_many QuestionnaireAnonymousAnswer */ class Questionnaire extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/QuestionnaireAnonymousAnswer.php b/lib/models/QuestionnaireAnonymousAnswer.php index e2bf1cad081..d72ba8f27bf 100644 --- a/lib/models/QuestionnaireAnonymousAnswer.php +++ b/lib/models/QuestionnaireAnonymousAnswer.php @@ -1,5 +1,16 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for anonymous_answer_id + * @property string $anonymous_answer_id database column + * @property string $questionnaire_id database column + * @property string $user_id database column + * @property int $chdate database column + * @property int $mkdate database column + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class QuestionnaireAnonymousAnswer extends SimpleORMap implements PrivacyObject { protected static function configure($config = []) diff --git a/lib/models/QuestionnaireAnswer.php b/lib/models/QuestionnaireAnswer.php index 4713b7f7264..a204d86689d 100644 --- a/lib/models/QuestionnaireAnswer.php +++ b/lib/models/QuestionnaireAnswer.php @@ -1,5 +1,18 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for answer_id + * @property string $answer_id database column + * @property string $question_id database column + * @property string|null $user_id database column + * @property JSONArrayObject $answerdata database column + * @property int $chdate database column + * @property int $mkdate database column + * @property QuestionnaireQuestion $question belongs_to QuestionnaireQuestion + * @property User|null $user belongs_to User + */ class QuestionnaireAnswer extends SimpleORMap implements PrivacyObject { protected static function configure($config = []) @@ -13,7 +26,7 @@ class QuestionnaireAnswer extends SimpleORMap implements PrivacyObject 'class_name' => User::class, 'foreign_key' => 'user_id' ]; - $config['serialized_fields']['answerdata'] = "JSONArrayObject"; + $config['serialized_fields']['answerdata'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/QuestionnaireAssignment.php b/lib/models/QuestionnaireAssignment.php index e8ef6d98479..be921f825b9 100644 --- a/lib/models/QuestionnaireAssignment.php +++ b/lib/models/QuestionnaireAssignment.php @@ -1,5 +1,18 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for assignment_id + * @property string $assignment_id database column + * @property string $questionnaire_id database column + * @property string $range_id database column + * @property string $range_type database column + * @property string $user_id database column + * @property int $chdate database column + * @property int $mkdate database column + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class QuestionnaireAssignment extends SimpleORMap implements PrivacyObject { protected static function configure($config = []) diff --git a/lib/models/QuestionnaireInfo.php b/lib/models/QuestionnaireInfo.php index e68a1e6fb75..fc6efc7bbef 100644 --- a/lib/models/QuestionnaireInfo.php +++ b/lib/models/QuestionnaireInfo.php @@ -1,4 +1,19 @@ <?php +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class QuestionnaireInfo extends QuestionnaireQuestion implements QuestionType { public static function getIcon(bool $active = false) : Icon diff --git a/lib/models/QuestionnaireQuestion.php b/lib/models/QuestionnaireQuestion.php index 1e3734091f5..e5a594733bc 100644 --- a/lib/models/QuestionnaireQuestion.php +++ b/lib/models/QuestionnaireQuestion.php @@ -2,6 +2,21 @@ use eTask\Task; +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class QuestionnaireQuestion extends SimpleORMap { protected static function configure($config = []) @@ -17,7 +32,7 @@ class QuestionnaireQuestion extends SimpleORMap 'on_delete' => 'delete', 'on_store' => 'store' ]; - $config['serialized_fields']['questiondata'] = 'JSONArrayObject'; + $config['serialized_fields']['questiondata'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/RangeScale.php b/lib/models/RangeScale.php index 3c89195704f..8d0cfaf29e7 100644 --- a/lib/models/RangeScale.php +++ b/lib/models/RangeScale.php @@ -1,6 +1,21 @@ <?php require_once 'lib/classes/QuestionType.interface.php'; +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class RangeScale extends QuestionnaireQuestion implements QuestionType { public static function getIcon(bool $active = false) : Icon diff --git a/lib/models/RangeTreeNode.php b/lib/models/RangeTreeNode.php index c142579e05d..4c4ae0df6c6 100644 --- a/lib/models/RangeTreeNode.php +++ b/lib/models/RangeTreeNode.php @@ -15,15 +15,17 @@ * @category Stud.IP * @since 5.3 * - * - * @property string id database column - * @property string item_id database column - * @property string parent_id database column - * @property int level database column - * @property int priority database column - * @property string name database column - * @property string studip_object database column - * @property string studip_object_id database column + * @property string $id alias column for item_id + * @property string $item_id database column + * @property string $parent_id database column + * @property int $level database column + * @property int $priority database column + * @property string $name database column + * @property string|null $studip_object database column + * @property string|null $studip_object_id database column + * @property SimpleORMapCollection|RangeTreeNode[] $children has_many RangeTreeNode + * @property Institute|null $institute belongs_to Institute + * @property RangeTreeNode $parent belongs_to RangeTreeNode */ class RangeTreeNode extends SimpleORMap implements StudipTreeNode { diff --git a/lib/models/Semester.class.php b/lib/models/Semester.class.php index a380781196d..4eefa3b886c 100644 --- a/lib/models/Semester.class.php +++ b/lib/models/Semester.class.php @@ -13,17 +13,28 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string semester_id database column - * @property string id alias column for semester_id - * @property string name database column - * @property string semester_token database column - * @property string beginn database column - * @property string ende database column - * @property string vorles_beginn database column - * @property string vorles_ende database column - * @property string first_sem_week computed column - * @property string last_sem_week computed column - * @property string past computed column + * @property string $id alias column for semester_id + * @property string $semester_id database column + * @property I18NString $name database column + * @property I18NString $semester_token database column + * @property I18NString $token alias column for semester_token + * @property int|null $beginn database column + * @property int|null $ende database column + * @property int|null $sem_wechsel database column + * @property int|null $vorles_beginn database column + * @property int|null $vorles_ende database column + * @property int $visible database column + * @property string|null $external_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property-read mixed $first_sem_week additional field + * @property-read mixed $last_sem_week additional field + * @property-read mixed $current additional field + * @property-read mixed $past additional field + * @property-read mixed $short_name additional field + * @property mixed $absolute_seminars_count additional field + * @property mixed $duration_seminars_count additional field + * @property mixed $continuous_seminars_count additional field */ class Semester extends SimpleORMap { diff --git a/lib/models/SemesterCourse.class.php b/lib/models/SemesterCourse.class.php index 0fc6af3f5da..04590e34ae4 100644 --- a/lib/models/SemesterCourse.class.php +++ b/lib/models/SemesterCourse.class.php @@ -16,15 +16,13 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string semester_id The ID of a semester. - * @property string course_id The ID of a course. - * @property string mkdate The database entry's creation date. - * @property string chdate The database entry's last modification date. - * - * @property Semester $semester - * @property Course $course - * - * The combination of semester_id and course_id form the primary key. + * @property array $id alias for pk + * @property string $semester_id database column + * @property string $course_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Semester $semester belongs_to Semester + * @property Course $course belongs_to Course */ class SemesterCourse extends SimpleORMap { diff --git a/lib/models/SemesterHoliday.class.php b/lib/models/SemesterHoliday.class.php index ee3d2bcb1ef..90f9ecd3f3f 100644 --- a/lib/models/SemesterHoliday.class.php +++ b/lib/models/SemesterHoliday.class.php @@ -12,13 +12,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string holiday_id database column - * @property string id alias column for holiday_id - * @property string semester_id database column - * @property string name database column - * @property string description database column - * @property string beginn database column - * @property string ende database column + * @property string $id alias column for holiday_id + * @property string $holiday_id database column + * @property string $semester_id database column + * @property string $name database column + * @property string $description database column + * @property int|null $beginn database column + * @property int $ende database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property mixed $current additional field */ class SemesterHoliday extends SimpleORMap diff --git a/lib/models/SeminarCycleDate.class.php b/lib/models/SeminarCycleDate.class.php index 50f7105e764..36884f04b72 100644 --- a/lib/models/SeminarCycleDate.class.php +++ b/lib/models/SeminarCycleDate.class.php @@ -18,28 +18,30 @@ require_once 'lib/dates.inc.php'; * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 2.0 - * @property string metadate_id database column - * @property string id alias column for metadate_id - * @property string seminar_id database column - * @property string start_time database column - * @property string end_time database column - * @property string weekday database column - * @property string description database column - * @property string sws database column - * @property string cycle database column - * @property string week_offset database column - * @property string end_offset database column - * @property string sorter database column - * @property string mkdate database column - * @property string chdate database column - * @property string start_hour computed column read/write - * @property string start_minute computed column read/write - * @property string end_hour computed column read/write - * @property string end_minute computed column read/write - * @property SimpleORMapCollection dates has_many CourseDate - * @property Course course belongs_to Course - * @property RoomRequest room_requests has_many RoomRequest - * @property bool is_visible computed column read + * + * @property string $id alias column for metadate_id + * @property string $metadate_id database column + * @property string $seminar_id database column + * @property string $start_time database column + * @property string $end_time database column + * @property int $weekday database column + * @property string $description database column + * @property float $sws database column + * @property int $cycle database column + * @property int $week_offset database column + * @property int|null $end_offset database column + * @property int $sorter database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|RoomRequest[] $room_requests has_many RoomRequest + * @property SimpleORMapCollection|CourseDate[] $dates has_many CourseDate + * @property SimpleORMapCollection|CourseExDate[] $exdates has_many CourseExDate + * @property Course $course belongs_to Course + * @property mixed $start_hour additional field + * @property mixed $start_minute additional field + * @property mixed $end_hour additional field + * @property mixed $end_minute additional field + * @property-read mixed $is_visible additional field */ class SeminarCycleDate extends SimpleORMap { diff --git a/lib/models/StatusgruppeUser.php b/lib/models/StatusgruppeUser.php index 44fda262672..7bd3133cc05 100644 --- a/lib/models/StatusgruppeUser.php +++ b/lib/models/StatusgruppeUser.php @@ -15,14 +15,22 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string statusgruppe_id database column - * @property string user_id database column - * @property string position database column - * @property string visible database column - * @property string inherit database column - * @property string id computed column read/write - * @property Statusgruppen group belongs_to Statusgruppen - * @property User user belongs_to User + * @property array $id alias for pk + * @property string $statusgruppe_id database column + * @property string $user_id database column + * @property int $position database column + * @property int $visible database column + * @property int $inherit database column + * @property int|null $mkdate database column + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property Statusgruppen $group belongs_to Statusgruppen + * @property User $user belongs_to User + * @property mixed $vorname additional field + * @property mixed $nachname additional field + * @property mixed $username additional field + * @property mixed $email additional field + * @property mixed $title_front additional field + * @property mixed $title_rear additional field */ class StatusgruppeUser extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/Statusgruppen.php b/lib/models/Statusgruppen.php index ebf8e133f00..5775abd01d1 100644 --- a/lib/models/Statusgruppen.php +++ b/lib/models/Statusgruppen.php @@ -17,28 +17,31 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string statusgruppe_id database column - * @property string id alias column for statusgruppe_id - * @property string name database column - * @property string range_id database column - * @property string position database column - * @property string size database column - * @property string selfassign database column - * @property string selfassign_start database column - * @property string mkdate database column - * @property string chdate database column - * @property string calendar_group database column - * @property string name_w database column - * @property string name_m database column - * @property string children computed column - * @property SimpleORMapCollection members has_many StatusgruppeUser - * @property Statusgruppen parent belongs_to Statusgruppen - * @property Course course belongs_to course - * @property Institute institute belongs_to institute - * @property User user belongs_to user - * - * @property ConsultationBlock[]|SimpleORMapCollection $consultation_blocks - * @property ConsultationResponsibility[]|SimpleORMapCollection $consultation_responsibilities + * @property string $id alias column for statusgruppe_id + * @property string $statusgruppe_id database column + * @property I18NString $name database column + * @property string|null $description database column + * @property string $range_id database column + * @property int $position database column + * @property int $size database column + * @property int $selfassign database column + * @property int $selfassign_start database column + * @property int $selfassign_end database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $calendar_group database column + * @property I18NString|null $name_w database column + * @property I18NString|null $name_m database column + * @property SimpleORMapCollection|StatusgruppeUser[] $members has_many StatusgruppeUser + * @property SimpleORMapCollection|ConsultationBlock[] $consultation_blocks has_many ConsultationBlock + * @property SimpleORMapCollection|ConsultationResponsibility[] $consultation_responsibilities has_many ConsultationResponsibility + * @property Statusgruppen $parent belongs_to Statusgruppen + * @property Course $course belongs_to Course + * @property Institute $institute belongs_to Institute + * @property User $user belongs_to User + * @property BlubberStatusgruppeThread $blubberthread has_one BlubberStatusgruppeThread + * @property SimpleORMapCollection|CourseDate[] $dates has_and_belongs_to_many CourseDate + * @property mixed $children additional field */ class Statusgruppen extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/StgteilAbschnitt.php b/lib/models/StgteilAbschnitt.php index 6e758a50551..75a6cc8a583 100644 --- a/lib/models/StgteilAbschnitt.php +++ b/lib/models/StgteilAbschnitt.php @@ -12,6 +12,24 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for abschnitt_id + * @property string $abschnitt_id database column + * @property string $version_id database column + * @property int $position database column + * @property I18NString $name database column + * @property I18NString|null $kommentar database column + * @property float|null $kp database column + * @property I18NString|null $ueberschrift database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|StgteilabschnittModul[] $modul_zuordnungen has_many StgteilabschnittModul + * @property SimpleORMapCollection|ModulteilStgteilabschnitt[] $modulteil_abschnitte has_many ModulteilStgteilabschnitt + * @property StgteilVersion $version belongs_to StgteilVersion + * @property SimpleORMapCollection|Modul[] $module has_and_belongs_to_many Modul + * @property mixed $count_module additional field */ class StgteilAbschnitt extends ModuleManagementModelTreeItem diff --git a/lib/models/StgteilBezeichnung.php b/lib/models/StgteilBezeichnung.php index 926e6ab81b9..ba6ddd9053c 100644 --- a/lib/models/StgteilBezeichnung.php +++ b/lib/models/StgteilBezeichnung.php @@ -12,6 +12,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for stgteil_bez_id + * @property string $stgteil_bez_id database column + * @property I18NString $name database column + * @property I18NString $name_kurz database column + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property mixed $count_stgteile additional field + * @property mixed $count_studiengaenge additional field */ class StgteilBezeichnung extends ModuleManagementModel diff --git a/lib/models/StgteilVersion.php b/lib/models/StgteilVersion.php index 7d713747097..b2b56e262c7 100644 --- a/lib/models/StgteilVersion.php +++ b/lib/models/StgteilVersion.php @@ -12,6 +12,29 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for version_id + * @property string $version_id database column + * @property string $stgteil_id database column + * @property string|null $start_sem database column + * @property string|null $end_sem database column + * @property string|null $code database column + * @property int|null $beschlussdatum database column + * @property int|null $fassung_nr database column + * @property string|null $fassung_typ database column + * @property I18NString|null $beschreibung database column + * @property string|null $stat database column + * @property string|null $kommentar_status database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|StgteilAbschnitt[] $abschnitte has_many StgteilAbschnitt + * @property SimpleORMapCollection|MvvFile[] $documents has_many MvvFile + * @property SimpleORMapCollection|MvvFile[] $document_assignments has_many MvvFile + * @property StudiengangTeil $studiengangteil belongs_to StudiengangTeil + * @property-read mixed $count_abschnitte additional field + * @property-read mixed $count_dokumente additional field */ class StgteilVersion extends ModuleManagementModelTreeItem diff --git a/lib/models/StgteilabschnittModul.php b/lib/models/StgteilabschnittModul.php index 020c0deedec..6b2f01f7c90 100644 --- a/lib/models/StgteilabschnittModul.php +++ b/lib/models/StgteilabschnittModul.php @@ -13,6 +13,21 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for abschnitt_modul_id + * @property string $abschnitt_modul_id database column + * @property string $abschnitt_id database column + * @property string $modul_id database column + * @property string|null $flexnow_modul database column + * @property string|null $modulcode database column + * @property int $position database column + * @property I18NString|null $bezeichnung database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Modul $modul belongs_to Modul + * @property StgteilAbschnitt $abschnitt belongs_to StgteilAbschnitt */ class StgteilabschnittModul extends ModuleManagementModelTreeItem diff --git a/lib/models/StockImage.php b/lib/models/StockImage.php index 54d09921d0b..0885536629f 100644 --- a/lib/models/StockImage.php +++ b/lib/models/StockImage.php @@ -1,19 +1,20 @@ <?php /** - * @property string $id database column - * @property string $title database column + * + * @property int $id database column + * @property string $title database column * @property string $description database column - * @property string $license database column - * @property string $author database column - * @property string $mime_type database column - * @property int $size database column - * @property int $width database column - * @property int $height database column - * @property string $palette database column - * @property string $tags database column - * @property int $mkdate database column - * @property int $chdate database column + * @property string $license database column + * @property string $author database column + * @property string $mime_type database column + * @property int $size database column + * @property int $width database column + * @property int $height database column + * @property string $palette database column + * @property string $tags database column + * @property int $mkdate database column + * @property int $chdate database column */ class StockImage extends \SimpleORMap { diff --git a/lib/models/Studiengang.php b/lib/models/Studiengang.php index eccd0cd4f85..9c9be779b70 100644 --- a/lib/models/Studiengang.php +++ b/lib/models/Studiengang.php @@ -12,6 +12,50 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for studiengang_id + * @property string $studiengang_id database column + * @property string|null $abschluss_id database column + * @property string $typ database column + * @property I18NString $name database column + * @property I18NString|null $name_kurz database column + * @property I18NString|null $beschreibung database column + * @property string|null $institut_id database column + * @property string|null $start database column + * @property string|null $end database column + * @property int|null $beschlussdatum database column + * @property int|null $fassung_nr database column + * @property string|null $fassung_typ database column + * @property string|null $stat database column + * @property string|null $kommentar_status database column + * @property string|null $schlagworte database column + * @property int|null $studienzeit database column + * @property int|null $studienplaetze database column + * @property string|null $abschlussgrad database column + * @property string|null $enroll database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|StudiengangStgteil[] $stgteil_assignments has_many StudiengangStgteil + * @property SimpleORMapCollection|MvvFile[] $documents has_many MvvFile + * @property SimpleORMapCollection|MvvFileRange[] $document_assignments has_many MvvFileRange + * @property SimpleORMapCollection|MvvContactRange[] $contact_assignments has_many MvvContactRange + * @property SimpleORMapCollection|StudycourseType[] $studycourse_types has_many StudycourseType + * @property SimpleORMapCollection|StudycourseLanguage[] $languages has_many StudycourseLanguage + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property SimpleORMapCollection|Aufbaustudiengang[] $grundstg_assignments has_many Aufbaustudiengang + * @property SimpleORMapCollection|Aufbaustudiengang[] $aufbaustg_assignments has_many Aufbaustudiengang + * @property Abschluss|null $abschluss belongs_to Abschluss + * @property Fachbereich|null $responsible_institute has_one Fachbereich + * @property SimpleORMapCollection|StudiengangTeil[] $studiengangteile has_and_belongs_to_many StudiengangTeil + * @property SimpleORMapCollection|StgteilBezeichnung[] $stgteil_bezeichnungen has_and_belongs_to_many StgteilBezeichnung + * @property-read mixed $count_dokumente additional field + * @property-read mixed $count_faecher additional field + * @property-read mixed $count_module additional field + * @property-read mixed $institut_name additional field + * @property-read mixed $kategorie_name additional field + * @property-read mixed $display_name additional field */ class Studiengang extends ModuleManagementModelTreeItem diff --git a/lib/models/StudiengangStgteil.php b/lib/models/StudiengangStgteil.php index 99140220fff..b37cd538e53 100644 --- a/lib/models/StudiengangStgteil.php +++ b/lib/models/StudiengangStgteil.php @@ -13,6 +13,22 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property array $id alias for pk + * @property string $studiengang_id database column + * @property string $stgteil_id database column + * @property string $stgteil_bez_id database column + * @property int $position database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Studiengang $studiengang belongs_to Studiengang + * @property StudiengangTeil $studiengangteil belongs_to StudiengangTeil + * @property StgteilBezeichnung $stgteil_bezeichnung has_one StgteilBezeichnung + * @property-read mixed $stgteil_name additional field + * @property-read mixed $stgbez_id additional field + * @property-read mixed $stgbez_name additional field */ class StudiengangStgteil extends ModuleManagementModel diff --git a/lib/models/StudiengangTeil.php b/lib/models/StudiengangTeil.php index 0d73c3d8bb2..9292dd9b1b9 100644 --- a/lib/models/StudiengangTeil.php +++ b/lib/models/StudiengangTeil.php @@ -12,6 +12,26 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.5 + * + * @property string $id alias column for stgteil_id + * @property string $stgteil_id database column + * @property string|null $fach_id database column + * @property string|null $kp database column + * @property int|null $semester database column + * @property I18NString $zusatz database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|StgteilVersion[] $versionen has_many StgteilVersion + * @property SimpleORMapCollection|MvvContactRange[] $contact_assignments has_many MvvContactRange + * @property SimpleORMapCollection|StudiengangStgteil[] $studiengang_assignments has_many StudiengangStgteil + * @property Fach|null $fach belongs_to Fach + * @property SimpleORMapCollection|Studiengang[] $studiengang has_and_belongs_to_many Studiengang + * @property-read mixed $count_versionen additional field + * @property-read mixed $fach_name additional field + * @property-read mixed $count_contacts additional field + * @property-read mixed $stgteil_name additional field */ class StudiengangTeil extends ModuleManagementModelTreeItem diff --git a/lib/models/StudipCacheOperation.php b/lib/models/StudipCacheOperation.php index 938a75a5da0..e9c8738371e 100644 --- a/lib/models/StudipCacheOperation.php +++ b/lib/models/StudipCacheOperation.php @@ -11,6 +11,13 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since Stud.IP 3.3 + * + * @property array $id alias for pk + * @property string $cache_key database column + * @property string $operation database column + * @property string $parameters database column + * @property int $mkdate database column + * @property int $chdate database column */ class StudipCacheOperation extends SimpleORMap { diff --git a/lib/models/StudipComment.class.php b/lib/models/StudipComment.class.php index 226daab8b18..2e0389d5310 100644 --- a/lib/models/StudipComment.class.php +++ b/lib/models/StudipComment.class.php @@ -31,14 +31,14 @@ * @author André Noack <noack@data-quest>, Suchi & Berg GmbH <info@data-quest.de> * @access public * - * @property string comment_id database column - * @property string id alias column for comment_id - * @property string object_id database column - * @property string user_id database column - * @property string content database column - * @property string mkdate database column - * @property string chdate database column - * @property StudipNews news belongs_to StudipNews + * @property string $id alias column for comment_id + * @property string $comment_id database column + * @property string $object_id database column + * @property string $user_id database column + * @property string $content database column + * @property int $mkdate database column + * @property int $chdate database column + * @property StudipNews $news belongs_to StudipNews */ class StudipComment extends SimpleORMap implements PrivacyObject diff --git a/lib/models/StudipEvaluation.php b/lib/models/StudipEvaluation.php index 58a8f53bfbb..5441db82f51 100644 --- a/lib/models/StudipEvaluation.php +++ b/lib/models/StudipEvaluation.php @@ -13,22 +13,23 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 3.0 - * @property string eval_id database column - * @property string id alias column for eval_id - * @property string author_id database column - * @property string title database column - * @property string text database column - * @property string startdate database column - * @property string stopdate database column - * @property string timespan database column - * @property string mkdate database column - * @property string chdate database column - * @property string anonymous database column - * @property string visible database column - * @property string shared database column - * @property string enddate computed column - * @property User author belongs_to User - * @property SimpleORMapCollection participants has_and_belongs_to_many User + * + * @property string $id alias column for eval_id + * @property string $eval_id database column + * @property string $author_id database column + * @property string $title database column + * @property string $text database column + * @property int|null $startdate database column + * @property int|null $stopdate database column + * @property int|null $timespan database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $anonymous database column + * @property int $visible database column + * @property int $shared database column + * @property User $author belongs_to User + * @property SimpleORMapCollection|User[] $participants has_and_belongs_to_many User + * @property mixed $enddate additional field */ class StudipEvaluation extends SimpleORMap { diff --git a/lib/models/StudipNews.class.php b/lib/models/StudipNews.class.php index 57e42bf8625..f909fb4cd5c 100644 --- a/lib/models/StudipNews.class.php +++ b/lib/models/StudipNews.class.php @@ -27,22 +27,23 @@ require_once 'lib/object.inc.php'; * @author Arne Schröder <schroeder@data-quest> * @access public * - * @property string news_id database column - * @property string id alias column for news_id - * @property string topic database column - * @property string body database column - * @property string author database column - * @property string date database column - * @property string user_id database column - * @property string expire database column - * @property string allow_comments database column - * @property int prio database column - * @property string chdate database column - * @property string chdate_uid database column - * @property string mkdate database column - * @property SimpleORMapCollection news_ranges has_many NewsRange - * @property SimpleORMapCollection comments has_many StudipComment - * @property User owner belongs_to User + * @property string $id alias column for news_id + * @property string $news_id database column + * @property I18NString $topic database column + * @property I18NString $body database column + * @property string $author database column + * @property int $date database column + * @property string $user_id database column + * @property int $expire database column + * @property int $allow_comments database column + * @property int $prio database column + * @property int $chdate database column + * @property string $chdate_uid database column + * @property int $mkdate database column + * @property SimpleORMapCollection|NewsRange[] $news_ranges has_many NewsRange + * @property SimpleORMapCollection|StudipComment[] $comments has_many StudipComment + * @property SimpleORMapCollection|NewsRoles[] $news_roles has_many NewsRoles + * @property User $owner belongs_to User */ class StudipNews extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/StudipScmEntry.class.php b/lib/models/StudipScmEntry.class.php index 2eeff5a8650..7001a4a29ad 100644 --- a/lib/models/StudipScmEntry.class.php +++ b/lib/models/StudipScmEntry.class.php @@ -10,17 +10,17 @@ * @author André Noack <noack@data-quest>, Suchi & Berg GmbH <info@data-quest.de> * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * - * @property string scm_id database column - * @property string id alias column for scm_id - * @property string range_id database column - * @property string user_id database column - * @property string tab_name database column - * @property string content database column - * @property string mkdate database column - * @property string chdate database column - * @property string position database column - * @property User user belongs_to User - * @property Course course belongs_to Course + * @property string $id alias column for scm_id + * @property string $scm_id database column + * @property string $range_id database column + * @property string $user_id database column + * @property I18NString $tab_name database column + * @property I18NString $content database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $position database column + * @property User $user belongs_to User + * @property Course $course belongs_to Course */ class StudipScmEntry extends SimpleORMap diff --git a/lib/models/StudipStudyArea.class.php b/lib/models/StudipStudyArea.class.php index 518e6c1dcfa..444ca212912 100644 --- a/lib/models/StudipStudyArea.class.php +++ b/lib/models/StudipStudyArea.class.php @@ -15,17 +15,19 @@ * @author André Noack <noack@data-quest.de> * @copyright (c) Authors * - * @property string sem_tree_id database column - * @property string id alias column for sem_tree_id - * @property string parent_id database column - * @property string priority database column - * @property string info database column - * @property string name database column - * @property string type database column - * @property SimpleORMapCollection _children has_many StudipStudyArea - * @property Institute institute belongs_to Institute - * @property StudipStudyArea _parent belongs_to StudipStudyArea - * @property SimpleORMapCollection courses has_and_belongs_to_many Course + * @property string $id alias column for sem_tree_id + * @property string $sem_tree_id database column + * @property string $parent_id database column + * @property int $priority database column + * @property string $info database column + * @property string $name database column + * @property string|null $studip_object_id database column + * @property int $type database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property SimpleORMapCollection|StudipStudyArea[] $_children has_many StudipStudyArea + * @property StudipStudyArea $_parent belongs_to StudipStudyArea + * @property SimpleORMapCollection|Course[] $courses has_and_belongs_to_many Course */ class StudipStudyArea extends SimpleORMap implements StudipTreeNode diff --git a/lib/models/StudyCourse.class.php b/lib/models/StudyCourse.class.php index a99e1cd3318..faf6df46ff7 100644 --- a/lib/models/StudyCourse.class.php +++ b/lib/models/StudyCourse.class.php @@ -13,12 +13,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string studiengang_id database column - * @property string id alias column for studiengang_id - * @property string name database column - * @property string beschreibung database column - * @property string mkdate database column - * @property string chdate database column + * @property string $id alias column for fach_id + * @property string $fach_id database column + * @property string $name database column + * @property string|null $name_kurz database column + * @property string|null $beschreibung database column + * @property string|null $schlagworte database column + * @property string $author_id database column + * @property string $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|Degree[] $degrees has_and_belongs_to_many Degree + * @property-read mixed $count_user additional field */ class StudyCourse extends SimpleORMap { diff --git a/lib/models/StudycourseLanguage.php b/lib/models/StudycourseLanguage.php index 22747b31e64..3e1a8606112 100644 --- a/lib/models/StudycourseLanguage.php +++ b/lib/models/StudycourseLanguage.php @@ -13,6 +13,18 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.5 + * + * @property array $id alias for pk + * @property string $studiengang_id database column + * @property string $lang database column + * @property string $language alias column for lang + * @property int $position database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Studiengang $studycourse belongs_to Studiengang + * @property-read mixed $display_name additional field */ class StudycourseLanguage extends ModuleManagementModel diff --git a/lib/models/StudycourseType.php b/lib/models/StudycourseType.php index ad2ee684617..07367eb5b22 100644 --- a/lib/models/StudycourseType.php +++ b/lib/models/StudycourseType.php @@ -13,6 +13,15 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * @since 4.4 + * + * @property array $id alias for pk + * @property string $studiengang_id database column + * @property string $type database column + * @property string|null $author_id database column + * @property string|null $editor_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Studiengang $studycourse belongs_to Studiengang */ class StudycourseType extends ModuleManagementModel diff --git a/lib/models/TFASecret.php b/lib/models/TFASecret.php index 6d14c8157ab..a841d5cd56a 100644 --- a/lib/models/TFASecret.php +++ b/lib/models/TFASecret.php @@ -8,16 +8,15 @@ use OTPHP\TOTP; * @license GPL2 or any later version * @since Stud.IP 4.4 * - * @property string $id - * @property string $user_id - * @property string $secret - * @property string $type - * @property bool $confirmed - * @property int $mkdate - * @property int $chdate - * - * @property User $user - * @property TFAToken[]|SimpleORMapCollection $tokens + * @property string $id alias column for user_id + * @property string $user_id database column + * @property string $secret database column + * @property int $confirmed database column + * @property string $type database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|TFAToken[] $tokens has_many TFAToken + * @property User $user belongs_to User */ class TFASecret extends SimpleORMap { diff --git a/lib/models/TFAToken.php b/lib/models/TFAToken.php index 2eb7873124d..3b79d931dd5 100644 --- a/lib/models/TFAToken.php +++ b/lib/models/TFAToken.php @@ -5,6 +5,11 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @license GPL2 or any later version * @since Stud.IP 4.4 + * + * @property array $id alias for pk + * @property string $user_id database column + * @property string $token database column + * @property int $mkdate database column */ class TFAToken extends SimpleORMap { diff --git a/lib/models/Token.php b/lib/models/Token.php index a42cf77b6f5..63c6ebc832f 100644 --- a/lib/models/Token.php +++ b/lib/models/Token.php @@ -6,12 +6,12 @@ * @author Marco Diedrich <mdiedric@uos.de> * @license GPL2 or any later version * - * @property string $id - * @property string $token - * @property string $user_id - * @property int $expiration - * @property int $mkdate - * @property User $user + * @property string $id alias column for token + * @property string $token database column + * @property string $user_id database column + * @property int $expiration database column + * @property int|null $mkdate database column + * @property User $user belongs_to User */ class Token extends SimpleORMap { diff --git a/lib/models/ToolActivation.php b/lib/models/ToolActivation.php index f3998780656..a4a4de24e37 100644 --- a/lib/models/ToolActivation.php +++ b/lib/models/ToolActivation.php @@ -13,13 +13,16 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string range_id database column - * @property string range_type database column - * @property string plugin_id database column - * @property string position database column - * @property array metadata database column - * @property string mkdate database column - * @property string chdate database column + * @property array $id alias for pk + * @property string $range_id database column + * @property string $range_type database column + * @property int $plugin_id database column + * @property int $position database column + * @property JSONArrayObject|null $metadata database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Institute $institute belongs_to Institute + * @property Course $course belongs_to Course */ class ToolActivation extends SimpleORMap { @@ -36,7 +39,7 @@ class ToolActivation extends SimpleORMap 'foreign_key' => 'range_id', ]; - $config['serialized_fields']['metadata'] = 'JSONArrayObject'; + $config['serialized_fields']['metadata'] = JSONArrayObject::class; $config['registered_callbacks']['before_create'][] = 'setMaxPosition'; diff --git a/lib/models/User.class.php b/lib/models/User.class.php index 99a06ef09d5..bb23ca36df2 100644 --- a/lib/models/User.class.php +++ b/lib/models/User.class.php @@ -22,57 +22,62 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string id alias column for user_id - * @property string username database column - * @property string password database column - * @property string perms database column - * @property string vorname database column - * @property string nachname database column - * @property string email database column - * @property string validation_key database column - * @property string auth_plugin database column - * @property string locked database column - * @property string lock_comment database column - * @property string locked_by database column - * @property string visible database column - * @property string hobby computed column read/write - * @property string lebenslauf computed column read/write - * @property string publi computed column read/write - * @property string schwerp computed column read/write - * @property string home computed column read/write - * @property string privatnr computed column read/write - * @property string privatcell computed column read/write - * @property string privadr computed column read/write - * @property string score computed column read/write - * @property string geschlecht computed column read/write - * @property string mkdate computed column read/write - * @property string chdate computed column read/write - * @property string title_front computed column read/write - * @property string title_rear computed column read/write - * @property string preferred_language computed column read/write - * @property string smsforward_copy computed column read/write - * @property string smsforward_rec computed column read/write - * @property string guestbook computed column read/write - * @property string email_forward computed column read/write - * @property string motto computed column read/write - * @property string lock_rule computed column read/write - * @property SimpleORMapCollection course_memberships has_many CourseMember - * @property SimpleORMapCollection institute_memberships has_many InstituteMember - * @property SimpleORMapCollection admission_applications has_many AdmissionApplication - * @property SimpleORMapCollection archived_course_memberships has_many ArchivedCourseMember - * @property SimpleORMapCollection datafields has_many DatafieldEntryModel - * @property SimpleORMapCollection studycourses has_many UserStudyCourse - * @property SimpleORMapCollection contacts has_many Contact - * @property UserInfo info has_one UserInfo - * @property UserOnline online has_one UserOnline - * @property Kategorie[]|SimpleORMapCollection $profile_categories has_many Kategorie - * @property UserDomain[]|SimpleORMapCollection $domains - * @property ConsultationBlock[]|SimpleORMapCollection $consultation_blocks - * @property ConsultationBooking[]|SimpleORMapCollection $consultation_bookings - * @property ConsultationResponsibility[]|SimpleORMapCollection $consultation_responsibilities - * - * @property UserConfig config + * @property string $id alias column for user_id + * @property string $user_id database column + * @property string $username database column + * @property string $password database column + * @property string $perms database column + * @property string $vorname database column + * @property string $nachname database column + * @property string $email database column + * @property string $validation_key database column + * @property string|null $auth_plugin database column + * @property int $locked database column + * @property string|null $lock_comment database column + * @property string|null $locked_by database column + * @property string $visible database column + * @property SimpleORMapCollection|CourseMember[] $course_memberships has_many CourseMember + * @property SimpleORMapCollection|InstituteMember[] $institute_memberships has_many InstituteMember + * @property SimpleORMapCollection|AdmissionApplication[] $admission_applications has_many AdmissionApplication + * @property SimpleORMapCollection|ArchivedCourseMember[] $archived_course_memberships has_many ArchivedCourseMember + * @property SimpleORMapCollection|DatafieldEntryModel[] $datafields has_many DatafieldEntryModel + * @property SimpleORMapCollection|UserStudyCourse[] $studycourses has_many UserStudyCourse + * @property SimpleORMapCollection|Statusgruppen[] $contactgroups has_many Statusgruppen + * @property SimpleORMapCollection|ResourcePermission[] $resource_permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceTemporaryPermission[] $resource_temporary_permissions has_many ResourceTemporaryPermission + * @property SimpleORMapCollection|ConsultationBlock[] $consultation_blocks has_many ConsultationBlock + * @property SimpleORMapCollection|ConsultationBooking[] $consultation_bookings has_many ConsultationBooking + * @property SimpleORMapCollection|ConsultationResponsibility[] $consultation_responsibilities has_many ConsultationResponsibility + * @property SimpleORMapCollection|Kategorie[] $profile_categories has_many Kategorie + * @property SimpleORMapCollection|MvvContact[] $mvv_assignments has_many MvvContact + * @property SimpleORMapCollection|CourseMemberNotification[] $course_notifications has_many CourseMemberNotification + * @property UserInfo $info has_one UserInfo + * @property UserOnline $online has_one UserOnline + * @property Courseware\Unit $courseware_units has_one Courseware\Unit + * @property SimpleORMapCollection|User[] $contacts has_and_belongs_to_many User + * @property SimpleORMapCollection|UserDomain[] $domains has_and_belongs_to_many UserDomain + * @property-read mixed $config additional field + * @property mixed $hobby additional field + * @property mixed $lebenslauf additional field + * @property mixed $publi additional field + * @property mixed $schwerp additional field + * @property mixed $home additional field + * @property mixed $privatnr additional field + * @property mixed $privatcell additional field + * @property mixed $privadr additional field + * @property mixed $score additional field + * @property mixed $geschlecht additional field + * @property mixed $mkdate additional field + * @property mixed $chdate additional field + * @property mixed $title_front additional field + * @property mixed $title_rear additional field + * @property mixed $preferred_language additional field + * @property mixed $smsforward_copy additional field + * @property mixed $smsforward_rec additional field + * @property mixed $email_forward additional field + * @property mixed $motto additional field + * @property mixed $lock_rule additional field + * @property mixed $oercampus_description additional field */ class User extends AuthUserMd5 implements Range, PrivacyObject { diff --git a/lib/models/UserDomain.php b/lib/models/UserDomain.php index 49abbbc75ba..74681d24f71 100644 --- a/lib/models/UserDomain.php +++ b/lib/models/UserDomain.php @@ -6,6 +6,15 @@ * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> * @copyright 2008 * @license GPL2 or any later version + * + * @property string $id alias column for userdomain_id + * @property string $userdomain_id database column + * @property string $name database column + * @property int $restricted_access database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|User[] $users has_and_belongs_to_many User + * @property SimpleORMapCollection|Course[] $courses has_and_belongs_to_many Course */ class UserDomain extends SimpleORMap { diff --git a/lib/models/UserInfo.class.php b/lib/models/UserInfo.class.php index 403e70b69ee..28808a22ce5 100644 --- a/lib/models/UserInfo.class.php +++ b/lib/models/UserInfo.class.php @@ -13,29 +13,29 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string id alias column for user_id - * @property string hobby database column - * @property string lebenslauf database column - * @property string publi database column - * @property string schwerp database column - * @property string home database column - * @property string privatnr database column - * @property string privatcell database column - * @property string privadr database column - * @property string score database column - * @property string geschlecht database column - * @property string mkdate database column - * @property string chdate database column - * @property string title_front database column - * @property string title_rear database column - * @property string preferred_language database column - * @property string smsforward_copy database column - * @property string smsforward_rec database column - * @property string guestbook database column - * @property string email_forward database column - * @property string motto database column - * @property string lock_rule database column + * @property string $id alias column for user_id + * @property string $user_id database column + * @property I18NString $hobby database column + * @property I18NString $lebenslauf database column + * @property I18NString $publi database column + * @property I18NString $schwerp database column + * @property string $home database column + * @property string $privatnr database column + * @property string $privatcell database column + * @property string $privadr database column + * @property int $score database column + * @property int $geschlecht database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string $title_front database column + * @property string $title_rear database column + * @property string|null $preferred_language database column + * @property int $smsforward_copy database column + * @property string $smsforward_rec database column + * @property int $email_forward database column + * @property string $motto database column + * @property string $lock_rule database column + * @property string|null $oercampus_description database column */ class UserInfo extends SimpleORMap diff --git a/lib/models/UserOnline.class.php b/lib/models/UserOnline.class.php index ec3c0cb6797..e18322dd523 100644 --- a/lib/models/UserOnline.class.php +++ b/lib/models/UserOnline.class.php @@ -13,9 +13,9 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string id alias column for user_id - * @property string last_lifesign computed column read/write + * @property string $id alias column for user_id + * @property string $user_id database column + * @property int $last_lifesign database column */ class UserOnline extends SimpleORMap { diff --git a/lib/models/UserStudyCourse.class.php b/lib/models/UserStudyCourse.class.php index 7f7ad3489f7..cac37c89ead 100644 --- a/lib/models/UserStudyCourse.class.php +++ b/lib/models/UserStudyCourse.class.php @@ -13,16 +13,19 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string user_id database column - * @property string studiengang_id database column - * @property string semester database column - * @property string abschluss_id database column - * @property string degree_name computed column read/write - * @property string studycourse_name computed column read/write - * @property string id computed column read/write - * @property User user belongs_to User - * @property Degree degree belongs_to Degree - * @property StudyCourse studycourse belongs_to StudyCourse + * @property array $id alias for pk + * @property string $user_id database column + * @property string $fach_id database column + * @property int|null $semester database column + * @property string $abschluss_id database column + * @property string|null $version_id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property User $user belongs_to User + * @property Abschluss $degree belongs_to Abschluss + * @property Fach $studycourse belongs_to Fach + * @property mixed $degree_name additional field + * @property mixed $studycourse_name additional field */ class UserStudyCourse extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/Vote.php b/lib/models/Vote.php index d3d6d75c01b..0520401296f 100644 --- a/lib/models/Vote.php +++ b/lib/models/Vote.php @@ -1,6 +1,21 @@ <?php require_once 'lib/classes/QuestionType.interface.php'; +/** + * @license GPL2 or any later version + * + * @property string $id alias column for question_id + * @property string $question_id database column + * @property string $questionnaire_id database column + * @property string $questiontype database column + * @property string|null $internal_name database column + * @property JSONArrayObject $questiondata database column + * @property int $position database column + * @property int $chdate database column + * @property int $mkdate database column + * @property SimpleORMapCollection|QuestionnaireAnswer[] $answers has_many QuestionnaireAnswer + * @property Questionnaire $questionnaire belongs_to Questionnaire + */ class Vote extends QuestionnaireQuestion implements QuestionType { public static function getIcon(bool $active = false) : Icon diff --git a/lib/models/WebserviceAccessRule.class.php b/lib/models/WebserviceAccessRule.class.php index 51eceeea40c..48da0efbbe0 100644 --- a/lib/models/WebserviceAccessRule.class.php +++ b/lib/models/WebserviceAccessRule.class.php @@ -24,18 +24,20 @@ * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 * @category Stud.IP * - * @property string api_key database column - * @property string method database column - * @property string ip_range database column - * @property string type database column - * @property string id database column + * @property string $api_key database column + * @property string $method database column + * @property CSVArrayObject $ip_range database column + * @property string $type database column + * @property int $id database column + * @property int|null $mkdate database column + * @property int|null $chdate database column */ class WebserviceAccessRule extends SimpleORMap { protected static function configure($config = []) { $config['db_table'] = 'webservice_access_rules'; - $config['serialized_fields']['ip_range'] = 'CSVArrayObject'; + $config['serialized_fields']['ip_range'] = CSVArrayObject::class; parent::configure($config); } diff --git a/lib/models/WikiPage.class.php b/lib/models/WikiPage.class.php index 82abcd41885..b6cc4d25d91 100644 --- a/lib/models/WikiPage.class.php +++ b/lib/models/WikiPage.class.php @@ -11,15 +11,20 @@ * @author mlunzena * @copyright (c) Authors * - * @property string range_id database column - * @property string user_id database column - * @property string keyword database column - * @property string body database column - * @property string ancestor database column - * @property string chdate database column - * @property string version database column - * @property string id computed column read/write - * @property User author belongs_to User + * @property array $id alias for pk + * @property string $range_id database column + * @property string|null $user_id database column + * @property string $keyword database column + * @property string $body database column + * @property string|null $ancestor database column + * @property int|null $chdate database column + * @property int $version database column + * @property int|null $mkdate database column + * @property User|null $author belongs_to User + * @property Course $course belongs_to Course + * @property-read mixed $parent additional field + * @property-read mixed $children additional field + * @property-read mixed $config additional field */ class WikiPage extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/WikiPageConfig.php b/lib/models/WikiPageConfig.php index 722356d8af6..e82d694f41d 100644 --- a/lib/models/WikiPageConfig.php +++ b/lib/models/WikiPageConfig.php @@ -9,6 +9,16 @@ * * @author Elmar Ludwig * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 + * + * @property array $id alias for pk + * @property string $range_id database column + * @property string $keyword database column + * @property int $read_restricted database column + * @property int $edit_restricted database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property Course $course belongs_to Course + * @property Institute $institute belongs_to Institute */ class WikiPageConfig extends SimpleORMap { diff --git a/lib/models/eTask/Assignment.php b/lib/models/eTask/Assignment.php index 6320684dd7d..22636dab266 100644 --- a/lib/models/eTask/Assignment.php +++ b/lib/models/eTask/Assignment.php @@ -2,23 +2,26 @@ namespace eTask; +use JSONArrayObject; + /** * eTask conforming assignment definition. * - * @property int id database column - * @property int test_id database column - * @property string range_type database column - * @property string range_id database column - * @property string type database column - * @property string start database column - * @property string end database column - * @property int active database column - * @property string options database column - * @property eTask\Test test belongs_to etask\Test - * @property SimpleORMapCollection attempts has_many etask\Attempt - * @property SimpleORMapCollection ranges has_many etask\AssignmentRange - * @property SimpleORMapCollection responses has_many etask\Response - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property int $test_id database column + * @property string|null $range_type database column + * @property string|null $range_id database column + * @property string $type database column + * @property int|null $start database column + * @property int|null $end database column + * @property int $active database column + * @property \JSONArrayObject $options database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property \SimpleORMapCollection|Attempt[] $attempts has_many Attempt + * @property \SimpleORMapCollection|AssignmentRange[] $ranges has_many AssignmentRange + * @property \SimpleORMapCollection|Response[] $responses has_many Response + * @property Test $test belongs_to Test */ class Assignment extends \SimpleORMap { @@ -59,7 +62,7 @@ class Assignment extends \SimpleORMap 'on_store' => 'store' ]; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/eTask/AssignmentRange.php b/lib/models/eTask/AssignmentRange.php index c0c3a3d6844..76d2a691cc3 100644 --- a/lib/models/eTask/AssignmentRange.php +++ b/lib/models/eTask/AssignmentRange.php @@ -2,14 +2,19 @@ namespace eTask; +use JSONArrayObject; + /** * eTask conforming assignment-range relation definition. * - * @property int assignment_id database column - * @property string range_type database column - * @property string range_id database column - * @property eTask\Assignment assignment belongs_to etask\Assignment - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property int $assignment_id database column + * @property string $range_type database column + * @property string $range_id database column + * @property \JSONArrayObject $options database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property Assignment $assignment belongs_to Assignment */ class AssignmentRange extends \SimpleORMap { @@ -29,7 +34,7 @@ class AssignmentRange extends \SimpleORMap 'foreign_key' => 'assignment_id' ]; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/eTask/Attempt.php b/lib/models/eTask/Attempt.php index f4a6cbe5fb1..2720f47a2a9 100644 --- a/lib/models/eTask/Attempt.php +++ b/lib/models/eTask/Attempt.php @@ -1,17 +1,20 @@ <?php namespace eTask; +use JSONArrayObject; + /** * eTask conforming assignment attempt definition. * - * @property int id database column - * @property int assignment_id database column - * @property string user_id database column - * @property string start database column - * @property string end database column - * @property string options database column - * @property eTask\Assignment assignment belongs_to etask\Assignment - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property int $assignment_id database column + * @property string $user_id database column + * @property int|null $start database column + * @property int|null $end database column + * @property \JSONArrayObject $options database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property Assignment $assignment belongs_to Assignment */ class Attempt extends \SimpleORMap implements \PrivacyObject { @@ -31,7 +34,7 @@ class Attempt extends \SimpleORMap implements \PrivacyObject 'foreign_key' => 'assignment_id' ]; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/eTask/ConfigureTrait.php b/lib/models/eTask/ConfigureTrait.php index 10f4dda3e81..39b8b714b65 100644 --- a/lib/models/eTask/ConfigureTrait.php +++ b/lib/models/eTask/ConfigureTrait.php @@ -38,13 +38,13 @@ trait ConfigureTrait private static function configureClassNames($config = []) { $defaultTypes = [ - 'Assignment' => '\\eTask\\Assignment', - 'AssignmentRange' => '\\eTask\\AssignmentRange', - 'Attempt' => '\\eTask\\Attempt', - 'Response' => '\\eTask\\Response', - 'Task' => '\\eTask\\Task', - 'Test' => '\\eTask\\Test', - 'TestTask' => '\\eTask\\TestTask' + 'Assignment' => Assignment::class, + 'AssignmentRange' => AssignmentRange::class, + 'Attempt' => Attempt::class, + 'Response' => Response::class, + 'Task' => Task::class, + 'Test' => Test::class, + 'TestTask' => TestTask::class, ]; $types = []; diff --git a/lib/models/eTask/Response.php b/lib/models/eTask/Response.php index 5b2edb564c0..fbed047800d 100644 --- a/lib/models/eTask/Response.php +++ b/lib/models/eTask/Response.php @@ -1,27 +1,29 @@ <?php namespace eTask; +use JSONArrayObject; +use StoredUserData; +use User; + /** * eTask conforming assignment definition. * - * @property int id database column - * @property int assignment_id database column - * @property int task_id database column - * @property string user_id database column - * @property string response database column - * @property int state database column - * @property float points database column - * @property string feedback database column - * @property string grader_id database column - * @property string mkdate database column - * @property string chdate database column - * @property string options database column - * @property eTask\Assignment assignment belongs_to etask\Assignment - * @property eTask\Task task belongs_to etask\Task - * @property User user belongs_to User - * @property User grader belongs_to User - * @property JSONArrayobject response serialized database column - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property int $assignment_id database column + * @property int $task_id database column + * @property string $user_id database column + * @property \JSONArrayObject $response database column + * @property int|null $state database column + * @property float|null $points database column + * @property string|null $feedback database column + * @property string|null $grader_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \JSONArrayObject $options database column + * @property Assignment $assignment belongs_to Assignment + * @property Task $task belongs_to Task + * @property \User $user belongs_to \User + * @property \User $grader belongs_to \User */ class Response extends \SimpleORMap implements \PrivacyObject { @@ -47,17 +49,17 @@ class Response extends \SimpleORMap implements \PrivacyObject ]; $config['belongs_to']['user'] = [ - 'class_name' => '\\User', + 'class_name' => User::class, 'foreign_key' => 'user_id' ]; $config['belongs_to']['grader'] = [ - 'class_name' => '\\User', + 'class_name' => User::class, 'foreign_key' => 'user_id' ]; - $config['serialized_fields']['response'] = 'JSONArrayObject'; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['response'] = JSONArrayObject::class; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } @@ -68,7 +70,7 @@ class Response extends \SimpleORMap implements \PrivacyObject * * @param StoredUserData $storage object to store data into */ - public static function exportUserData(\StoredUserData $storage) + public static function exportUserData(StoredUserData $storage) { $sorm = self::findBySQL("user_id = ?", [$storage->user_id]); if ($sorm) { diff --git a/lib/models/eTask/Task.php b/lib/models/eTask/Task.php index 989915d7863..40c5404ac94 100644 --- a/lib/models/eTask/Task.php +++ b/lib/models/eTask/Task.php @@ -2,24 +2,25 @@ namespace eTask; +use JSONArrayObject; +use User; + /** * eTask conforming task definition. * - * @property int id database column - * @property string type database column - * @property string title database column - * @property string description database column - * @property string task database column - * @property string user_id database column - * @property string mkdate database column - * @property string chdate database column - * @property string options database column - * @property User owner belongs_to User - * @property SimpleORMapCollection tests additional field etask\Test - * @property SimpleORMapCollection test_tasks has_many etask\TestTask - * @property SimpleORMapCollection responses has_many etask\Response - * @property JSONArrayobject task serialized database column - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property string $type database column + * @property string $title database column + * @property string $description database column + * @property \JSONArrayObject $task database column + * @property string $user_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \JSONArrayObject $options database column + * @property \SimpleORMapCollection|TestTask[] $test_tasks has_many TestTask + * @property \SimpleORMapCollection|Response[] $responses has_many Response + * @property \User $owner belongs_to \User + * @property \SimpleORMapCollection|Test[] $tests has_and_belongs_to_many Test */ class Task extends \SimpleORMap implements \PrivacyObject { @@ -35,7 +36,7 @@ class Task extends \SimpleORMap implements \PrivacyObject $config['relationTypes'] = self::configureClassNames($config); $config['belongs_to']['owner'] = [ - 'class_name' => '\\User', + 'class_name' => User::class, 'foreign_key' => 'user_id' ]; @@ -61,8 +62,8 @@ class Task extends \SimpleORMap implements \PrivacyObject 'on_store' => 'store' ]; - $config['serialized_fields']['task'] = 'JSONArrayObject'; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['task'] = JSONArrayObject::class; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/eTask/Test.php b/lib/models/eTask/Test.php index 2f35cd42c99..8554a060fd7 100644 --- a/lib/models/eTask/Test.php +++ b/lib/models/eTask/Test.php @@ -2,21 +2,23 @@ namespace eTask; +use JSONArrayObject; +use User; + /** * eTask conforming test definition. * - * @property int id database column - * @property string title database column - * @property string description database column - * @property string user_id database column - * @property string mkdate database column - * @property string chdate database column - * @property string options database column - * @property SimpleORMapCollection tasks additional field etask\Task - * @property SimpleORMapCollection testtasks has_many etask\TestTask - * @property User owner belongs_to User - * @property SimpleORMapCollection assignments has_many etask\Assignment - * @property JSONArrayobject options serialized database column + * @property int $id database column + * @property string $title database column + * @property string $description database column + * @property string $user_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property \JSONArrayObject $options database column + * @property \SimpleORMapCollection|TestTask[] $testtasks has_many TestTask + * @property \SimpleORMapCollection|Assignment[] $assignments has_many Assignment + * @property \User $owner belongs_to \User + * @property \SimpleORMapCollection|Task[] $tasks has_and_belongs_to_many Task */ class Test extends \SimpleORMap implements \PrivacyObject { @@ -48,7 +50,7 @@ class Test extends \SimpleORMap implements \PrivacyObject ]; $config['belongs_to']['owner'] = [ - 'class_name' => '\\User', + 'class_name' => User::class, 'foreign_key' => 'user_id' ]; @@ -59,7 +61,7 @@ class Test extends \SimpleORMap implements \PrivacyObject 'on_store' => 'store' ]; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/eTask/TestTask.php b/lib/models/eTask/TestTask.php index ecedad78897..675949126e4 100644 --- a/lib/models/eTask/TestTask.php +++ b/lib/models/eTask/TestTask.php @@ -2,17 +2,21 @@ namespace eTask; +use JSONArrayObject; + /** * eTask conforming test task relation. * - * @property int test_id database column - * @property int task_id database column - * @property int position database column - * @property float points database column - * @property string options database column - * @property eTask\Test test belongs_to etask\Test - * @property eTask\Task task belongs_to etask\Task - * @property JSONArrayobject options serialized database column + * @property array $id alias for pk + * @property int $test_id database column + * @property int $task_id database column + * @property int $position database column + * @property float|null $points database column + * @property \JSONArrayObject $options database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property Test $test belongs_to Test + * @property Task $task belongs_to Task */ class TestTask extends \SimpleORMap { @@ -35,7 +39,7 @@ class TestTask extends \SimpleORMap 'class_name' => $config['relationTypes']['Task'], 'foreign_key' => 'task_id']; - $config['serialized_fields']['options'] = 'JSONArrayObject'; + $config['serialized_fields']['options'] = JSONArrayObject::class; parent::configure($config); } diff --git a/lib/models/resources/BrokenResource.class.php b/lib/models/resources/BrokenResource.class.php index d1014ef3932..5266b4f1430 100644 --- a/lib/models/resources/BrokenResource.class.php +++ b/lib/models/resources/BrokenResource.class.php @@ -3,6 +3,11 @@ /** * ResourceLabel.class.php - model class for a resource label * + * The BrokenResource class represents resources whose class + * cannot be found due to missing Resource specialisations + * that cannot be loaded. This can happen if a plugin is uninstalled + * without removing the resources that are handled by the plugin. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -16,14 +21,26 @@ * @since 4.5 * * All properties are inherited from the parent class (Resource). - */ - - -/** - * The BrokenResource class represents resources whose class - * cannot be found due to missing Resource specialisations - * that cannot be loaded. This can happen if a plugin is uninstalled - * without removing the resources that are handled by the plugin. + * + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $class_name additional field */ class BrokenResource extends Resource { @@ -56,7 +73,7 @@ class BrokenResource extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0 + $booking_type = ResourceBooking::TYPE_NORMAL ) { return null; @@ -68,7 +85,7 @@ class BrokenResource extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $prepend_preparation_time = false, $notify_lecturers = false ) @@ -86,7 +103,7 @@ class BrokenResource extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $force_booking = false ) { return null; diff --git a/lib/models/resources/Building.class.php b/lib/models/resources/Building.class.php index f6bb5a1d171..0edb98393a1 100644 --- a/lib/models/resources/Building.class.php +++ b/lib/models/resources/Building.class.php @@ -3,6 +3,9 @@ /** * Building.class.php - model class for a resource which is a building * + * The building class is a derived class from the Resource class + * which includes specialisations for Building resource types. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,15 +18,31 @@ * @package resources * @since 4.1 * - * @property string id building-ID (equal to Resource.resource_id) - * @property Location Location - * Other properties are inherited from the parent class (Resource). - */ - - -/** - * The building class is a derived class from the Resource class - * which includes specialisations for Building resource types. + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $address additional field + * @property mixed $number additional field + * @property mixed $geo_coordinates additional field + * @property-read mixed $location additional field + * @property-read mixed $rooms additional field + * @property mixed $facility_manager additional field + * @property mixed $class_name additional field */ class Building extends Resource { @@ -407,7 +426,7 @@ class Building extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0 + $booking_type = ResourceBooking::TYPE_NORMAL ) { return null; @@ -419,7 +438,7 @@ class Building extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $prepend_preparation_time = false, $notify_lecturers = false ) @@ -438,7 +457,7 @@ class Building extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $force_booking = false ) { diff --git a/lib/models/resources/GlobalResourceLock.class.php b/lib/models/resources/GlobalResourceLock.class.php index 541cc0ffe28..b1753f5e9e7 100644 --- a/lib/models/resources/GlobalResourceLock.class.php +++ b/lib/models/resources/GlobalResourceLock.class.php @@ -15,15 +15,14 @@ * @package resources * @since 4.5 * - * @property string lock_id database column - * @property string id alias for lock_id - * @property string user_id database column - * @property string begin database column - * @property string end database column - * @property string type database column - * @property string mkdate database column - * @property string chdate database column - * @property Resource resource belongs_to Resource + * @property string $id alias column for lock_id + * @property string $lock_id database column + * @property int $begin database column + * @property int $end database column + * @property string $type database column + * @property string $user_id database column + * @property int $mkdate database column + * @property int $chdate database column */ class GlobalResourceLock extends SimpleORMap { diff --git a/lib/models/resources/Location.class.php b/lib/models/resources/Location.class.php index c5431533963..8e793821622 100644 --- a/lib/models/resources/Location.class.php +++ b/lib/models/resources/Location.class.php @@ -15,8 +15,28 @@ * @package resources * @since 4.1 * - * @property string id location-ID (equal to Resource.resource_id) - * Other properties are inherited from the parent class (Resource). + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $geo_coordinates additional field + * @property-read mixed $buildings additional field + * @property mixed $director additional field + * @property mixed $class_name additional field */ class Location extends Resource { @@ -328,7 +348,7 @@ class Location extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0 + $booking_type = ResourceBooking::TYPE_NORMAL ) { return null; @@ -340,7 +360,7 @@ class Location extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $prepend_preparation_time = false, $notify_lecturers = false ) @@ -358,7 +378,7 @@ class Location extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $force_booking = false ) { diff --git a/lib/models/resources/Resource.class.php b/lib/models/resources/Resource.class.php index 9050734d217..531bc4ca869 100644 --- a/lib/models/resources/Resource.class.php +++ b/lib/models/resources/Resource.class.php @@ -3,6 +3,11 @@ /** * Resource.class.php - model class for a resource * + * The Resource class is the base class of the new + * Room and Resource management system in Stud.IP. + * It provides core functionality for handling general resources + * and can be derived for handling special resources. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,31 +20,25 @@ * @package resources * @since 4.5 * - * @property string resource_id database column - * @property string id alias column for resource_id - * @property string parent_id database column - * @property string category_id database column - * @property string level database column - * @property string name database column - * @property string description database column - * @property string requestable database column - * @property string sort_position database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection category belongs_to ResourceCategory - * @property SimpleORMapCollection properties has_many ResourceProperty - * @property SimpleORMapCollection permissions has_many ResourcePermission - * @property SimpleORMapCollection bookings has_many ResourceBooking - * @property SimpleORMapCollection children has_many Resource - * @property FolderType folder - */ - - -/** - * The Resource class is the base class of the new - * Room and Resource management system in Stud.IP. - * It provides core functionality for handling general resources - * and can be derived for handling special resources. + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $class_name additional field */ class Resource extends SimpleORMap implements StudipItem { @@ -454,7 +453,7 @@ class Resource extends SimpleORMap implements StudipItem $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0 + $booking_type = ResourceBooking::TYPE_NORMAL ) { return $this->createBooking( @@ -505,7 +504,7 @@ class Resource extends SimpleORMap implements StudipItem $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $prepend_preparation_time = false, $notify_lecturers = false ) @@ -684,7 +683,7 @@ class Resource extends SimpleORMap implements StudipItem $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $force_booking = false ) { @@ -1275,7 +1274,7 @@ class Resource extends SimpleORMap implements StudipItem } $lock = new ResourceBooking(); - $lock->booking_type = '2'; + $lock->booking_type = ResourceBooking::TYPE_LOCK; $lock->range_id = $user->id; $lock->resource_id = $this->id; $lock->begin = $begin->getTimestamp(); diff --git a/lib/models/resources/ResourceBooking.class.php b/lib/models/resources/ResourceBooking.class.php index 51c7aed422b..e496867aa43 100644 --- a/lib/models/resources/ResourceBooking.class.php +++ b/lib/models/resources/ResourceBooking.class.php @@ -3,6 +3,10 @@ /** * ResourceBooking.class.php - model class for resource bookings * + * The ResourceBooking class is responsible for storing + * bookings of resources in a specified time range + * or a time interval. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -14,54 +18,46 @@ * @category Stud.IP * @package resources * @since 4.5 - */ - - -/** - * The ResourceBooking class is responsible for storing - * bookings of resources in a specified time range - * or a time interval. - * - * @property string id database column - * @property string resource_id database column - * @property string range_id database column - * The user, course etc. where the booking (booking) - * is associated with. - * @property string booking_user_id database column - * The user who created the booking (booking). - * @property string description database column - * @property int begin database column - * @property int end database column - * @property int $preparation_time database column - * @property int booking_type database column: The booking type. - * The following types are defined: - * 0 = normal booking - * 1 = reservation - * 2 = lock - * 3 = planned booking (reservation from external tools) - * - * @property int repeat_end database column - * @property string repetition_interval database column - * The repetition_interval column contains a date interval string in a - * format that is accepted by the DateInterval class constructor. - * Examples for values of the repetition_interval column: - * - For an one month interval, the value is "P1M". - * - For an interval of two days, the value is "P2D". - * See the DateInterval documentation for more examples: - * https://secure.php.net/manual/en/class.dateinterval.php * - * @property string internal_comment database column - * @property int mkdate database column - * @property int chdate database column - * @property Resource resource belongs_to Resource - * @property User assigned_user belongs_to User - * @property CourseDate assigned_course_date belongs_to CourseDate + * The repetition_interval column contains a date interval string in a + * format that is accepted by the DateInterval class constructor. + * Examples for values of the repetition_interval column: + * - For an one month interval, the value is "P1M". + * - For an interval of two days, the value is "P2D". + * See the DateInterval documentation for more examples: + * https://secure.php.net/manual/en/class.dateinterval.php * - * @property-read int $real_begin - * @property-read DateTime $real_begin_dt + * @property string $id database column + * @property string $resource_id database column + * @property string $range_id database column + * @property string|null $description database column + * @property int $begin database column + * @property int $end database column + * @property int|null $repeat_end database column + * @property int $mkdate database column + * @property int $chdate database column + * @property string|null $internal_comment database column + * @property int $preparation_time database column + * @property int $booking_type database column + * @property string $booking_user_id database column + * @property string $repetition_interval database column + * @property SimpleORMapCollection|ResourceBookingInterval[] $time_intervals has_many ResourceBookingInterval + * @property Resource $resource belongs_to Resource + * @property User $assigned_user belongs_to User + * @property CourseDate $assigned_course_date belongs_to CourseDate + * @property User $booking_user belongs_to User + * @property mixed $course_id additional field + * @property mixed $room_name additional field + * @property-read mixed $real_begin additional field + * @property-read mixed $real_begin_dt additional field */ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calendar\EventSource { + const TYPE_NORMAL = 0; + const TYPE_RESERVATION = 1; + const TYPE_LOCK = 2; + const TYPE_PLANNED = 3; + protected static function configure($config = []) { $config['db_table'] = 'resource_bookings'; @@ -546,7 +542,7 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen $other_booking = self::findByResourceAndTimeRanges( $derived_resource, [$time_interval], - [0, 2], + [self::TYPE_NORMAL, self::TYPE_LOCK], [$this->id] ); $course = null; @@ -875,7 +871,7 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen 'end' => $this->end, ] ], - [1, 3], + [self::TYPE_RESERVATION, self::TYPE_PLANNED], [$this->id] ); foreach ($affected_reservations as $reservation) { @@ -1634,7 +1630,7 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen $text_colour = $booking_plan_booking_fg->__toString(); $event_classes = []; - if ($this->booking_type == '0') { + if ($this->booking_type == self::TYPE_NORMAL) { $event_classes[] = 'resource-booking'; //Check if the booking is a course booking: if ($this->getAssignedUserType() === 'course') { @@ -1643,15 +1639,15 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen $colour = $booking_plan_course_booking_bg->__toString(); $text_colour = $booking_plan_course_booking_fg->__toString(); } - } elseif ($this->booking_type == '1') { + } elseif ($this->booking_type == self::TYPE_RESERVATION) { $event_classes[] = 'resource-reservation'; $colour = $booking_plan_reservation_bg->__toString(); $text_colour = $booking_plan_reservation_fg->__toString(); - } elseif ($this->booking_type == '2') { + } elseif ($this->booking_type == self::TYPE_LOCK) { $event_classes[] = 'resource-lock'; $colour = $booking_plan_lock_bg->__toString(); $text_colour = $booking_plan_lock_fg->__toString(); - } elseif ($this->booking_type == '3') { + } elseif ($this->booking_type == self::TYPE_PLANNED) { $event_classes[] = 'resource-planned-booking'; $colour = $booking_plan_planned_booking_bg->__toString(); $text_colour = $booking_plan_planned_booking_fg->__toString(); @@ -1879,7 +1875,7 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen */ public function sendDeleteNotification() { - if ($this->booking_type != '0') { + if ($this->booking_type != self::TYPE_NORMAL) { //We only handle real bookings in this method. return; } diff --git a/lib/models/resources/ResourceBookingInterval.class.php b/lib/models/resources/ResourceBookingInterval.class.php index a5b0e437600..7908e4076e6 100644 --- a/lib/models/resources/ResourceBookingInterval.class.php +++ b/lib/models/resources/ResourceBookingInterval.class.php @@ -5,6 +5,10 @@ * all resource bookings time intervals, including those for * repetitions. * + * The ResourceBookingEvent class contains all + * time intervals of all resources where they are + * assigned. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -17,26 +21,17 @@ * @package resources * @since 4.1 * - * @property string interval_id database column (and primary key) - * @property string id alias for event_id - * @property string booking_id database column - * @property string resource_id database column - * @property string begin database column - * @property string end database column - * @property string takes_place database column. This is set to 1 - * if the date specified by the interval takes place. - * Otherwise it is set to zero which means that the interval - * is an exception to the repetition in the booking. - * @property string mkdate database column - * @property string chdate database column - * @property Resource resource belongs_to Resource - */ - - -/** - * The ResourceBookingEvent class contains all - * time intervals of all resources where they are - * assigned. + * @property string $id alias column for interval_id + * @property string $interval_id database column + * @property string $resource_id database column + * @property string $booking_id database column + * @property int $begin database column + * @property int $end database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $takes_place database column + * @property ResourceBooking $booking belongs_to ResourceBooking + * @property Resource $resource belongs_to Resource */ class ResourceBookingInterval extends SimpleORMap { diff --git a/lib/models/resources/ResourceCategory.class.php b/lib/models/resources/ResourceCategory.class.php index 9738cbcef75..f4ae14d5a7e 100644 --- a/lib/models/resources/ResourceCategory.class.php +++ b/lib/models/resources/ResourceCategory.class.php @@ -21,15 +21,13 @@ * @property string $id database column * @property string $name database column * @property string $description database column - * @property string $class_name database column: The name of the SORM class - * that handles the resource object, defaults to Resource. - * @property bool $system database column - * @property int $iconnr database column + * @property int $system database column + * @property int|null $iconnr database column + * @property string $class_name database column * @property int $mkdate database column * @property int $chdate database column - * - * @property ResourcePropertyDefinition[]|SimpleORMapCollection $property_definitions - * @property ResourceCategoryProperty[]|SimpleORMapCollection $property_links + * @property SimpleORMapCollection|ResourceCategoryProperty[] $property_links has_many ResourceCategoryProperty + * @property SimpleORMapCollection|ResourcePropertyDefinition[] $property_definitions has_and_belongs_to_many ResourcePropertyDefinition */ class ResourceCategory extends SimpleORMap { diff --git a/lib/models/resources/ResourceCategoryProperty.class.php b/lib/models/resources/ResourceCategoryProperty.class.php index 2b465185f12..b1460cdaa71 100644 --- a/lib/models/resources/ResourceCategoryProperty.class.php +++ b/lib/models/resources/ResourceCategoryProperty.class.php @@ -16,14 +16,19 @@ * @package resources * @since 4.5 * - * @property string category_id database column - * @property string property_id database column - * @property string requestable database column - * @property string protected database column - * @property string system database column - * @property string form_text database column - * @property string mkdate database column - * @property string chdate database column + * @property array $id alias for pk + * @property string $category_id database column + * @property string $property_id database column + * @property int $requestable database column + * @property int $protected database column + * @property int $system database column + * @property string|null $form_text database column + * @property int $mkdate database column + * @property int $chdate database column + * @property ResourceCategory $category belongs_to ResourceCategory + * @property ResourcePropertyDefinition $definition belongs_to ResourcePropertyDefinition + * @property mixed $name additional field + * @property mixed $type additional field */ diff --git a/lib/models/resources/ResourceLabel.class.php b/lib/models/resources/ResourceLabel.class.php index b75d0475ab6..d9c869f605d 100644 --- a/lib/models/resources/ResourceLabel.class.php +++ b/lib/models/resources/ResourceLabel.class.php @@ -3,6 +3,11 @@ /** * ResourceLabel.class.php - model class for a resource label * + * The ResourceLabel class represents headings or subheadings whose + * only purpose is helping with organising the resource tree. + * ResourceLabel instances must not be booked, reserved or locked. + * Furthermore, they cannot be requested. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -16,14 +21,26 @@ * @since 4.5 * * All properties are inherited from the parent class (Resource). - */ - - -/** - * The ResourceLabel class represents headings or subheadings whose - * only purpose is helping with organising the resource tree. - * ResourceLabel instances must not be booked, reserved or locked. - * Furthermore, they cannot be requested. + * + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $class_name additional field */ class ResourceLabel extends Resource { @@ -49,7 +66,7 @@ class ResourceLabel extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0 + $booking_type = ResourceBooking::TYPE_NORMAL ) { return null; @@ -61,7 +78,7 @@ class ResourceLabel extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $prepend_preparation_time = false, $notify_lecturers = false ) @@ -79,7 +96,7 @@ class ResourceLabel extends Resource $preparation_time = 0, $description = '', $internal_comment = '', - $booking_type = 0, + $booking_type = ResourceBooking::TYPE_NORMAL, $force_booking = false ) { @@ -223,7 +240,7 @@ class ResourceLabel extends Resource return []; } - public function getResourceBookings(DateTime $begin, DateTime $end, array $booking_types = [0]) + public function getResourceBookings(DateTime $begin, DateTime $end, array $booking_types = [ResourceBooking::TYPE_NORMAL]) { return []; } diff --git a/lib/models/resources/ResourcePermission.class.php b/lib/models/resources/ResourcePermission.class.php index 7d6a1634278..bd337088c90 100644 --- a/lib/models/resources/ResourcePermission.class.php +++ b/lib/models/resources/ResourcePermission.class.php @@ -3,6 +3,13 @@ /** * ResourcePermission.class.php - model class for resource permissions. * + * Description of the resources permission system: + * - admin: An admin may do everything in the resource management: + * edit resource bookings and resources. + * - tutor: A tutor may edit all resource bookings. + * - autor: An autor may edit his own resource bookings only. + * - user: A user may read internal comments on resource bookings. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,24 +22,14 @@ * @package resources * @since 4.5 * - * @property string id database column - * @property string user_id database column - * @property string resource_id database column - * @property string perms database column - * @property string mkdate database column - * @property string chdate database column - * @property User user belongs_to User - * @property Resource resource belongs_to Resource - */ - - -/** - * Description of the resources permission system: - * - admin: An admin may do everything in the resource management: - * edit resource bookings and resources. - * - tutor: A tutor may edit all resource bookings. - * - autor: An autor may edit his own resource bookings only. - * - user: A user may read internal comments on resource bookings. + * @property array $id alias for pk + * @property string $user_id database column + * @property string $resource_id database column + * @property string $perms database column + * @property int $mkdate database column + * @property int $chdate database column + * @property User $user belongs_to User + * @property Resource $resource belongs_to Resource */ class ResourcePermission extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/resources/ResourceProperty.class.php b/lib/models/resources/ResourceProperty.class.php index 6db96158957..84816446779 100644 --- a/lib/models/resources/ResourceProperty.class.php +++ b/lib/models/resources/ResourceProperty.class.php @@ -15,15 +15,19 @@ * @package resources * @since TODO * - * @property string property_id database column - * @property string resource_id database column - * @property string state database column - * @property string form_text database column - * @property string mkdate database column - * @property string chdate database column - * @property Resource resource belongs_to Resource - * @property ResourcePropertyDefinition definition belongs_to - * ResourcePropertyDefinition + * @property array $id alias for pk + * @property string $resource_id database column + * @property string $property_id database column + * @property string $state database column + * @property int $mkdate database column + * @property int $chdate database column + * @property ResourcePropertyDefinition $definition belongs_to ResourcePropertyDefinition + * @property Resource $resource belongs_to Resource + * @property mixed $name additional field + * @property-read mixed $fullname additional field + * @property mixed $display_name additional field + * @property mixed $type additional field + * @property mixed $info_label additional field */ class ResourceProperty extends SimpleORMap { diff --git a/lib/models/resources/ResourcePropertyDefinition.class.php b/lib/models/resources/ResourcePropertyDefinition.class.php index 23a6434006c..e72717f6dd8 100644 --- a/lib/models/resources/ResourcePropertyDefinition.class.php +++ b/lib/models/resources/ResourcePropertyDefinition.class.php @@ -18,27 +18,23 @@ * @package resources * @since 4.1 * + * @property string $id alias column for property_id * @property string $property_id database column - * @property string $id alias for resource_id - * @property string $name database column The internal name of the property. - * @property string $display_name The display name of the property. - * @property string $description database column - * @property string $type database column ('bool', 'text', 'num', 'select', - * 'user', 'institute', 'position', 'fileref', 'url') + * @property string $name database column + * @property I18NString|null $description database column + * @property string $type database column * @property string $options database column - * @property string $system database column - * @property string $info_label database column - * @property bool $searchable database column - * 0 = not searchable, 1 = searchable - * @property bool $range_search database column: Whether a search field - * for this property shall display a range selector (1) or not (0). - * Setting this attribute is only useful for the property types - * 'num' and 'position'. + * @property int $system database column + * @property int $info_label database column + * @property I18NString $display_name database column + * @property int $searchable database column + * @property int $range_search database column * @property string $write_permission_level database column + * @property int|null $property_group_id database column + * @property int|null $property_group_pos database column * @property int $mkdate database column * @property int $chdate database column - * - * @property ResourcePropertyGroup $group + * @property ResourcePropertyGroup|null $group belongs_to ResourcePropertyGroup */ diff --git a/lib/models/resources/ResourcePropertyGroup.class.php b/lib/models/resources/ResourcePropertyGroup.class.php index 9da6762a79b..ad539022a8c 100644 --- a/lib/models/resources/ResourcePropertyGroup.class.php +++ b/lib/models/resources/ResourcePropertyGroup.class.php @@ -15,11 +15,12 @@ * @package resources * @since TODO * - * @property string id database column - * @property string name database column - * @property string position database column - * @property string mkdate database column - * @property string chdate database column + * @property int $id database column + * @property string $name database column + * @property int $position database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|ResourcePropertyDefinition[] $properties has_many ResourcePropertyDefinition */ class ResourcePropertyGroup extends SimpleORMap { diff --git a/lib/models/resources/ResourceRequest.class.php b/lib/models/resources/ResourceRequest.class.php index d5217819094..20baf60964c 100644 --- a/lib/models/resources/ResourceRequest.class.php +++ b/lib/models/resources/ResourceRequest.class.php @@ -14,58 +14,54 @@ * @category Stud.IP * @package resources * @since 4.5 - */ - - -/** - * ResourceRequest is a model class for resource requests. * - * @property string id database column - * @property string resource_id database column - * @property string category_id database column - * @property string course_id database column - * @property string termin_id database column - * @property string metadate_id database column - * @property string begin database column - * @property string end database column - * @property string preparation_time databasse column - * @property string marked database column - * There are four marking states: - * 0 - not marked - * 1 - red state - * 2 - yellow state - * 3 - green state - * @property string user_id database column - * @property string last_modified_by database column - * @property string comment database column - * @property string reply_comment database column - * @property string reply_recipients database column: - * enum('requester', 'lecturer') - * @property string closed database column, possible states are: - * 0 - room-request is open - * 1 - room-request has been processed, but no confirmation has been sent - * 2 - room-request has been processed and a confirmation has been sent - * 3 - room-request has been declined + * The attributes begin and end are only used in simple resource requests. + * The "traditional" resource requests use either course_id, metadate_id + * or termin_id to store the time ranges connected to the request. * - * @property string mkdate database column - * @property string chdate database column - * @property Resource resource belongs_to Resource - * @property ResourceCategory $category belongs_to Category - * @property User requester belongs_to User - * @property User last_modifier belongs_to User + * @property string $id database column + * @property string $course_id database column + * @property string $termin_id database column + * @property string $metadate_id database column + * @property string $user_id database column + * @property string $last_modified_by database column + * @property string $resource_id database column + * @property string|null $category_id database column + * @property string|null $comment database column + * @property string|null $reply_comment database column + * @property string $reply_recipients database column + * @property int $closed database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property int $begin database column + * @property int $end database column + * @property int $preparation_time database column + * @property int $marked database column + * @property SimpleORMapCollection|ResourceRequestProperty[] $properties has_many ResourceRequestProperty + * @property SimpleORMapCollection|ResourceRequestAppointment[] $appointments has_many ResourceRequestAppointment + * @property Resource $resource belongs_to Resource + * @property ResourceCategory|null $category belongs_to ResourceCategory + * @property User $user belongs_to User + * @property User $last_modifier belongs_to User * @property Course $course belongs_to Course * @property SeminarCycleDate $cycle belongs_to SeminarCycleDate * @property CourseDate $date belongs_to CourseDate - * @property ResourceRequestProperty[]|SimpleORMapCollection $properties has_many ResourceRequestProperty - * @property ResourceRequestAppointment[]|SimpleORMapCollection $appointments has_many ResourceRequestAppointment - * - * - * The attributes begin and end are only used in simple resource requests. - * The "traditional" resource requests use either course_id, metadate_id - * or termin_id to store the time ranges connected to the request. */ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calendar\EventSource { + const MARK_NONE = 0; + const MARK_RED = 1; + const MARK_YELLOW = 2; + const MARK_GREEN = 3; + + const REPLY_REQUESTER = 'requester'; + const REPLY_LECTURER = 'lecturer'; + + const STATE_OPEN = 0; // room-request is open + const STATE_PENDING = 1; // room-request has been processed, but no confirmation has been sent + const STATE_CLOSED = 2; // room-request has been processed and a confirmation has been sent + const STATE_DECLINED = 3; // room-request has been declined + /** * The amount of defined marking states. */ @@ -192,7 +188,10 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen */ public static function findOpen() { - return self::findBySql("closed = '0' ORDER BY mkdate ASC"); + return self::findBySql( + 'closed = ? ORDER BY mkdate ASC', + [self::STATE_OPEN] + ); } /** @@ -473,16 +472,17 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen public static function existsByCourse($course_id, $request_is_open = false) { + $parameters = [':course_id' => $course_id]; + $sql = ''; if ($request_is_open) { - $sql .= "closed = '0' AND "; + $sql .= "closed = :closed_state AND "; + $parameters[':closed_state'] = self::STATE_OPEN; } $request = self::findOneBySql( $sql . "termin_id = '' AND metadate_id = '' AND course_id = :course_id", - [ - 'course_id' => $course_id - ] + $parameters ); if ($request) { @@ -494,16 +494,17 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen public static function existsByDate($date_id, $request_is_open = false) { + $parameters = [':date_id' => $date_id]; + $sql = ''; if ($request_is_open) { - $sql .= "closed = '0' AND "; + $sql .= "closed = :closed_state AND "; + $parameters[':closed_state'] = self::STATE_OPEN; } $request = self::findOneBySql( $sql . "termin_id = :date_id", - [ - 'date_id' => $date_id - ] + $parameters ); if ($request) { @@ -515,16 +516,17 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen public static function existsByMetadate($metadate_id, $request_is_open = false) { + $parameters = [':metadate_id' => $metadate_id]; + $sql = ''; if ($request_is_open) { - $sql .= "closed = '0' AND "; + $sql .= "closed = :closed_state AND "; + $parameters[':closed_state'] = self::STATE_OPEN; } $request = self::findOneBySql( $sql . "metadate_id = :metadate_id", - [ - 'metadate_id' => $metadate_id - ] + $parameters ); if ($request) { @@ -551,10 +553,10 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen public function cbAfterStore() { if ($this->isFieldDirty('closed')) { - if ((int)$this->closed === 3) { + if ($this->closed == self::STATE_DECLINED) { $this->sendRequestDeniedMail(); StudipLog::log('RES_REQUEST_DENY', $this->course_id, $this->resource_id, $this->getLoggingInfoText()); - } elseif ((int)$this->closed === 1 || (int)$this->closed === 2) { + } elseif ($this->closed == self::STATE_PENDING || $this->closed == self::STATE_CLOSED) { StudipLog::log('RES_REQUEST_RESOLVE', $this->course_id, $this->resource_id, $this->getLoggingInfoText()); } } else { @@ -669,12 +671,15 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen */ public function closeRequest($notify_lecturers = false, $bookings = []) { - if ($this->closed >= 2) { + if ( + $this->closed == self::STATE_CLOSED + || $this->closed == self::STATE_DECLINED + ) { //The request has already been closed. return true; } - $this->closed = 1; + $this->closed = self::STATE_PENDING; if ($this->isDirty()) { $this->store(); } @@ -687,7 +692,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen } //Sending successful: The request is closed. - $this->closed = 2; + $this->closed = self::STATE_CLOSED; if ($this->isDirty()) { return $this->store(); } @@ -706,7 +711,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen return self::findByResourceAndTimeRanges( $this->resource, $this->getTimeIntervals(true), - 0, + self::STATE_OPEN, [$this->id] ); } @@ -725,7 +730,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen return self::countByResourceAndTimeRanges( $this->resource, $this->getTimeIntervals(true), - 0, + self::STATE_OPEN, [$this->id] ); } @@ -744,7 +749,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen return ResourceBooking::findByResourceAndTimeRanges( $this->resource, $this->getTimeIntervals(true), - [0, 2] + [ResourceBooking::TYPE_NORMAL, ResourceBooking::TYPE_LOCK] ); } return []; @@ -762,7 +767,7 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen return ResourceBooking::countByResourceAndTimeRanges( $this->resource, $this->getTimeIntervals(true), - [0, 2] + [ResourceBooking::TYPE_NORMAL, ResourceBooking::TYPE_LOCK] ); } return 0; @@ -1386,13 +1391,13 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen public function getStatus() { switch ($this->closed) { - case '0': + case self::STATE_OPEN: return 'open'; - case '1': + case self::STATE_PENDING: return 'pending'; - case '2': + case self::STATE_CLOSED: return 'closed'; - case '3': + case self::STATE_DECLINED: return 'declined'; default: return ''; @@ -1408,9 +1413,9 @@ class ResourceRequest extends SimpleORMap implements PrivacyObject, Studip\Calen if ($this->isNew()) { return _('Diese Anfrage wurde noch nicht gespeichert.'); } - if ((int)$this->closed === 0) { + if ($this->closed == self::STATE_OPEN) { return _('Die Anfrage wurde noch nicht bearbeitet.'); - } else if ((int)$this->closed === 3) { + } else if ($this->closed == self::STATE_DECLINED) { return _('Die Anfrage wurde bearbeitet und abgelehnt.'); } else { return _('Die Anfrage wurde bearbeitet.'); diff --git a/lib/models/resources/ResourceRequestAppointment.class.php b/lib/models/resources/ResourceRequestAppointment.class.php index 9914462691f..929733bdc85 100644 --- a/lib/models/resources/ResourceRequestAppointment.class.php +++ b/lib/models/resources/ResourceRequestAppointment.class.php @@ -4,6 +4,9 @@ * ResourceRequestAppointment.class.php - Contains a model class for * the resource_request_appointments table. * + * ResourceRequestAppointment is a model class to connect + * resource requests to CourseDate objects. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,21 +18,14 @@ * @category Stud.IP * @package resources * @since 4.5 - */ - - -/** - * ResourceRequestAppointment is a model class to connect - * resource requests to CourseDate objects. - * - * @property string id database column - * @property string request_id database column - * @property string appointment_id database column - * @property string mkdate database column - * @property string chdate database column - * @property ResourceRequest resource_request belongs_to ResourceRequest - * @property CourseDate appointment belongs_to CourseDate * + * @property int $id database column + * @property string $request_id database column + * @property string $appointment_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property ResourceRequest $resource_request belongs_to ResourceRequest + * @property CourseDate $appointment belongs_to CourseDate */ class ResourceRequestAppointment extends SimpleORMap { diff --git a/lib/models/resources/ResourceRequestProperty.class.php b/lib/models/resources/ResourceRequestProperty.class.php index ec275deae96..2952be9ba35 100644 --- a/lib/models/resources/ResourceRequestProperty.class.php +++ b/lib/models/resources/ResourceRequestProperty.class.php @@ -16,15 +16,17 @@ * @package resources * @since 4.1 * - * @property string id database column - * @property string request_id database column - * @property string property_id database column - * @property string state database column - * @property string mkdate database column - * @property string chdate database column - * @property ResourceRequest request belongs_to ResourceRequest - * @property ResourcePropertyDefinition definition belongs_to - * ResourcePropertyDefinition + * @property array $id alias for pk + * @property string $request_id database column + * @property string $property_id database column + * @property string|null $state database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property ResourcePropertyDefinition $definition belongs_to ResourcePropertyDefinition + * @property ResourceRequest $request belongs_to ResourceRequest + * @property mixed $name additional field + * @property mixed $display_name additional field + * @property mixed $type additional field */ class ResourceRequestProperty extends SimpleORMap { diff --git a/lib/models/resources/ResourceTemporaryPermission.class.php b/lib/models/resources/ResourceTemporaryPermission.class.php index 1f0bedb0795..ddbc397c3e4 100644 --- a/lib/models/resources/ResourceTemporaryPermission.class.php +++ b/lib/models/resources/ResourceTemporaryPermission.class.php @@ -4,6 +4,9 @@ * ResourceTemporaryPermission.class.php * Contains the ResourceTemporaryPermission class * + * The ResourceTemporaryPermission class represents temporary permissions + * granted to a user for a resource. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,23 +18,17 @@ * @category Stud.IP * @package resources * @since 4.5 - */ - - -/** - * The ResourceTemporaryPermission class represents temporary permissions - * granted to a user for a resource. * - * @property string id database column - * @property string resource_id database column - * @property string user_id database column - * @property string begin database column - * @property string end database column - * @property string perms database column: The permission level granted - * in the specified time range. - * @property string mkdate database column - * @property string chdate database column - * @property Resource resource belongs_to Resource + * @property int $id database column + * @property string $resource_id database column + * @property string $user_id database column + * @property int $begin database column + * @property int $end database column + * @property string $perms database column + * @property int $mkdate database column + * @property int $chdate database column + * @property Resource $resource belongs_to Resource + * @property User $user belongs_to User */ class ResourceTemporaryPermission extends SimpleORMap implements PrivacyObject { diff --git a/lib/models/resources/Room.class.php b/lib/models/resources/Room.class.php index 2cea825561d..7f1668e441f 100644 --- a/lib/models/resources/Room.class.php +++ b/lib/models/resources/Room.class.php @@ -3,6 +3,9 @@ /** * Room.class.php - model class for a resource which is a room * + * The Room class is a derived class of the Resource class. + * It containts specialisations for room resources. + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -15,19 +18,29 @@ * @package resources * @since 4.5 * - * @property string id room-ID (equal to Resource.resource_id) - * @property Building belongs_to building - * @property string room_type resource property - * @property int seats resource property - * @property bool booking_plan_is_public resource property - * - * Other properties are inherited from the parent class (Resource). - */ - - -/** - * The Room class is a derived class of the Resource class. - * It containts specialisations for room resources. + * @property string $id database column + * @property string $parent_id database column + * @property string $category_id database column + * @property int|null $level database column + * @property string $name database column + * @property I18NString|null $description database column + * @property int $requestable database column + * @property int $lockable database column + * @property int $mkdate database column + * @property int $chdate database column + * @property int $sort_position database column + * @property SimpleORMapCollection|ResourceProperty[] $properties has_many ResourceProperty + * @property SimpleORMapCollection|ResourcePermission[] $permissions has_many ResourcePermission + * @property SimpleORMapCollection|ResourceRequest[] $requests has_many ResourceRequest + * @property SimpleORMapCollection|ResourceBooking[] $bookings has_many ResourceBooking + * @property SimpleORMapCollection|Resource[] $children has_many Resource + * @property ResourceCategory $category belongs_to ResourceCategory + * @property Resource $parent belongs_to Resource + * @property mixed $room_type additional field + * @property mixed $seats additional field + * @property mixed $booking_plan_is_public additional field + * @property-read mixed $building additional field + * @property mixed $class_name additional field */ class Room extends Resource { diff --git a/lib/models/resources/RoomRequest.class.php b/lib/models/resources/RoomRequest.class.php index c0898d7a0b8..6db9c38fb6a 100644 --- a/lib/models/resources/RoomRequest.class.php +++ b/lib/models/resources/RoomRequest.class.php @@ -8,21 +8,37 @@ * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * - * @param Room room Link to the Room resource (same as the resource attribute). - * @param string seats additional field (from ResourceRequestProperty) - * @param string booking_plan_is_public additional field - * (from ResourceRequestProperty) - * - * All other properties are inherited from the parent class (ResourceRequest). - * @author Cornelis Kater <ckater@gwdg.de> - * @author Till Glöggler <tgloeggl@uos.de> - * @author André Noack <noack@data-quest.de> - * @author Suchi & Berg GmbH <info@data-quest.de> - * @author Moritz Strohm <strohm@data-quest.de> - * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 - * @category Stud.IP - * - * + * @property string $id database column + * @property string $course_id database column + * @property string $termin_id database column + * @property string $metadate_id database column + * @property string $user_id database column + * @property string $last_modified_by database column + * @property string $resource_id database column + * @property string|null $category_id database column + * @property string|null $comment database column + * @property string|null $reply_comment database column + * @property string $reply_recipients database column + * @property int $closed database column + * @property int|null $mkdate database column + * @property int|null $chdate database column + * @property int $begin database column + * @property int $end database column + * @property int $preparation_time database column + * @property int $marked database column + * @property SimpleORMapCollection|ResourceRequestProperty[] $properties has_many ResourceRequestProperty + * @property SimpleORMapCollection|ResourceRequestAppointment[] $appointments has_many ResourceRequestAppointment + * @property Room $room belongs_to Room + * @property Resource $resource belongs_to Resource + * @property ResourceCategory|null $category belongs_to ResourceCategory + * @property User $user belongs_to User + * @property User $last_modifier belongs_to User + * @property Course $course belongs_to Course + * @property SeminarCycleDate $cycle belongs_to SeminarCycleDate + * @property CourseDate $date belongs_to CourseDate + * @property mixed $seats additional field + * @property mixed $room_type additional field + * @property mixed $booking_plan_is_public additional field */ class RoomRequest extends ResourceRequest { diff --git a/lib/models/resources/SeparableRoom.class.php b/lib/models/resources/SeparableRoom.class.php index 81861632a2b..9ec1ccfeae3 100644 --- a/lib/models/resources/SeparableRoom.class.php +++ b/lib/models/resources/SeparableRoom.class.php @@ -15,13 +15,13 @@ * @package resources * @since 4.5 * - * @property string id database column - * @property string building_id database column - * @property string name database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection building belongs_to Building - * @property SimpleORMapCollection parts has_many SeparableRoomPart + * @property int $id database column + * @property string $building_id database column + * @property string $name database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SimpleORMapCollection|SeparableRoomPart[] $parts has_many SeparableRoomPart + * @property Building $building belongs_to Building */ class SeparableRoom extends SimpleORMap diff --git a/lib/models/resources/SeparableRoomPart.class.php b/lib/models/resources/SeparableRoomPart.class.php index a4a5fb54f40..e7e99e7249c 100644 --- a/lib/models/resources/SeparableRoomPart.class.php +++ b/lib/models/resources/SeparableRoomPart.class.php @@ -15,13 +15,13 @@ * @package resources * @since 4.5 * - * @property string id database column - * @property string separable_room_id database column - * @property string room_id database column - * @property string mkdate database column - * @property string chdate database column - * @property SimpleORMapCollection separable_room belongs_to SeparableRoom - * @property SimpleORMapCollection room belongs_to Room + * @property array $id alias for pk + * @property int $separable_room_id database column + * @property string $room_id database column + * @property int $mkdate database column + * @property int $chdate database column + * @property SeparableRoom $separable_room belongs_to SeparableRoom + * @property Room $room belongs_to Room */ class SeparableRoomPart extends SimpleORMap { diff --git a/lib/raumzeit/SingleDate.class.php b/lib/raumzeit/SingleDate.class.php index b867e4d829a..f9980924425 100644 --- a/lib/raumzeit/SingleDate.class.php +++ b/lib/raumzeit/SingleDate.class.php @@ -472,7 +472,7 @@ class SingleDate { $message = ''; - if ($booking->booking_type == '2') { + if ($booking->booking_type == ResourceBooking::TYPE_LOCK) { $message .= sprintf( _('Vom %1$s, %2$s Uhr bis zum %3$s, %4$s Uhr (Sperrzeit)') . "\n", date("d.m.Y", $booking->begin), diff --git a/lib/resources/RoomManager.class.php b/lib/resources/RoomManager.class.php index b33ffbef199..515656d6b56 100644 --- a/lib/resources/RoomManager.class.php +++ b/lib/resources/RoomManager.class.php @@ -389,8 +389,18 @@ class RoomManager Room $room, DateTime $begin, DateTime $end, - $booking_types = [0, 1, 2, 3], - $building_booking_types = [0, 1, 2, 3], + $booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ResourceBooking::TYPE_PLANNED, + ], + $building_booking_types = [ + ResourceBooking::TYPE_NORMAL, + ResourceBooking::TYPE_RESERVATION, + ResourceBooking::TYPE_LOCK, + ResourceBooking::TYPE_PLANNED, + ], $exclude_canceled_intervals = true ) { -- GitLab