Skip to content

Task - Course updates and handouts #315

Description

@MaferMazu
No description provided.

Activity

  1. bra-i-am commented on Jun 4, 2026

    @bra-i-am

    Refinement

    https://www.figma.com/design/onU2END2OXaF7RRLWEHsZI/AuthZ---v2?node-id=9141-5701&t=YfVqHIHjz2peZgpH-0

    Permission used: courses.manage_course_updates / courses.view_course_updates.
    Pattern: same useCourseUserPermissions hook — already resolved in CourseUpdates.tsx as canViewCourseUpdates and canManageCourseUpdates.


    UI location 1 — Course Updates page (view-only banner + hidden empty-state button for Course Auditor)

    Files: course-updates/messages.ts → course-updates/CourseUpdates.tsx

    course-updates/messages.ts — add view-only alert message:

      viewOnlyAlert: {
        id: 'course-authoring.course-updates.alert.view-only',
        defaultMessage: 'You have view-only access to this page. Contact your organization admin to request permissions.',
        description: 'Alert shown to users who can view but cannot manage course updates',
      },

    course-updates/CourseUpdates.tsx — add Alert to paragon imports, add Lock icon, show view-only banner between SubHeader and the updates section, and gate the empty-state button:

    // paragon import — add Alert
    import {
      ActionRow,
      Alert,
      Button,
      Container,
      Layout,
    } from '@openedx/paragon';
    
    // icons import — add Lock
    import { Add as AddIcon, ErrorOutline as ErrorIcon, Lock as LockIcon } from '@openedx/paragon/icons';
    
    ...
    
                  <SubHeader ... />
                  {canViewCourseUpdates && !canManageCourseUpdates && (
                    <Alert variant="info" icon={LockIcon}>
                      {intl.formatMessage(messages.viewOnlyAlert)}
                    </Alert>
                  )}
                  <section className="updates-section">
    
    ...
    
                        {!courseUpdates.length && (
                          <ActionRow>
                            <ActionRow.Spacer />
                            <span className="small mr-2">
                              {intl.formatMessage(messages.noCourseUpdates)}
                            </span>
                            {canManageCourseUpdates && (
                              <Button
                                variant="primary"
                                iconBefore={AddIcon}
                                size="sm"
                                onClick={() => handleOpenUpdateForm(REQUEST_TYPES.add_new_update)}
                                disabled={isUpdateFormOpen || errors.loadingUpdates}
                              >
                                {intl.formatMessage(messages.firstUpdateButton)}
                              </Button>
                            )}
                            <ActionRow.Spacer />
                          </ActionRow>
                        )}

    Testing implementation at https://github.com/eduNEXT/frontend-app-authoring/tree/bc/change-course-update-view

    Image
  2. moved this to Ready for Development in RBAC AuthZ Boardon Jun 4, 2026
  3. assigned and unassigned on Aug 4, 2026
  4. moved this from Ready for Development to In Progress in RBAC AuthZ Boardon Aug 7, 2026
  5. dcoa commented on Aug 10, 2026

    @dcoa
    Contributor

    Most of the implementation has been done previously. I am going to open a same PR for those that have the View Only Alert including this one.

  6. moved this from In Progress to Ready for Review in RBAC AuthZ Boardon Aug 10, 2026
  7. moved this from Ready for Review to Done in RBAC AuthZ Boardon Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions