Skip to content

Commit

Permalink
s2u-26: Foros, punto A y Date-Manager
Browse files Browse the repository at this point in the history
  • Loading branch information
JuanDavid102 committed Sep 2, 2024
1 parent f5d5a55 commit 95ca28b
Show file tree
Hide file tree
Showing 4 changed files with 171 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1082,8 +1082,8 @@ private List<Double> getTotalPointsEarnedInternal(final String studentId, final

final Integer gbGradeType = gradebook.getGradeType();
if (!Objects.equals(GradingConstants.GRADE_TYPE_POINTS, gbGradeType) && !Objects.equals(GradingConstants.GRADE_TYPE_PERCENTAGE, gbGradeType)) {
System.out.println("gradebookgui " + gradebook.getUid());
System.out.println("gbGradeType " + gbGradeType);
System.out.println("gradebookgui " + gradebook.getUid());
System.out.println("gbGradeType " + gbGradeType);
log.error("Wrong grade type in GradebookCalculationImpl.getTotalPointsEarnedInternal");
return Collections.emptyList();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -676,26 +676,16 @@ public List getForums() {

//Code to get the gradebook service from ComponentManager
GradingService gradingService = getGradingService();
if (gradingService.isGradebookGroupEnabled(toolManager.getCurrentPlacement().getContext())) {
List<Gradebook> gradeAssignments = gradingService.getGradebookGroupInstances(toolManager.getCurrentPlacement().getContext());
for(int i=0; i<gradeAssignments.size(); i++) {
List<Assignment> groupAssignments = gradingService.getAssignments(gradeAssignments.get(i).getId().toString(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE);
for (Assignment assignment: groupAssignments) {
assignments.add(new SelectItem(Long.toString(assignment.getId()), assignment.getName()));
}
}
} else {
List gradeAssignmentsBeforeFilter = gradingService.getAssignments(toolManager.getCurrentPlacement().getContext(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE);
for (Assignment thisAssign : gradingService.getAssignments(toolManager.getCurrentPlacement().getContext(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE)) {
if (!thisAssign.getExternallyMaintained()) {
try {
assignments.add(new SelectItem(Long.toString(thisAssign.getId()), thisAssign.getName()));
} catch (Exception e) {
log.error("DiscussionForumTool - processDfMsgGrd:" + e);
}
}
}
}

for (Assignment thisAssign : gradingService.getAssignments(toolManager.getCurrentPlacement().getContext(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE)) {
if (!thisAssign.getExternallyMaintained()) {
try {
assignments.add(new SelectItem(Long.toString(thisAssign.getId()), thisAssign.getName()));
} catch (Exception e) {
log.error("DiscussionForumTool - processDfMsgGrd:" + e);
}
}
}

} catch (SecurityException se) {
log.debug("SecurityException caught while getting assignments.", se);
Expand Down Expand Up @@ -4573,7 +4563,7 @@ private void setUpGradeInformation(String gradebookUid, String siteId, String se
gbItemPointsPossible = ((DecimalFormat) numberFormat).format(assignment.getPoints());
}

GradeDefinition gradeDef = gradingService.getGradeDefinitionForStudentForItem(gradebookUid, gradebookUid, assignment.getId(), studentId);
GradeDefinition gradeDef = gradingService.getGradeDefinitionForStudentForItem(gradebookUid, siteId, assignment.getId(), studentId);

if (gradeDef.getGrade() != null) {
String decSeparator = formattedText.getDecimalSeparator();
Expand Down Expand Up @@ -5985,6 +5975,7 @@ private void resetGradeInfo() {
gbItemComment = null;
gradeComment = null;
gbItemPointsPossible = null;
currentChange = null;
}

public String processDfGradeCancel()
Expand Down Expand Up @@ -6048,6 +6039,73 @@ public String processGradeAssignChange(ValueChangeEvent vce)
}
}
}

public String currentChange;
public void setCurrentChange(String newChange){
currentChange = newChange;
}
public String getCurrentChange(){
return currentChange;
}

public String processGradeAssignSend()
{
String changeAssign = currentChange; // Set value
if (changeAssign == null || changeAssign.split(",").length > 1)
{
return null;
}
else
{

try
{
selectedAssign = changeAssign;
resetGradeInfo();

if(!DEFAULT_GB_ITEM.equalsIgnoreCase(selectedAssign)) {
String gradebookUid = toolManager.getCurrentPlacement().getContext();
if (isGradebookGroupEnabled()) {
boolean exit = false;
List<Gradebook> gradebookGroupInstances = getGradingService().getGradebookGroupInstances(gradebookUid);
int i = 0;
while (!exit && i < gradebookGroupInstances.size()) {
Gradebook gradebookGroup = gradebookGroupInstances.get(i);
List<Assignment> groupAssignments = getGradingService().getAssignments(gradebookGroup.getUid().toString(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE);
int z = 0;
while (!exit && z < groupAssignments.size()) {
Assignment assignment = groupAssignments.get(z);
if (assignment.getId().toString().equals(selectedAssign)) {
gradebookUid = gradebookGroup.getUid().toString();
exit = true;
}
z++;
}
i++;
}
}
String studentId;
if(selectedMessage == null && selectedGradedUserId != null && !"".equals(selectedGradedUserId)){
studentId = selectedGradedUserId;
}else{
studentId = userDirectoryService.getUser(selectedMessage.getMessage().getCreatedBy()).getId();
}
setUpGradeInformation(gradebookUid, toolManager.getCurrentPlacement().getContext(), selectedAssign, studentId);
} else {
// this is the "Select a gradebook item" option
allowedToGradeItem = false;
selGBItemRestricted = true;
}

return GRADE_MESSAGE;
}
catch(Exception e)
{
log.error("processGradeAssignChange in DiscussionFOrumTool - " + e);
return null;
}
}
}

public boolean isNumber(String validateString)
{
Expand Down Expand Up @@ -6184,15 +6242,35 @@ public String processDfGradeSubmit()
String studentUid = null;
try
{
String siteId = toolManager.getCurrentPlacement().getContext();
String gradebookUuid = toolManager.getCurrentPlacement().getContext();
if (isGradebookGroupEnabled()) {
boolean exit = false;
List<Gradebook> gradebookGroupInstances = getGradingService().getGradebookGroupInstances(gradebookUuid);
int i = 0;
while (!exit && i < gradebookGroupInstances.size()) {
Gradebook gradebookGroup = gradebookGroupInstances.get(i);
List<Assignment> groupAssignments = getGradingService().getAssignments(gradebookGroup.getUid().toString(), toolManager.getCurrentPlacement().getContext(), SortType.SORT_BY_NONE);
int z = 0;
while (!exit && z < groupAssignments.size()) {
Assignment assignment = groupAssignments.get(z);
if (assignment.getId().toString().equals(selectedAssign)) {
gradebookUuid = gradebookGroup.getUid().toString();
exit = true;
}
z++;
}
i++;
}
}
if(selectedMessage == null && selectedGradedUserId != null && !"".equals(selectedGradedUserId)){
studentUid = selectedGradedUserId;
}else{
studentUid = userDirectoryService.getUser(selectedMessage.getMessage().getCreatedBy()).getId();
}

Long gbItemId = gradingService.getAssignmentByNameOrId(gradebookUuid, gradebookUuid, selectedAssign).getId();
gradingService.saveGradeAndCommentForStudent(gradebookUuid, gradebookUuid, gbItemId, studentUid, gradePoint, gradeComment);
Long gbItemId = gradingService.getAssignmentByNameOrId(gradebookUuid, siteId, selectedAssign).getId();
gradingService.saveGradeAndCommentForStudent(gradebookUuid, siteId, gbItemId, studentUid, gradePoint, gradeComment);

if(selectedMessage != null){

Expand Down Expand Up @@ -9507,4 +9585,8 @@ public String getAttachmentReadableSize(final String attachmentSize) {
return FileUtils.byteCountToDisplaySize(Long.parseLong(attachmentSize));
}

public boolean isGradebookGroupEnabled() {
return getGradingService().isGradebookGroupEnabled(toolManager.getCurrentPlacement().getContext());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
<script>includeWebjarLibrary('bootstrap')</script>
<script src="/library/js/sakai-reminder.js"></script>
<script type="module" src="/webcomponents/bundles/rubric-association-requirements.js<h:outputText value="#{ForumTool.CDNQuery}" />"></script>
<script type="module" src="/vuecomponents/js/sakai.min.js<h:outputText value="#{ForumTool.CDNQuery}" />"></script>
<h:form id="msgForum">
<!--jsp\discussionForum\message\dfMsgGrade.jsp-->

Expand Down Expand Up @@ -66,6 +67,7 @@
}
boolean hasAssociatedRubric = forumTool.hasAssociatedRubric();
boolean isGradebookGroupEnabled = forumTool.isGradebookGroupEnabled();
String entityId = forumTool.getRubricAssociationId();
if (userId == null) userId = forumTool.getUserId();
Expand Down Expand Up @@ -154,9 +156,18 @@
<h:outputText value="#{msgs.cdfm_required}" />
<h:outputText value="#{msgs.pvt_star}" styleClass="reqStarInline"/>
</h:panelGroup>

<% if (isGradebookGroupEnabled) { %>
<sakai-multi-gradebook
id="gb-selector"
site-id='<h:outputText value="#{ForumTool.siteId}" />'
user-id='<h:outputText value="#{ForumTool.selectedGradedUserId}" />'
selected-temp='<h:outputText value="#{ForumTool.selectedAssign}" />'
>
</sakai-multi-gradebook>
<h:inputHidden id="gb_selector" value="#{ForumTool.currentChange}" />
<%}%>
<h:panelGrid id="grade-message-options" styleClass="jsfFormTable" columns="1" columnClasses="shorttext spinnerBesideContainer" border="0">
<% if (!hasAssociatedRubric) { %>
<% if (!hasAssociatedRubric && !isGradebookGroupEnabled) { %>
<h:panelGroup rendered="#{!hasAssociatedRubric}">
<h:outputLabel for="assignment" rendered="#{ForumTool.allowedToGradeItem}">
<h:outputText value="#{msgs.cdfm_info_required_sign}" styleClass="reqStarInline" style="padding-right:3px"/>
Expand Down Expand Up @@ -197,18 +208,6 @@
rendered="#{!ForumTool.selGBItemRestricted}" readonly="#{!ForumTool.allowedToGradeItem}"/>
</h:panelGroup>
</h:panelGrid>
<h:panelGroup>
<h:outputText value="#{ForumTool.siteId}" />
</h:panelGroup>
<sakai-multi-gradebook
id="gb-selector"
site-id='<h:outputText value="#{ForumTool.siteId}" />'
>
</sakai-multi-gradebook>
<h:panelGroup>
<h:outputText value="#{ForumTool.siteId}" />
</h:panelGroup>
<h:inputHidden id="gb_selector" />

<% if (hasAssociatedRubric) { %>
<sakai-rubric-grading
Expand All @@ -233,6 +232,7 @@
<h:commandButton action="#{ForumTool.processDfGradeCancel}" value="#{msgs.cdfm_cancel}" accesskey="x"
onclick="MFR.cancelGrading();" />
<%}%>
<h:commandButton value="Send Info" onclick="document.forms[0].submit();" accesskey="x" action="#{ForumTool.processGradeAssignSend}" />

</sakai:button_bar>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@
import lombok.extern.slf4j.Slf4j;
import org.sakaiproject.tool.api.ToolSession;
import org.sakaiproject.tool.assessment.data.ifc.assessment.AssessmentFeedbackIfc;
import org.sakaiproject.site.api.Group;

@Slf4j
public class DateManagerServiceImpl implements DateManagerService {
Expand Down Expand Up @@ -402,7 +403,23 @@ public void updateAssignments(DateManagerValidation assignmentValidation) throws
// TODO S2U-26 actualizar los items relacionados..
// only update externally linked assignments since internal links are already handled
if (gradingService.isExternalAssignmentDefined(assignment.getContext(), associatedGradebookAssignment)) {
org.sakaiproject.grading.api.Assignment gAssignment = gradingService.getExternalAssignment(assignment.getContext(), associatedGradebookAssignment);
// ToDo: get the externalId and compare it
org.sakaiproject.grading.api.Assignment gAssignment;
if (gradingService.isGradebookGroupEnabled(getCurrentSiteId())) {
List<Gradebook> gradebooks = gradingService.getGradebookGroupInstances(getCurrentSiteId());
String groupId = "";
for (Gradebook gra : gradebooks) {
List<org.sakaiproject.grading.api.Assignment> groupAssignments = gradingService.getAssignments(gra.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE);
for (org.sakaiproject.grading.api.Assignment assignmentAux : groupAssignments) {
if (assignmentAux.getId().equals(associatedGradebookAssignment)) {
groupId = gra.getUid();
}
}
}
gAssignment = gradingService.getExternalAssignment(groupId, associatedGradebookAssignment);
} else {
gAssignment = gradingService.getExternalAssignment(assignment.getContext(), associatedGradebookAssignment);
}
if (gAssignment != null) {
gradingService.updateExternalAssessment(
assignment.getContext(),
Expand Down Expand Up @@ -660,6 +677,21 @@ public void updateAssessments(DateManagerValidation assessmentsValidation) throw

// only updating if the gradebook item exists and is external
String siteId = assessment.getOwnerSiteId();

// ToDo: the function gradingService.isExternalAssignmentDefined() it is not working in that piece of code to gradebook for groups (even if i set the groupId)
// ToDo: the function gradingService.getAssignments() not getting the externalId to gradebook for groups


List<Gradebook> gradebooks = gradingService.getGradebookGroupInstances(siteId);
String groupId = "";
for (Gradebook gra : gradebooks) {
List<org.sakaiproject.grading.api.Assignment> groupAssignments = gradingService.getAssignments(gra.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE);
for (org.sakaiproject.grading.api.Assignment assignment : groupAssignments) {
}
}



// TODO S2U-26 TODO actualizar los relacionados samigo
if (StringUtils.isNotBlank(siteId) && gradingService.isExternalAssignmentDefined(siteId, id)) {
org.sakaiproject.grading.api.Assignment gAssignment = gradingService.getExternalAssignment(siteId, id);
Expand Down Expand Up @@ -759,7 +791,22 @@ public DateManagerValidation validateGradebookItems(String siteId, JSONArray gra
}

//TODO s2u-26 revisar
org.sakaiproject.grading.api.Assignment gbitem = gradingService.getAssignmentById(getCurrentSiteId(), itemId);
org.sakaiproject.grading.api.Assignment gbitem;
if (gradingService.isGradebookGroupEnabled(getCurrentSiteId())) {
List<Gradebook> gradebooks = gradingService.getGradebookGroupInstances(siteId);
String groupId = "";
for (Gradebook gra : gradebooks) {
List<org.sakaiproject.grading.api.Assignment> groupAssignments = gradingService.getAssignments(gra.getUid().toString(), getCurrentSiteId(), SortType.SORT_BY_NONE);
for (org.sakaiproject.grading.api.Assignment assignment : groupAssignments) {
if (assignment.getId().equals(itemId)) {
groupId = gra.getUid();
}
}
}
gbitem = gradingService.getAssignmentById(groupId, itemId);
} else {
gbitem = gradingService.getAssignmentById(getCurrentSiteId(), itemId);
}
if (gbitem == null) {
errors.add(new DateManagerError("gbitem", rb.getFormattedMessage("error.item.not.found", new Object[]{rb.getString("tool.gradebook.item.name")}), "gradebookItems", toolTitle, idx));
continue;
Expand Down Expand Up @@ -789,6 +836,7 @@ public void updateGradebookItems(DateManagerValidation gradebookItemsValidate) t
Date dueDateTemp = update.dueDate != null ? Date.from(update.dueDate) : null;
assignmentDefinition.setDueDate(dueDateTemp);
String gradebookUid = gradingService.getGradebookUidByAssignmentById(getCurrentSiteId(), assignmentDefinition.getId());
Site site = siteService.getSite(getCurrentSiteId());
gradingService.updateAssignment(gradebookUid, getCurrentSiteId(), assignmentDefinition.getId(), assignmentDefinition);
}
}
Expand Down

0 comments on commit 95ca28b

Please sign in to comment.