Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Communication: Combine messages and communication view #8801

Merged
merged 97 commits into from
Jun 30, 2024

Conversation

egekurt123
Copy link
Contributor

@egekurt123 egekurt123 commented Jun 16, 2024

Checklist

General

Client

  • Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data.
  • I strictly followed the client coding and design guidelines.
  • Following the theming guidelines, I specified colors only in the theming variable files and checked that the changes look consistent in both the light and the dark theme.
  • I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.
  • I added authorities to all new routes and checked the course groups for displaying navigation elements (links, buttons).
  • I documented the TypeScript code using JSDoc style.
  • I translated all newly inserted strings into English and German.

Motivation and Context

Solves #8585

This PR removes the legacy Communication module and makes the direct messages and group chats in the Messages module optional. With this update, users and instructors can access the same communication functions within the Messages module. The configuration is like before on create/edit course page.

Steps for Testing

Prerequisites:

  • 1 Instructor
  • 1 Course
  1. Log in to Artemis
  2. Navigate to Course Administration
  3. Enable Communication and Messaging
  4. Check that on the Communications page direct messages and group messages are available
  5. Navigate back to Course Administration
  6. Disable only Messaging (Let Communications enabled)
  7. Check that on the Communications page direct messages and group messages are disabled
  8. Make sure that everything else works fine

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked







Review Progress

Performance Review

  • I (as a reviewer) confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
  • I (as a reviewer) confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

  • Code Review 1
  • Code Review 2

Manual Tests

  • Test 1
  • Test 2

Screenshots

Enabling Direct Messages / Group Chats in Course Management Page:
Screenshot 2024-06-30 at 14 38 50

Communication Sidebar when enabling Direct Messages / Group Chats
Screenshot 2024-06-30 at 14 41 19

Communication Sidebar when disabling Direct Messages / Group Chats
Screenshot 2024-06-30 at 14 40 32

General Sidebar and Overview
Screenshot 2024-06-30 at 16 51 04

Course Management Header
Screenshot 2024-06-30 at 16 49 55

Course Management View
Screenshot 2024-06-30 at 16 52 35

Test Coverage

Client

Class/File Line Coverage Confirmation (assert/expect)
learning-path-lecture-unit-view.component.ts 100%
course-update.component.ts 88.93% ✅ ❌
tutorial-group-detail.component.ts 94.11% ✅ ❌
course.model.ts 100%
course-conversations.component.ts 95.67% ✅ ❌
channels-overview-dialog.component.ts 92.95% ✅ ❌
course-discussion.component.ts not found (deleted)
course-lecture-details.component.ts 93.5% ✅ ❌
course-overview.component.ts 88.05% ✅ ❌
course-overview.service.ts 92.5% ✅ ❌
discussion-section.component.ts 93.63% ✅ ❌
course-exercise-details.component.ts 89.09% ✅ ❌
metis-conversation.service.ts 84.97% ✅ ❌
metis.service.ts 88.42% ✅ ❌
post.component.ts 90.38% ✅ ❌
post-create-edit-modal.component.ts 92.53% ✅ ❌
post-footer.component.ts 100%
posting-header.directive.ts 100%
post-reactions-bar.component.ts 87.93% ✅ ❌
posting-thread.component.ts 100%
posting.directive.ts 100%

Server

Class/File Line Coverage Confirmation (assert/expect)
CourseInformationSharingConfiguration.java 100%
CourseRepository.java 76% ✅ ❌
ConversationService.java 93% ✅ ❌
ChannelResource.java 91% ✅ ❌
ConversationManagementResource.java 100%

Summary by CodeRabbit

  • New Features

    • Updated course communication and messaging configurations to streamline user experience.
    • Enhanced course management interface to dynamically disable messaging based on settings.
    • Modified course navigation to unify messaging and communication routes.
  • Bug Fixes

    • Corrected conditional logic for enabling messaging and communication features across the platform.
  • Refactor

    • Renamed properties and routes to align with new communication-focused terminology.
    • Removed deprecated messaging configurations for improved consistency.
  • Style

    • Updated various component templates to reflect the new communication terminology and configurations.
  • Documentation

    • Adjusted translation files to remove outdated messaging keys and reflect the new communication terminology.
  • Tests

    • Renamed and updated test cases to reflect changes in communication and messaging configurations.

@rabeatwork
Copy link
Contributor

When group or direct messages are disabled, clicking on the '+' icon results in an 'unauthorized' error message. Similarly, attempting to create a new channel leads to the same error after clicking 'submit.
image

coderabbitai[bot]

This comment was marked as resolved.

@krusche krusche changed the title Communication: Merge Messages and Communication Modules Communication: Combine messages and communication view Jun 30, 2024
@krusche krusche added this to the 7.3.1 milestone Jun 30, 2024
@krusche krusche merged commit 257eefc into develop Jun 30, 2024
28 of 41 checks passed
@krusche krusche deleted the chore/communication/merge-messages-and-communication branch June 30, 2024 15:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client Pull requests that update TypeScript code. (Added Automatically!) component:Communication cypress Pull requests that update cypress tests. (Added Automatically!) database Pull requests that update the database. (Added Automatically!). Require a CRITICAL deployment. documentation ready for review server Pull requests that update Java code. (Added Automatically!) tests user interface
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Code of Conduct not rendering properly at small width