/** Process the form to create/edit an allocation with an activity. */ @With(CheckActorExists.class) @Dynamic(IMafConstants.ACTOR_EDIT_DYNAMIC_PERMISSION) public Result processManageAllocatedActivity() { // bind the form Form<TimesheetActivityAllocatedActorFormData> boundForm = allocatedActivityFormTemplate.bindFromRequest(); // get the actor Long id = Long.valueOf(boundForm.data().get("id")); Actor actor = ActorDao.getActorById(id); if (boundForm.hasErrors() || this.getCustomAttributeManagerService() .validateValues(boundForm, TimesheetActivityAllocatedActor.class)) { return ok(views.html.core.actor.allocated_activity_manage.render(actor, boundForm)); } TimesheetActivityAllocatedActorFormData allocatedActivityFormData = boundForm.get(); TimesheetActivityAllocatedActor allocatedActivity = null; if (allocatedActivityFormData.allocatedActivityId == null) { // create // case allocatedActivity = new TimesheetActivityAllocatedActor(); allocatedActivityFormData.fill(allocatedActivity); allocatedActivity.save(); Utilities.sendSuccessFlashMessage(Msg.get("core.actor.allocated_activity.add.successful")); } else { // edit case allocatedActivity = TimesheetDao.getTimesheetActivityAllocatedActorById( allocatedActivityFormData.allocatedActivityId); // security: the actor must be related to the object if (!allocatedActivity.actor.id.equals(id)) { return forbidden(views.html.error.access_forbidden.render("")); } allocatedActivityFormData.fill(allocatedActivity); allocatedActivity.update(); Utilities.sendSuccessFlashMessage(Msg.get("core.actor.allocated_activity.edit.successful")); } // save the custom attributes this.getCustomAttributeManagerService() .validateAndSaveValues( boundForm, TimesheetActivityAllocatedActor.class, allocatedActivity.id); return redirect(controllers.core.routes.ActorController.allocationDetails(id, 0, 0, false)); }
/** * Delete an allocated activity. * * @param id the actor id * @param allocatedActivityId the allocated activity id */ @With(CheckActorExists.class) @Dynamic(IMafConstants.ACTOR_EDIT_DYNAMIC_PERMISSION) public Result deleteAllocatedActivity(Long id, Long allocatedActivityId) { // get the allocated activity TimesheetActivityAllocatedActor allocatedActivity = TimesheetDao.getTimesheetActivityAllocatedActorById(allocatedActivityId); // security: the actor must be related to the object if (!allocatedActivity.actor.id.equals(id)) { return forbidden(views.html.error.access_forbidden.render("")); } // set the delete flag to true allocatedActivity.doDelete(); Utilities.sendSuccessFlashMessage(Msg.get("core.actor.allocated_activity.delete.successful")); return redirect(controllers.core.routes.ActorController.allocationDetails(id, 0, 0, false)); }