HZ-HBO-ICT / it-conference

Official repository for the IT-Conference
https://weareinittogether.nl
MIT License
5 stars 0 forks source link

Feature - Edition management (without scheduler) #442

Closed IGORnvk closed 2 days ago

IGORnvk commented 6 days ago

Description

Pull request introduces an edition management feature as well as the deadlines for the edition.

ERD for this particular part of the application: image

editions - previously called 'event_instance', represents edition (e.g. We are in IT together Conference 2024) events - basically representing all the events that occur during the conference (e.g. Company registration, Presentation request etc.) edition_events - table that connects events and edition during which these events are happening, and therefore it contains start and end dates for these events, since for every edition they can be different.

Note 1: the icons for editions/events should be changed, since I just copied them from another part of the application.

Note 2: This pull request introduces only manual state changes, without automation based on dates (Laravel Scheduler), since there were issues with its implementation.

closes #410 and #325

Type of change

What needs to be tested

Checklist:

github-actions[bot] commented 6 days ago

Coverage report for commit: 0f2e248 File: coverage.xml

Cover ┌─────────────────────────┐ Freq.
   0% │ ███████████████████████ │ 74.4%
  10% │ █░░░░░░░░░░░░░░░░░░░░░░ │  1.7%
  20% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  30% │ █░░░░░░░░░░░░░░░░░░░░░░ │  1.2%
  40% │ █░░░░░░░░░░░░░░░░░░░░░░ │  0.6%
  50% │ █░░░░░░░░░░░░░░░░░░░░░░ │  0.6%
  60% │ ░░░░░░░░░░░░░░░░░░░░░░░ │  0.0%
  70% │ █░░░░░░░░░░░░░░░░░░░░░░ │  1.2%
  80% │ █░░░░░░░░░░░░░░░░░░░░░░ │  1.7%
  90% │ █░░░░░░░░░░░░░░░░░░░░░░ │  2.9%
 100% │ █████░░░░░░░░░░░░░░░░░░ │ 15.7%
      └─────────────────────────┘
 *Legend:* █ = Current Distribution 
Summary - Lines: 32.34% | Methods: 22.02%
FilesLinesMethodsBranches
app/Actions/Fortify
   CreateNewUser.php98.33%50.00%100.00%
   PasswordValidationRules.php100.00%100.00%100.00%
   ResetUserPassword.php100.00%100.00%100.00%
   UpdateUserPassword.php100.00%100.00%100.00%
   UpdateUserProfileInformation.php75.00%50.00%100.00%
app/Actions/Jetstream
   DeleteUser.php100.00%100.00%100.00%
app/Actions/Schedule
   PresentationAllocationHelper.php--100.00%
   PresentationConflictChecker.php--100.00%
app/Console/Commands
   AddSpeakerToPresentation.php--100.00%
   AddToHz.php--100.00%
   ApproveLastCreatedCompany.php--100.00%
   ConfirmAllEmails.php--100.00%
   CreateAdmin.php7.69%33.33%100.00%
   ModifyTimeslotDuration.php--100.00%
   SyncPermissions.php100.00%100.00%100.00%
   UpsertMasterData.php73.91%40.00%100.00%
app/Events
   FinalProgrammeReleased.php--100.00%
app/Http/Controllers
   CompanyController.php--100.00%
   Controller.php100.00%100.00%100.00%
   HomeController.php100.00%100.00%100.00%
   InvitationController.php--100.00%
   PresentationController.php--100.00%
   RegistrationController.php--100.00%
   SpeakerController.php--100.00%
app/Http/Controllers/Crew
   BoothController.php97.50%83.33%100.00%
   CompanyController.php96.67%75.00%100.00%
   CrewController.php--100.00%
   DefaultPresentationController.php100.00%100.00%100.00%
   EditionController.php--100.00%
   EditionEventController.php--100.00%
   PresentationController.php93.48%83.33%100.00%
   RoomController.php88.00%80.00%100.00%
   ScheduleController.php--100.00%
   SponsorshipController.php94.64%66.67%100.00%
   UserController.php100.00%100.00%100.00%
app/Http/Controllers/Hub
   CompanyController.php--100.00%
   HubController.php--100.00%
app/Http/Livewire
   AuthNavigationMenu.php--100.00%
   DownloadPresentation.php--100.00%
   EmailNotificationPreference.php--100.00%
   GuestNavigationMenu.php--100.00%
   NotificationsList.php--100.00%
   OverrideDifficulty.php--100.00%
   ReleaseFinalProgramme.php--100.00%
   RoomAndTimeslotSelector.php--100.00%
   ShowNotification.php--100.00%
app/Http/Livewire/Booths
   DeleteBoothForm.php--100.00%
   EditBoothModal.php--100.00%
