Porting UCD Gradebook changes to 2.3

Details of changes made to 2-1-x:

New Files (classes, etc)

  • service/src/java/org/sakaiproject/service/gradebook/shared/GradebookCourseGradeFeedService.java

    Abstract class defining string and vector constants for ...

    • properties file name and properties keys
    • property value delimiter and 'placeholder' property values for 'roster' and 'final' grades respectively
    • default column sort order
    • enumeration of course metadata column keys
  • component/src/java/org/sakaiproject/component/gradebook/GradebookCourseGradeFeedServiceImpl.java

    Stub extension of GradebookCourseGradeFeedService

  • component/src/java/org/sakaiproject/tool/gradebook/facades/SakaiSiteService.java

    Interface for Facade of Sakai SiteService

    • getSiteProviderId(): gets current site's provider id from Sakai SiteService
    • getSiteTitle(): gets current site's title from Sakai SiteService
  • tool/src/java/org/sakaiproject/tool/gradebook/facades/sakai2impl/SiteServiceImpl.java

    Implementation of SiteService facade

    • getSiteTitle(): uses gradebook id as the site id
    • getSiteTitle(): uses gradebook id as the site id
  • tool/src/bundle/org/sakaiproject/tool/gradebook/bundle/GradeDownloadConfig.properties

    properties bundle for new download options.

Modifications to pre-existing files

  • component-data/src/java/org/sakaiproject/tool/gradebook/Assignment.java

    • calculateMean(): changed mean calculation to exclude gradeableObjects with null grades
  • component-data/src/java/org/sakaiproject/tool/gradebook/PassNotPassMapping.java

    • added UC Davis' 7 kinds of 'pass/no pass' grades (S/U excluded)
  • component-data/src/java/org/sakaiproject/tool/gradebook/LetterGradeMapping.java
  • component-data/src/java/org/sakaiproject/tool/gradebook/LetterGradePlusMinusMapping.java

    • added 5 of UC Davis' 7 kinds of 'pass/no pass' grades (S/U excluded)
  • tool/src/bundle/org/sakaiproject/tool/gradebook/bundle/Messages.properties

    Added new properties defining for a export filename template which uses column names as placeholders for the implied data for that 'column'. These keys are passed to ExportBean.getCourseMetadataValue(String key) for each data.

    Examples:

    • #export_filename_sitemetadata_format=export_course_grade_gradebookid_column_name-export_course_grade_siteprovider_column_name
    • export_filename_sitemetadata_format=export_course_grade_siteprovider_column_name
    • export_filename_sitemetadata_format_delimiter=- (<-- that's a "dash character")
  • tool/src/webapp/common/WEB-INF/spring-service.xml

    added bean definition for org_sakaiproject_service_gradebook_GradebookCourseGradeFeedService bean

  • tool/src/webapp/common/WEB-INF/faces-beans.xml

    added faces bean for SiteService facade: org_sakaiproject_tool_gradebook_facades_SakaiSiteService
    added injection of org_sakaiproject_tool_gradebook_facades_ContextManagement into SiteService facade

  • tool/src/webapp/common/courseGradeDetails.jsp

    edited 'rendered' attribute of csv and excel export command buttons to check
    (!courseGradeDetailsBean.emptyEnrollments && exportBean.courseGradeDownloadEnabled)

    added commandButton for 'Enterprise Export/Download' with 'rendered' attribute checking
    (!courseGradeDetailsBean.emptyEnrollments && exportBean.courseGradeEntSubmissionEnabled)

  • tool/src/java/org/sakaiproject/tool/gradebook/ui/ExportBean.java

    Summary:

    • added property initialization logic to constructor
    • added second (boolean) parameter to getAsCsv() and getAsExcel() to switch inclusion of defined course metadata columns in the returned data
    • added getOrderedColumns() method to return a List of columns from config files or default settings
    • added getCourseMetadataValue(String key) to return appropriate values for metadata keys used in prop files (eg, Site Id, Site Title, Provider Id)
    • modified nested loops in getAs*() methods to place grade-able objects based on ordered Column settings