Changes between Version 4 and Version 5 of UseCaseImplementations


Ignore:
Timestamp:
02/20/24 16:18:55 (3 months ago)
Author:
211012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementations

    v4 v5  
    1717|| 13 || Ажурира типови на избори ||
    1818
     19=== Пријава учество на партија и кандидати
     20
     21Администраторот пристапува на адреса /admin/participations каде му се појавуа формулар за внесување податоци за опис на кандидатура, кандидат, име на пратија, реализација на избори и општина во која се кандидира. Под истиот се листаат сите претходни кандидатури кои биле внесени. За ова е одговорен следниот контролер:
     22
     23{{{#!java
     24    @GetMapping("/admin/participations")
     25    public String candidacies(Model m) {
     26        m.addAttribute("replaceTemplate", "elections_participation");
     27        m.addAttribute("electionsRealizations", candidatesElectionRealizationService.findAll());
     28        m.addAttribute("municipalities", municipalityService.findAll());
     29        m.addAttribute("parties", partyService.findAll());
     30        m.addAttribute("candidates", candidateService.findAll());
     31        m.addAttribute("candidacy", new Candidacy());
     32        m.addAttribute("candidacies", candidacyService.findAll());
     33        return "admin";
     34    }
     35}}}
     36
     37По внесување на податоците и клик на копчето „Запиши“ се праќа POST барање до контролерот кој ги обработува.
     38
     39{{{#!java
     40    @PostMapping("/admin/participations")
     41    public String addCandidacy(@RequestParam(required = false) Long id,
     42                               @RequestParam String description,
     43                               @RequestParam Long candidate,
     44                               @RequestParam Long candidatesElectionRealization,
     45                               @RequestParam(required = false) Long municipality,
     46                               @RequestParam Long party,
     47                               Model m) {
     48        candidacyService.update(id, description, candidate, party, candidatesElectionRealization, municipality);
     49        return "redirect:/admin/participations";
     50    }
     51}}}
     52
     53Контролерот повикува функција од candidacyService за додавање и ажурирање (ажурирањето сѐ уште не е имплементирано во view-то) на кандидатури каде се креира нова инстанца од објектот Candidacy, и за истиот се полнат добиентите податоци од формуларот. Оттаму се повикува функцијата save од candidacyRepository кој наследува од JpaRepository. Таа служи за зачувување на новиот објект во базата.
     54
     55{{{#!java
     56    public Candidacy update(Long id, String description, Long candidateId, Long partyId, Long candidatesElectionRealizationId, Long municipalityId) {
     57        Candidacy candidacy = new Candidacy();
     58        if (id != null){
     59            candidacy = findById(id);
     60        }
     61
     62        candidacy.setMunicipality(municipalityService.findById(municipalityId));
     63        candidacy.setDescription(description);
     64        candidacy.setCandidate(candidateService.findById(candidateId));
     65        candidacy.setParty(partyService.findById(partyId));
     66        candidacy.setCandidatesElectionRealization(candidatesElectionRealizationService.findById(candidatesElectionRealizationId));
     67        return candidacyRepository.save(candidacy);
     68    }
     69}}}
    1970
    2071=== Гласа онлајн