app/Http/Livewire/Companies
   DeleteCompanyForm.php--100.00%
app/Http/Livewire/DefaultPresentations
   EditDefaultPresentationForm.php--100.00%
app/Http/Livewire/Presentations
   DeletePresentationForm.php--100.00%
   EditPresentationModal.php--100.00%
app/Http/Livewire/Rooms
   DeleteRoomForm.php--100.00%
app/Http/Livewire/Schedule
   AddTimeslotPadding.php--100.00%
   RemovePresentationFromSchedule.php--100.00%
   ReplacePresentation.php--100.00%
   ResetTimeslots.php--100.00%
app/Http/Livewire/Sponsorships
   CreateSponsorshipForm.php--100.00%
   DeleteSponsorshipForm.php--100.00%
app/Http/Livewire/Users
   DeleteUserForm.php--100.00%
app/Http/Requests
   StorePresentationRequest.php100.00%100.00%100.00%
app/Listeners
   HandleFinalProgrammeReleased.php--100.00%
app/Livewire
   AuthNavigationMenu.php100.00%100.00%100.00%
   EmailNotificationPreference.php--100.00%
   GuestNavigationMenu.php100.00%100.00%100.00%
app/Livewire/Booth
   DeleteBoothModal.php--100.00%
   EditBoothModal.php--100.00%
   JoinBoothOwnerModal.php--100.00%
app/Livewire/Company
   AddMember.php--100.00%
   BoothRequest.php--100.00%
   DeleteCompany.php--100.00%
   DeleteCompanyModal.php--100.00%
   DetailsForm.php--100.00%
   EditCompanyModal.php--100.00%
   ManageLogo.php--100.00%
   MemberManager.php--100.00%
   RemoveMember.php--100.00%
   SponsorshipRequest.php--100.00%
   UpdateMemberRole.php--100.00%
app/Livewire/Edition
   ActivateEditionModal.php--100.00%
   DeleteEditionModal.php--100.00%
   EditEditionModal.php--100.00%
app/Livewire/EditionEvent
   EditEditionEventModal.php--100.00%
app/Livewire/Forms
   BoothForm.php--100.00%
   CompanyForm.php--100.00%
   EditionEventForm.php--100.00%
   EditionForm.php--100.00%
   PresentationForm.php--100.00%
   RoomForm.php--100.00%
app/Livewire/Presentation
   DeletePresentationModal.php--100.00%
   EditPresentationModal.php--100.00%
   JoinAsSpeakerModal.php--100.00%
   UploadPresentation.php--100.00%
app/Livewire/Registration
   CompanyBasicForm.php--100.00%
   CompanyLocationForm.php--100.00%
   CompanyRepresentativeForm.php--100.00%
   ParentComponent.php--100.00%
app/Livewire/Room
   DeleteRoomModal.php--100.00%
   EditRoomModal.php--100.00%
app/Livewire/Schedule
   Cell.php--100.00%
   GridParentComponent.php--100.00%
   Presentation.php--100.00%
   PresentationModal.php--100.00%
app/Livewire/Sponsorship
   DeleteSponsorshipModal.php--100.00%
app/Mail
   BoothApprovedMailable.php--100.00%
   BoothDisapprovedMailable.php--100.00%
   CustomTeamInvitation.php100.00%100.00%100.00%
   GenericNewUpdatesMailable.php--100.00%
   InviteCompany.php--100.00%
   InviteUser.php--100.00%
   PresentationApprovedMailable.php--100.00%
   PresentationDisapprovedMailable.php--100.00%
   SponsorshipApprovedMailable.php--100.00%
   SponsorshipDisapprovedMailable.php--100.00%
   TeamApprovedMailable.php--100.00%
   TeamDisapprovedMailable.php--100.00%
app/Models
   Booth.php80.00%50.00%100.00%
   Company.php73.77%53.33%100.00%
   Difficulty.php--100.00%
   Edition.php5.19%7.69%100.00%
   EditionEvent.php--100.00%
   Event.php--100.00%
   FrequentQuestion.php100.00%100.00%100.00%
   Invitation.php25.00%33.33%100.00%
   Presentation.php80.56%63.64%100.00%
   Room.php100.00%100.00%100.00%
   Sponsorship.php47.37%33.33%100.00%
   Timeslot.php--100.00%
   User.php89.23%78.57%100.00%
   UserPresentation.php--100.00%
app/Notifications
   NotifyBoothApproved.php--100.00%
   NotifyBoothDisapproved.php--100.00%
   NotifyPresentationApproved.php--100.00%
   NotifyPresentationDisapproved.php--100.00%
   NotifySponsorshipApproved.php--100.00%
   NotifySponsorshipDisapproved.php--100.00%
   NotifyTeamApproved.php--100.00%
   NotifyTeamDisapproved.php--100.00%
