Skip to content

Commit 1ee2b86

Browse files
committed
Edit Scheduling Subpart: Subpart Credit
- Max Units made editable when editing Variable Min/Max credit without the need to change the credit type first (when editing existing credit information) - fixed an issue when no units or max units are provided (for a type that requires units/max units) or when the provided units are not a number
1 parent d8d8a58 commit 1ee2b86

File tree

4 files changed

+44
-15
lines changed

4 files changed

+44
-15
lines changed

JavaSource/org/unitime/timetable/action/SchedulingSubpartEditAction.java

+28-6
Original file line numberDiff line numberDiff line change
@@ -340,10 +340,10 @@ private void doLoad(SchedulingSubpart ss, String subpartId ) {
340340
form.setCreditType(credit.getCreditType().getUniqueId());
341341
form.setCreditUnitType(credit.getCreditUnitType().getUniqueId());
342342
if (credit instanceof FixedCreditUnitConfig){
343-
form.setUnits(((FixedCreditUnitConfig) credit).getFixedUnits());
343+
form.setUnits(float2string(((FixedCreditUnitConfig) credit).getFixedUnits()));
344344
} else if (credit instanceof VariableFixedCreditUnitConfig){
345-
form.setUnits(((VariableFixedCreditUnitConfig) credit).getMinUnits());
346-
form.setMaxUnits(((VariableFixedCreditUnitConfig) credit).getMaxUnits());
345+
form.setUnits(float2string(((VariableFixedCreditUnitConfig) credit).getMinUnits()));
346+
form.setMaxUnits(float2string(((VariableFixedCreditUnitConfig) credit).getMaxUnits()));
347347
if (credit instanceof VariableRangeCreditUnitConfig){
348348
form.setFractionalIncrementsAllowed(((VariableRangeCreditUnitConfig) credit).isFractionalIncrementsAllowed());
349349
}
@@ -444,18 +444,27 @@ private void doUpdate(SchedulingSubpart ss, SchedulingSubpartDAO sdao, boolean t
444444
CourseCreditUnitConfig origConfig = ss.getCredit();
445445
ss.setCredit(null);
446446
sdao.getSession().remove(origConfig);
447-
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(), form.getUnits(), form.getMaxUnits(), form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
447+
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(
448+
form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(),
449+
string2float(form.getUnits()), string2float(form.getMaxUnits()),
450+
form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
448451
ss.getCredit().setOwner(ss);
449452
}
450453
} else {
451454
CourseCreditUnitConfig origConfig = ss.getCredit();
452455
ss.setCredit(null);
453456
sdao.getSession().remove(origConfig);
454-
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(), form.getUnits(), form.getMaxUnits(), form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
457+
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(
458+
form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(),
459+
string2float(form.getUnits()), string2float(form.getMaxUnits()),
460+
form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
455461
ss.getCredit().setOwner(ss);
456462
}
457463
} else {
458-
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(), form.getUnits(), form.getMaxUnits(), form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
464+
ss.setCredit(CourseCreditUnitConfig.createCreditUnitConfigOfFormat(
465+
form.getCreditFormat(), form.getCreditType(), form.getCreditUnitType(),
466+
string2float(form.getUnits()), string2float(form.getMaxUnits()),
467+
form.getFractionalIncrementsAllowed(), Boolean.valueOf(false)));
459468
ss.getCredit().setOwner(ss);
460469
}
461470
}
@@ -485,6 +494,19 @@ private void doUpdate(SchedulingSubpart ss, SchedulingSubpartDAO sdao, boolean t
485494
sdao.getSession().flush();
486495
}
487496

497+
protected static Float string2float(String value) {
498+
try {
499+
return Float.valueOf(value);
500+
} catch (Exception e) {
501+
return 0f;
502+
}
503+
}
504+
505+
protected static String float2string(Float value) {
506+
if (value == null) return "";
507+
return value.toString();
508+
}
509+
488510
protected void setupChildren(SchedulingSubpart ss) {
489511
DatePattern selectedDatePattern = (form.getDatePattern() < 0 ? (ss.canInheritParentPreferences() ? ss.getParentSubpart().effectiveDatePattern() : ss.getSession().getDefaultDatePatternNotNull()) : DatePatternDAO.getInstance().get(form.getDatePattern()));
490512
try {

JavaSource/org/unitime/timetable/form/SchedulingSubpartEditForm.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ public class SchedulingSubpartEditForm extends PreferencesForm {
5050
private String creditFormat;
5151
private Long creditType;
5252
private Long creditUnitType;
53-
private Float units;
54-
private Float maxUnits;
53+
private String units;
54+
private String maxUnits;
5555
private Boolean fractionalIncrementsAllowed;
5656
private String creditText;
5757
private Boolean sameItypeAsParent;
@@ -238,22 +238,22 @@ public void setFractionalIncrementsAllowed(Boolean fractionalIncrementsAllowed)
238238
this.fractionalIncrementsAllowed = fractionalIncrementsAllowed;
239239
}
240240

241-
public Float getMaxUnits() {
241+
public String getMaxUnits() {
242242
return maxUnits;
243243
}
244244

245-
public void setMaxUnits(Float maxUnits) {
245+
public void setMaxUnits(String maxUnits) {
246246
this.maxUnits = maxUnits;
247247
}
248-
249-
public Float getUnits() {
248+
249+
public String getUnits() {
250250
return units;
251251
}
252252

253-
public void setUnits(Float units) {
253+
public void setUnits(String units) {
254254
this.units = units;
255255
}
256-
256+
257257
public String getCreditText() {
258258
return creditText;
259259
}

WebContent/help/Release-Notes.xml

+7
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@
4444
</line>
4545
</description>
4646
</item>
47+
<item>
48+
<name>Edit Scheduling Subpart: Subpart Credit</name>
49+
<description>
50+
<line>Max Units made editable when editing Variable Min/Max credit without the need to change the credit type first (when editing existing credit information).</line>
51+
<line>Fixed an issue when no units or max units are provided (for a type that requires units/max units) or when the provided units are not a number.</line>
52+
</description>
53+
</item>
4754
<item>
4855
<name>Course Timetabling Solver: Optimization</name>
4956
<description>

WebContent/user/schedulingSubpartEdit.jsp

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
<td nowrap><loc:message name="propertyMaxUnits"/></td>
210210
<td>
211211
<s:textfield name="form.maxUnits" maxlength="4" size="4"
212-
disabled="%{form.creditFormat != 'variableRange'}"/>
212+
disabled="%{form.creditFormat != 'variableRange' && form.creditFormat != 'variableMinMax'}"/>
213213
</td>
214214
</tr>
215215
<tr>

0 commit comments

Comments
 (0)