Last change
on this file since 94 was 90, checked in by Bart Vastenhouw, 3 years ago |
Refactor to help reusing partiesserver.
|
File size:
1.1 KB
|
Line | |
---|
1 | from typing import List
|
---|
2 |
|
---|
3 | from geniusweb.actions.PartyId import PartyId
|
---|
4 | from geniusweb.actions.Votes import Votes
|
---|
5 | from geniusweb.inform.Inform import Inform
|
---|
6 |
|
---|
7 |
|
---|
8 | class OptIn (Inform):
|
---|
9 | '''
|
---|
10 | Informs party that it's time to Opt-in.
|
---|
11 |
|
---|
12 | '''
|
---|
13 | def __init__(self, votes:List[Votes] ) :
|
---|
14 | '''
|
---|
15 | @param votes a list of votes. There may be only one votes per party.
|
---|
16 | '''
|
---|
17 | self._votes = votes;
|
---|
18 |
|
---|
19 | parties:List[PartyId] = []
|
---|
20 | for vots in votes:
|
---|
21 | partyid = vots.getActor()
|
---|
22 | if partyid in parties:
|
---|
23 | raise ValueError("OptIn contains multiple Votes for party " + str(partyid))
|
---|
24 | parties.append(partyid)
|
---|
25 |
|
---|
26 | def getVotes(self)->List[Votes] :
|
---|
27 | '''
|
---|
28 | @return list of Votes that can be opted in to
|
---|
29 | '''
|
---|
30 | return list(self._votes);
|
---|
31 |
|
---|
32 | def __eq__(self, other):
|
---|
33 | return isinstance(other, self.__class__) and self._votes==other._votes
|
---|
34 |
|
---|
35 | def __hash__(self):
|
---|
36 | return hash(tuple(self._votes))
|
---|
37 |
|
---|
38 | def __repr__(self) -> str :
|
---|
39 | return "OptIn[" + str(self._votes) + "]"
|
---|
40 |
|
---|
Note:
See
TracBrowser
for help on using the repository browser.