simplify followRecommendation for motionBlock
This commit is contained in:
parent
8bd24d690d
commit
758abde410
@ -8,7 +8,6 @@ import { TranslateService } from '@ngx-translate/core';
|
|||||||
|
|
||||||
import { ListViewBaseComponent } from 'app/site/base/list-view-base';
|
import { ListViewBaseComponent } from 'app/site/base/list-view-base';
|
||||||
import { MotionBlockRepositoryService } from '../../services/motion-block-repository.service';
|
import { MotionBlockRepositoryService } from '../../services/motion-block-repository.service';
|
||||||
import { MotionRepositoryService } from '../../services/motion-repository.service';
|
|
||||||
import { MotionBlock } from 'app/shared/models/motions/motion-block';
|
import { MotionBlock } from 'app/shared/models/motions/motion-block';
|
||||||
import { ViewMotionBlock } from '../../models/view-motion-block';
|
import { ViewMotionBlock } from '../../models/view-motion-block';
|
||||||
import { ViewMotion } from '../../models/view-motion';
|
import { ViewMotion } from '../../models/view-motion';
|
||||||
@ -53,7 +52,6 @@ export class MotionBlockDetailComponent extends ListViewBaseComponent<ViewMotion
|
|||||||
* @param router navigating
|
* @param router navigating
|
||||||
* @param route determine the blocks ID by the route
|
* @param route determine the blocks ID by the route
|
||||||
* @param repo the motion blocks repository
|
* @param repo the motion blocks repository
|
||||||
* @param motionRepo the motion repository
|
|
||||||
* @param promptService the displaying prompts before deleting
|
* @param promptService the displaying prompts before deleting
|
||||||
*/
|
*/
|
||||||
public constructor(
|
public constructor(
|
||||||
@ -63,7 +61,6 @@ export class MotionBlockDetailComponent extends ListViewBaseComponent<ViewMotion
|
|||||||
private router: Router,
|
private router: Router,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private repo: MotionBlockRepositoryService,
|
private repo: MotionBlockRepositoryService,
|
||||||
private motionRepo: MotionRepositoryService,
|
|
||||||
private promptService: PromptService
|
private promptService: PromptService
|
||||||
) {
|
) {
|
||||||
super(titleService, translate, matSnackBar);
|
super(titleService, translate, matSnackBar);
|
||||||
@ -128,11 +125,7 @@ export class MotionBlockDetailComponent extends ListViewBaseComponent<ViewMotion
|
|||||||
`Are you sure you want to override the state of all motions of this motion block?`
|
`Are you sure you want to override the state of all motions of this motion block?`
|
||||||
);
|
);
|
||||||
if (await this.promptService.open(this.block.title, content)) {
|
if (await this.promptService.open(this.block.title, content)) {
|
||||||
for (const motion of this.motions) {
|
this.repo.followRecommendation(this.block);
|
||||||
if (!motion.isInFinalState()) {
|
|
||||||
this.motionRepo.setState(motion, motion.recommendation_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,16 +2,17 @@ import { Injectable } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { MotionBlock } from 'app/shared/models/motions/motion-block';
|
|
||||||
import { ViewMotionBlock } from '../models/view-motion-block';
|
|
||||||
import { BaseRepository } from 'app/site/base/base-repository';
|
import { BaseRepository } from 'app/site/base/base-repository';
|
||||||
import { DataStoreService } from 'app/core/services/data-store.service';
|
|
||||||
import { CollectionStringModelMapperService } from 'app/core/services/collectionStringModelMapper.service';
|
import { CollectionStringModelMapperService } from 'app/core/services/collectionStringModelMapper.service';
|
||||||
import { DataSendService } from 'app/core/services/data-send.service';
|
import { DataSendService } from 'app/core/services/data-send.service';
|
||||||
|
import { DataStoreService } from 'app/core/services/data-store.service';
|
||||||
|
import { HttpService } from 'app/core/services/http.service';
|
||||||
import { Identifiable } from 'app/shared/models/base/identifiable';
|
import { Identifiable } from 'app/shared/models/base/identifiable';
|
||||||
import { Motion } from 'app/shared/models/motions/motion';
|
import { Motion } from 'app/shared/models/motions/motion';
|
||||||
import { ViewMotion } from '../models/view-motion';
|
import { MotionBlock } from 'app/shared/models/motions/motion-block';
|
||||||
import { MotionRepositoryService } from './motion-repository.service';
|
import { MotionRepositoryService } from './motion-repository.service';
|
||||||
|
import { ViewMotion } from '../models/view-motion';
|
||||||
|
import { ViewMotionBlock } from '../models/view-motion-block';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Repository service for motion blocks
|
* Repository service for motion blocks
|
||||||
@ -27,12 +28,14 @@ export class MotionBlockRepositoryService extends BaseRepository<ViewMotionBlock
|
|||||||
* @param mapperService Mapping collection strings to classes
|
* @param mapperService Mapping collection strings to classes
|
||||||
* @param dataSend Send models to the server
|
* @param dataSend Send models to the server
|
||||||
* @param motionRepo Accessing the motion repository
|
* @param motionRepo Accessing the motion repository
|
||||||
|
* @param httpService Sending a request directly
|
||||||
*/
|
*/
|
||||||
public constructor(
|
public constructor(
|
||||||
DS: DataStoreService,
|
DS: DataStoreService,
|
||||||
mapperService: CollectionStringModelMapperService,
|
mapperService: CollectionStringModelMapperService,
|
||||||
private dataSend: DataSendService,
|
private dataSend: DataSendService,
|
||||||
private motionRepo: MotionRepositoryService
|
private motionRepo: MotionRepositoryService,
|
||||||
|
private httpService: HttpService
|
||||||
) {
|
) {
|
||||||
super(DS, mapperService, MotionBlock);
|
super(DS, mapperService, MotionBlock);
|
||||||
}
|
}
|
||||||
@ -121,4 +124,14 @@ export class MotionBlockRepositoryService extends BaseRepository<ViewMotionBlock
|
|||||||
public getMotionBlockByTitle(title: string): MotionBlock {
|
public getMotionBlockByTitle(title: string): MotionBlock {
|
||||||
return this.DS.find(MotionBlock, block => block.title === title);
|
return this.DS.find(MotionBlock, block => block.title === title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Signals the acceptance of the current recommendation of this motionBlock
|
||||||
|
*
|
||||||
|
* @param motionBlock
|
||||||
|
*/
|
||||||
|
public async followRecommendation(motionBlock: ViewMotionBlock): Promise<void> {
|
||||||
|
const restPath = `/rest/motions/motion-block/${motionBlock.id}/follow_recommendations/`;
|
||||||
|
await this.httpService.post(restPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user