Esempio n. 1
0
 def __init__(self, form: ImmutableMultiDict, person_id: Optional[int],
              mtgo_username: Optional[str]) -> None:
     super().__init__(form)
     if person_id is not None:
         ps = person.load_person_by_id(person_id)
         self.recent_decks: List[Dict[str, Any]] = []
         for d in sorted(ps.decks,
                         key=lambda deck: deck['created_date'],
                         reverse=True)[0:10]:
             recent_deck = {'name': d['name'], 'main': [], 'sb': []}
             for c in d.maindeck:
                 recent_deck['main'].append('{n} {c}'.format(n=c['n'],
                                                             c=c['name']))
             for c in d.sideboard:
                 recent_deck['sb'].append('{n} {c}'.format(n=c['n'],
                                                           c=c['name']))
             self.recent_decks.append({
                 'name': d['name'],
                 'list': json.dumps(recent_deck)
             })
     if mtgo_username is not None:
         self.mtgo_username = mtgo_username
     self.deck = Container()
     self.card_errors: Dict[str, Set[str]] = {}
     self.card_warnings: Dict[str, Set[str]] = {}
Esempio n. 2
0
def load_person(mtgo_username: Optional[str] = None,
                person_id: Optional[int] = None,
                season_id: Optional[int] = None) -> ps.Person:
    if mtgo_username:
        return ps.load_person_by_mtgo_username(mtgo_username,
                                               season_id=season_id)
    if person_id:
        return ps.load_person_by_id(person_id, season_id=season_id)
    raise DoesNotExistException(
        f"Can't load a person with `{mtgo_username}` and `{person_id}`.")