diff --git a/src/service/api/views/html/bis.py b/src/service/api/views/html/bis.py index 0553274..0dcbf81 100644 --- a/src/service/api/views/html/bis.py +++ b/src/service/api/views/html/bis.py @@ -57,22 +57,23 @@ class BiSHtmlView(BiSBaseView, PlayerBaseView): return wrap_invalid_param(required, data) try: - method = data.get('method') - player_id = PlayerId.from_pretty_name(data.get('player')) # type: ignore + method = data.getone('method') + player_id = PlayerId.from_pretty_name(data.getone('player')) # type: ignore if method == 'post': required = ['action', 'piece'] if any(param not in data for param in required): return wrap_invalid_param(required, data) - self.bis_post(data.get('action'), player_id, # type: ignore - Piece.get({'piece': data.get('piece'), 'is_tome': data.get('is_tome', False)})) # type: ignore + is_tome = (data.getone('is_tome', None) == 'on') + self.bis_post(data.getone('action'), player_id, # type: ignore + Piece.get({'piece': data.getone('piece'), 'is_tome': is_tome})) # type: ignore elif method == 'put': required = ['bis'] if any(param not in data for param in required): return wrap_invalid_param(required, data) - self.bis_put(player_id, data.get('bis')) # type: ignore + self.bis_put(player_id, data.getone('bis')) # type: ignore except Exception as e: self.request.app.logger.exception('could not manage bis') diff --git a/src/service/api/views/html/loot.py b/src/service/api/views/html/loot.py index 4fd7fa7..6741fe2 100644 --- a/src/service/api/views/html/loot.py +++ b/src/service/api/views/html/loot.py @@ -58,9 +58,10 @@ class LootHtmlView(LootBaseView, PlayerBaseView): return wrap_invalid_param(required, data) try: - player_id = PlayerId.from_pretty_name(data.get('player')) # type: ignore - self.loot_post(data.get('action'), player_id, # type: ignore - Piece.get({'piece': data.get('piece'), 'is_tome': data.get('is_tome', False)})) # type: ignore + player_id = PlayerId.from_pretty_name(data.getone('player')) # type: ignore + is_tome = (data.getone('is_tome', None) == 'on') + self.loot_post(data.getone('action'), player_id, # type: ignore + Piece.get({'piece': data.getone('piece'), 'is_tome': is_tome})) # type: ignore except Exception as e: self.request.app.logger.exception('could not manage loot') diff --git a/src/service/api/views/html/loot_suggest.py b/src/service/api/views/html/loot_suggest.py index 48f4eed..86a16a4 100644 --- a/src/service/api/views/html/loot_suggest.py +++ b/src/service/api/views/html/loot_suggest.py @@ -39,7 +39,7 @@ class LootSuggestHtmlView(LootBaseView, PlayerBaseView): return wrap_invalid_param(required, data) try: - piece = Piece.get({'piece': data.get('piece'), 'is_tome': data.get('is_tome', True)}) + piece = Piece.get({'piece': data.getone('piece'), 'is_tome': data.getone('is_tome', False)}) players = self.loot_put(piece) item_values = {'piece': piece.name, 'is_tome': getattr(piece, 'is_tome', True)} @@ -54,8 +54,10 @@ class LootSuggestHtmlView(LootBaseView, PlayerBaseView): 'suggest': [ { 'player': player.pretty_name, - 'loot_count_bis': player.loot_count_bis, + 'is_required': 'yes' if player.is_required else 'no', 'loot_count': player.loot_count, + 'loot_count_bis': player.loot_count_bis, + 'loot_count_total': player.loot_count_total } for player in players ] diff --git a/src/service/api/views/html/player.py b/src/service/api/views/html/player.py index af7f1ab..7016c54 100644 --- a/src/service/api/views/html/player.py +++ b/src/service/api/views/html/player.py @@ -39,7 +39,7 @@ class PlayerHtmlView(PlayerBaseView): 'job': player.job.name, 'nick': player.nick, 'loot_count_bis': player.loot_count_bis, - 'loot_count': player.loot_count, + 'loot_count_total': player.loot_count_total, 'priority': player.priority } for player in counters @@ -55,9 +55,9 @@ class PlayerHtmlView(PlayerBaseView): return wrap_invalid_param(required, data) try: - action = data.get('action') - priority = data.get('priority', 0) - link = data.get('bis', None) + action = data.getone('action') + priority = data.getone('priority', 0) + link = data.getone('bis', None) self.player_post(action, Job[data['job'].upper()], data['nick'], link, priority) # type: ignore except Exception as e: diff --git a/src/service/api/views/html/users.py b/src/service/api/views/html/users.py index a91143b..d5b7797 100644 --- a/src/service/api/views/html/users.py +++ b/src/service/api/views/html/users.py @@ -42,14 +42,14 @@ class UsersHtmlView(LoginBaseView): return wrap_invalid_param(required, data) try: - action = data.get('action') - username = str(data.get('username')) + action = data.getone('action') + username = str(data.getone('username')) if action == 'add': required = ['password', 'permission'] if any(param not in data for param in required): return wrap_invalid_param(required, data) - await self.create_user(username, data.get('password'), data.get('permission')) # type: ignore + await self.create_user(username, data.getone('password'), data.getone('permission')) # type: ignore elif action == 'remove': await self.remove_user(username) else: diff --git a/src/service/models/player.py b/src/service/models/player.py index 8608399..b6c4d06 100644 --- a/src/service/models/player.py +++ b/src/service/models/player.py @@ -41,6 +41,7 @@ class PlayerId: @dataclass class PlayerIdWithCounters(PlayerId): + is_required: bool priority: int loot_count: int loot_count_bis: int @@ -68,7 +69,7 @@ class Player: return PlayerId(self.job, self.nick) def player_id_with_counters(self, piece: Union[Piece, Upgrade, None]) -> PlayerIdWithCounters: - return PlayerIdWithCounters(self.job, self.nick, self.priority, + return PlayerIdWithCounters(self.job, self.nick, self.is_required(piece), self.priority, abs(self.loot_count(piece)), abs(self.loot_count_bis(piece)), abs(self.loot_count_total(piece)), abs(self.bis_count_total(piece))) diff --git a/templates/loot_suggest.jinja2 b/templates/loot_suggest.jinja2 index 1a87abd..3d96f59 100644 --- a/templates/loot_suggest.jinja2 +++ b/templates/loot_suggest.jinja2 @@ -24,7 +24,9 @@
player | -bis pieces looted | +is required | +these pieces looted | +total bis pieces looted | total pieces looted | |
---|---|---|---|---|---|---|
{{ player.player|e }} | -{{ player.loot_count_bis|e }} | +{{ player.is_required|e }} | {{ player.loot_count|e }} | +{{ player.loot_count_bis|e }} | +{{ player.loot_count_total|e }} |