@RequestMapping(method = RequestMethod.GET)
  public String edit(final Model model, @PathVariable final String crnNo) {
    final Complaint complaint = complaintService.getComplaintByCRN(crnNo);
    model.addAttribute("complaintHistory", complaintService.getHistory(complaint));
    model.addAttribute(
        "status",
        complaintStatusMappingService.getStatusByRoleAndCurrentStatus(
            securityUtils.getCurrentUser().getRoles(), complaint.getStatus()));
    model.addAttribute("complaint", complaint);

    if (securityUtils.currentUserType().equals(UserType.CITIZEN)) return COMPLAINT_CITIZEN_EDIT;
    else {
      model.addAttribute("approvalDepartmentList", departmentService.getAllDepartments());
      model.addAttribute("complaintType", complaintTypeService.findAll());
      model.addAttribute("ward", Collections.EMPTY_LIST);
      if (complaint.getLocation() != null && complaint.getLocation().getParent() != null)
        model.addAttribute(
            "ward",
            boundaryService.getBoundariesByBndryTypeNameAndHierarchyTypeName(
                "Ward", "Administration"));
      if (complaint.getLocation() != null && complaint.getLocation().getParent() != null)
        model.addAttribute(
            "location",
            crossHierarchyService.getChildBoundariesNameAndBndryTypeAndHierarchyType(
                "Locality", "Ward", "Location"));
      model.addAttribute(
          "mailSubject", "Grievance regarding " + complaint.getComplaintType().getName());

      model.addAttribute("mailBody", complaintService.getEmailBody(complaint));
      return COMPLAINT_EDIT;
    }
  }
  private void validateUpdate(
      final Complaint complaint, final BindingResult errors, final HttpServletRequest request) {
    if (complaint.getStatus() == null) errors.rejectValue("status", "status.requried");

    if (request.getParameter("approvalComent") == null
        || request.getParameter("approvalComent").trim().isEmpty())
      errors.addError(
          new ObjectError(
              "approvalComent", messageSource.getMessage("comment.not.null", null, null)));
  }