diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java new file mode 100644 index 0000000..be60f8b --- /dev/null +++ b/src/main/java/ru/ulstu/fc/project/controller/ProjecRulesController.java @@ -0,0 +1,23 @@ +package ru.ulstu.fc.project.controller; + +import io.swagger.v3.oas.annotations.Hidden; +import org.springframework.security.access.annotation.Secured; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import ru.ulstu.fc.project.model.Project; +import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.service.ProjectRulesService; +import ru.ulstu.fc.project.service.ProjectService; +import ru.ulstu.fc.user.model.UserRoleConstants; + +@Controller +@Hidden +@RequestMapping("projectRules") +@Secured({UserRoleConstants.ADMIN}) +public class ProjecRulesController { + +} diff --git a/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java b/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java index 85c28a8..a835938 100644 --- a/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java +++ b/src/main/java/ru/ulstu/fc/project/controller/ProjectController.java @@ -10,18 +10,22 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import ru.ulstu.fc.project.model.Project; import ru.ulstu.fc.project.model.ProjectForm; +import ru.ulstu.fc.project.service.ProjectRulesService; import ru.ulstu.fc.project.service.ProjectService; import ru.ulstu.fc.user.model.UserRoleConstants; @Controller @Hidden @RequestMapping("project") -@Secured({UserRoleConstants.ADMIN}) +@Secured({ UserRoleConstants.ADMIN }) public class ProjectController { private final ProjectService projectService; + private final ProjectRulesService projectRulesService; - public ProjectController(ProjectService projectService) { + public ProjectController(ProjectService projectService, + ProjectRulesService projectRulesService) { this.projectService = projectService; + this.projectRulesService = projectRulesService; } @GetMapping("list") @@ -36,6 +40,8 @@ public class ProjectController { new ProjectForm((id != null && id != 0) ? projectService.getById(id) : new Project())); + + model.addAttribute("rules", projectRulesService.getByProjectId(id)); return "project/edit"; } diff --git a/src/main/java/ru/ulstu/fc/project/repository/RuleRepository.java b/src/main/java/ru/ulstu/fc/project/repository/RuleRepository.java new file mode 100644 index 0000000..6369ff5 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/project/repository/RuleRepository.java @@ -0,0 +1,12 @@ +package ru.ulstu.fc.project.repository; + +import java.util.List; + +import org.springframework.data.jpa.repository.JpaRepository; + +import ru.ulstu.fc.rule.model.Rule; + +public interface RuleRepository extends JpaRepository { + + List findByProjectId(Integer projectId); +} diff --git a/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java b/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java new file mode 100644 index 0000000..5d00690 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/project/service/ProjectRulesService.java @@ -0,0 +1,21 @@ +package ru.ulstu.fc.project.service; + +import java.util.List; + +import org.springframework.stereotype.Service; + +import ru.ulstu.fc.project.repository.RuleRepository; +import ru.ulstu.fc.rule.model.Rule; + +@Service +public class ProjectRulesService { + private final RuleRepository ruleRepository; + + public ProjectRulesService(RuleRepository ruleRepository) { + this.ruleRepository = ruleRepository; + } + + public List getByProjectId(Integer projectId) { + return ruleRepository.findByProjectId(projectId); + } +} diff --git a/src/main/java/ru/ulstu/fc/rule/model/Rule.java b/src/main/java/ru/ulstu/fc/rule/model/Rule.java new file mode 100644 index 0000000..8c5a181 --- /dev/null +++ b/src/main/java/ru/ulstu/fc/rule/model/Rule.java @@ -0,0 +1,20 @@ +package ru.ulstu.fc.rule.model; + +import jakarta.persistence.Entity; +import jakarta.persistence.ManyToOne; +import ru.ulstu.fc.core.model.BaseEntity; +import ru.ulstu.fc.project.model.Project; + +@Entity +public class Rule extends BaseEntity { + @ManyToOne + private Project project; + + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } +} diff --git a/src/main/resources/templates/project/edit.html b/src/main/resources/templates/project/edit.html index d44a5b4..aa796e0 100644 --- a/src/main/resources/templates/project/edit.html +++ b/src/main/resources/templates/project/edit.html @@ -38,9 +38,9 @@

Список правил

-
+
- 1. Если +
Переменная