app/Observers
   BoothObserver.php--100.00%
   SpeakerObserver.php--100.00%
   TeamObserver.php--100.00%
app/Policies
   BoothPolicy.php100.00%100.00%100.00%
   CompanyPolicy.php25.45%38.89%100.00%
   EditionPolicy.php--100.00%
   PresentationPolicy.php38.78%30.00%100.00%
   RoomPolicy.php100.00%100.00%100.00%
   SponsorshipPolicy.php100.00%100.00%100.00%
   TeamPolicy.php--100.00%
   UserPolicy.php14.29%14.29%100.00%
app/Providers
   AppServiceProvider.php100.00%100.00%100.00%
   FortifyServiceProvider.php91.67%50.00%100.00%
   JetstreamServiceProvider.php100.00%100.00%100.00%
app/View/Components
   AppLayout.php100.00%100.00%100.00%
   ContentModBoothRequestDetails.php--100.00%
   ContentModCompanyRequestDetails.php--100.00%
   ContentModPresentationRequestDetails.php--100.00%
   ContentModSponsorRequestDetails.php--100.00%
   EnrollModal.php--100.00%
Table truncated to fit comment

:robot: comment via lucassabreu/comment-coverage-clover

IGORnvk commented 5 days ago

I'm a bit exhausted so I may overlook something. After the issues are fixed, I'll look at it more carefully. I have one question though:

I got it that the Edition date is the date of the conference and from what time till what time it's going to last. But considering the fact that the Events are part of the Edition, should Edition even have a date when it could be just an Event like 'Conference Day' or something like that? And if edition must have from/till wouldn't it make more sense to be from Kick-Off date to Retrospective day? I'm just asking not implying we should redo it, just discussing what would be optimal and make most sense.

For me it is not a problem to move start and end of the conference day to the separate event. I see these two implementations as almost the same, but from the logical perspective, having start and end of the edition attached to it makes more sense, than having a separate event for it. Just my opinion.

So if we change the logic and make the dates represent Kick-Off and Retrospective, what value would it bring? I don't remember that we had any features where we could use these dates. I would then rather just remove the dates from editions and make them a separate event, but as I said, in my mind I can't see how this is better than the current version... Maybe @TimKardol can help us haha

v-stamenova commented 4 days ago

I'm a bit exhausted so I may overlook something. After the issues are fixed, I'll look at it more carefully. I have one question though: I got it that the Edition date is the date of the conference and from what time till what time it's going to last. But considering the fact that the Events are part of the Edition, should Edition even have a date when it could be just an Event like 'Conference Day' or something like that? And if edition must have from/till wouldn't it make more sense to be from Kick-Off date to Retrospective day? I'm just asking not implying we should redo it, just discussing what would be optimal and make most sense.

For me it is not a problem to move start and end of the conference day to the separate event. I see these two implementations as almost the same, but from the logical perspective, having start and end of the edition attached to it makes more sense, than having a separate event for it. Just my opinion.

So if we change the logic and make the dates represent Kick-Off and Retrospective, what value would it bring? I don't remember that we had any features where we could use these dates. I would then rather just remove the dates from editions and make them a separate event, but as I said, in my mind I can't see how this is better than the current version... Maybe @TimKardol can help us haha

Yeah no fair enough, makes sense. If @TimKardol doesn't give any input till let's say monday lunchtime and all issues are fixed I suggest we merge @IGORnvk?

IGORnvk commented 4 days ago

I'm a bit exhausted so I may overlook something. After the issues are fixed, I'll look at it more carefully. I have one question though: I got it that the Edition date is the date of the conference and from what time till what time it's going to last. But considering the fact that the Events are part of the Edition, should Edition even have a date when it could be just an Event like 'Conference Day' or something like that? And if edition must have from/till wouldn't it make more sense to be from Kick-Off date to Retrospective day? I'm just asking not implying we should redo it, just discussing what would be optimal and make most sense.

For me it is not a problem to move start and end of the conference day to the separate event. I see these two implementations as almost the same, but from the logical perspective, having start and end of the edition attached to it makes more sense, than having a separate event for it. Just my opinion. So if we change the logic and make the dates represent Kick-Off and Retrospective, what value would it bring? I don't remember that we had any features where we could use these dates. I would then rather just remove the dates from editions and make them a separate event, but as I said, in my mind I can't see how this is better than the current version... Maybe @TimKardol can help us haha

Yeah no fair enough, makes sense. If @TimKardol doesn't give any input till let's say monday lunchtime and all issues are fixed I suggest we merge @IGORnvk?

Sure, I am now finishing the policy implementation and then it can be merged.