Index: sections-app-util/src/bundle/sections.properties =================================================================== --- sections-app-util/src/bundle/sections.properties (revision 66264) +++ sections-app-util/src/bundle/sections.properties (working copy) @@ -8,7 +8,8 @@ nav_add_groups=Add Informal Groups nav_roster=Student Memberships nav_options=Options -nav_download=Download +nav_download_csv=Export to CSV +nav_download_excell=Export to MS-Excel nav_print=Print # Filtering Index: sections-app-util/src/bundle/sections_ca.properties =================================================================== --- sections-app-util/src/bundle/sections_ca.properties (revision 66264) +++ sections-app-util/src/bundle/sections_ca.properties (working copy) @@ -226,7 +226,8 @@ section_refresh_info=Quan arribe la data d' obertura, refresque la p�na per vore els grups. error_date_format=Errada en el format de la Data/Hora -nav_download=Descarregar +nav_download_csv=Exportar a CSV +nav_download_excell=Exportar a MS-Excel nav_print=Imprimir student_view_already_member_in_category=Ja sou membres d'una secci� en aquesta categoria. student_view_no_sections_not_available=La secci� que heu seleccionat ja no est� disponible. Seleccioneu-ne una altra Index: sections-app-util/src/bundle/sections_es.properties =================================================================== --- sections-app-util/src/bundle/sections_es.properties (revision 66264) +++ sections-app-util/src/bundle/sections_es.properties (working copy) @@ -8,7 +8,9 @@ nav_add_groups=A\u00F1adir Grupos Informales nav_roster=Alumnos miembros nav_options=Opciones -nav_download=Descargar +nav_download_csv=Exportar a CSV +nav_download_excel=Exportar a MS-Excel + nav_print=Imprimir # Filtering Index: sections-app/src/java/org/sakaiproject/tool/section/jsf/backingbean/RosterBean.java =================================================================== --- sections-app/src/java/org/sakaiproject/tool/section/jsf/backingbean/RosterBean.java (revision 66264) +++ sections-app/src/java/org/sakaiproject/tool/section/jsf/backingbean/RosterBean.java (working copy) @@ -46,6 +46,7 @@ import org.sakaiproject.tool.section.jsf.JsfUtil; import org.sakaiproject.jsf.spreadsheet.SpreadsheetDataFileWriterCsv; +import org.sakaiproject.jsf.spreadsheet.SpreadsheetDataFileWriterXls; import org.sakaiproject.jsf.spreadsheet.SpreadsheetUtil; @@ -298,7 +299,49 @@ return filterItems; } - public void export(ActionEvent event){ + public void exportExcel(ActionEvent event){ + List> spreadsheetData = new ArrayList>(); + // Get the section enrollments + Set studentUids = new HashSet(); + for(Iterator iter = siteStudents.iterator(); iter.hasNext();) { + ParticipationRecord record = (ParticipationRecord)iter.next(); + studentUids.add(record.getUser().getUserUid()); + } + SectionEnrollments sectionEnrollments = getSectionManager().getSectionEnrollmentsForStudents(getSiteContext(), studentUids); + // Add the header row + List header = new ArrayList(); + header.add(JsfUtil.getLocalizedMessage("roster_table_header_name")); + header.add(JsfUtil.getLocalizedMessage("roster_table_header_id")); + + for (Iterator iter = getUsedCategories().iterator(); iter.hasNext();){ + String category = (String)iter.next(); + String categoryName = getCategoryName(category); + header.add(categoryName); + } + spreadsheetData.add(header); + for(Iterator enrollmentIter = enrollments.iterator(); enrollmentIter.hasNext();) { + EnrollmentDecorator enrollment = enrollmentIter.next(); + List row = new ArrayList(); + row.add(enrollment.getUser().getSortName()); + row.add(enrollment.getUser().getDisplayId()); + + for (Iterator iter = getUsedCategories().iterator(); iter.hasNext();){ + String category = (String)iter.next(); + CourseSection section = sectionEnrollments.getSection(enrollment.getUser().getUserUid(), category); + + if(section!=null){ + row.add(section.getTitle()); + }else{ + row.add(""); + } + } + spreadsheetData.add(row); + } + String spreadsheetName = getDownloadFileName(getCourse().getTitle()); + SpreadsheetUtil.downloadSpreadsheetData(spreadsheetData, spreadsheetName, new SpreadsheetDataFileWriterXls()); + + } + public void exportCSV(ActionEvent event){ List> spreadsheetData = new ArrayList>(); // Get the section enrollments Index: sections-app/src/webapp/common/inc/navMenu.jspf =================================================================== --- sections-app/src/webapp/common/inc/navMenu.jspf (revision 66264) +++ sections-app/src/webapp/common/inc/navMenu.jspf (working copy) @@ -30,7 +30,8 @@ - + +