View Javadoc

1   /**
2    * Copyright 2012 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   *
15   * Created by Charles on 6/18/12
16   */
17  package org.kuali.student.enrollment.class2.courseoffering.controller;
18  
19  import org.apache.log4j.Logger;
20  import org.kuali.rice.krad.util.GlobalVariables;
21  import org.kuali.rice.krad.web.controller.UifControllerBase;
22  import org.kuali.rice.krad.web.form.UifFormBase;
23  import org.kuali.student.enrollment.class2.courseoffering.util.CourseOfferingManagementUtil;
24  import org.kuali.student.r2.core.acal.dto.TermInfo;
25  import org.kuali.student.enrollment.class2.courseoffering.form.DeleteTargetTermForm;
26  import org.kuali.student.enrollment.class2.courseoffering.service.CourseOfferingViewHelperService;
27  import org.kuali.student.enrollment.courseofferingset.dto.SocInfo;
28  import org.kuali.student.r2.common.util.constants.CourseOfferingSetServiceConstants;
29  import org.springframework.stereotype.Controller;
30  import org.springframework.validation.BindingResult;
31  import org.springframework.web.bind.annotation.ModelAttribute;
32  import org.springframework.web.bind.annotation.RequestMapping;
33  import org.springframework.web.bind.annotation.RequestMethod;
34  import org.springframework.web.servlet.ModelAndView;
35  
36  import javax.servlet.http.HttpServletRequest;
37  import javax.servlet.http.HttpServletResponse;
38  import java.util.Calendar;
39  import java.util.Date;
40  import java.util.List;
41  
42  /**
43   * This class provides controller methods for Delete Target Term ui
44   *
45   * @author Kuali Student Team
46   */
47  @Controller
48  @RequestMapping(value = "/deleteTargetTerm")
49  public class DeleteTargetTermController extends UifControllerBase {
50      private final static Logger LOGGER = Logger.getLogger(DeleteTargetTermForm.class);
51  
52      @Override
53      protected UifFormBase createInitialForm(HttpServletRequest httpServletRequest) {
54          return new DeleteTargetTermForm();
55      }
56  
57      @Override
58      @RequestMapping(method = RequestMethod.GET, params = "methodToCall=start")
59      public ModelAndView start(@ModelAttribute("KualiForm") UifFormBase form, @SuppressWarnings("unused") BindingResult result,
60                                @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) {
61          if (!(form instanceof DeleteTargetTermForm)){
62              throw new RuntimeException("Form object passed into start method was not of expected type DeleteTargetTermForm. Got " + form.getClass().getSimpleName());
63          }
64          DeleteTargetTermForm theForm = (DeleteTargetTermForm) form;
65          Date date = Calendar.getInstance().getTime();
66          LOGGER.error(date.toString() + " ");
67          LOGGER.error(theForm);
68          return getUIFModelAndView(theForm);
69      }
70  
71      @RequestMapping(params = "methodToCall=goTargetTerm")
72      public ModelAndView goTargetTerm(@ModelAttribute("KualiForm") DeleteTargetTermForm form, @SuppressWarnings("unused") BindingResult result,
73                                       @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
74          LOGGER.info("In goTargetTerm");
75          CourseOfferingViewHelperService helperService = CourseOfferingManagementUtil.getCoViewHelperService(form);
76  
77          List<TermInfo> termInfos = helperService.findTermByTermCode(form.getTargetTermCode());
78          if (termInfos == null || termInfos.isEmpty()) {
79              // Must have a valid term
80              GlobalVariables.getMessageMap().putError("targetTermCode", "error.submit.sourceTerm"); // TODO: Change error
81              return getUIFModelAndView(form);
82          }
83          int firstTerm = 0;
84          TermInfo termInfo = termInfos.get(firstTerm);
85          // Fill in form data for target term
86          form.setDisplayedTargetTermId(termInfo.getId());
87          String startDateStr = helperService.formatDate(termInfo.getStartDate());
88          String endDateStr = helperService.formatDate(termInfo.getEndDate());
89          form.setTargetTermStartDate(startDateStr);
90          form.setTargetTermEndDate(endDateStr);
91          return getUIFModelAndView(form);
92      }
93  
94      @RequestMapping(params = "methodToCall=deleteTargetTerm")
95      public ModelAndView deleteTargetTerm(@ModelAttribute("KualiForm") DeleteTargetTermForm form, @SuppressWarnings("unused") BindingResult result,
96                                           @SuppressWarnings("unused") HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
97  
98          if (form.getTargetTermCode() == null || form.getTargetTermCode().length() == 0) {
99              GlobalVariables.getMessageMap().putError("targetTermCode", "error.submit.sourceTerm");
100             return getUIFModelAndView(form);
101         }
102         // Check for target SOC
103         CourseOfferingViewHelperService helperService = CourseOfferingManagementUtil.getCoViewHelperService(form);
104         SocInfo mainSoc = helperService.getMainSoc(form.getDisplayedTargetTermId());
105         if (mainSoc == null) {
106             GlobalVariables.getMessageMap().putError("targetTermCode", "error.delete.targetTerm.noSoc");
107             return getUIFModelAndView(form);
108         }
109         if (!mainSoc.getStateKey().equals(CourseOfferingSetServiceConstants.DRAFT_SOC_STATE_KEY)) {
110             GlobalVariables.getMessageMap().putError("targetTermCode", "error.delete.targetTerm.notDraftSoc");
111             return getUIFModelAndView(form);
112         }
113         helperService.deleteTargetTerm(form.getDisplayedTargetTermId(), form);
114         return getUIFModelAndView(form);
115     }
116 }