Beispiel #1
0
 def fetch_custom_fields(self, json_obj=None):
     """
     Fetch current set of custom fields from card or json_obj.
     """
     if json_obj is None:
         json_obj = self.client.fetch_json(
             '/cards/' + self.id,
             query_params={'badges': False, 'customFieldItems': 'true'})
     return CustomField.from_json_list(
         self, json_obj.get('customFieldItems', {}))
Beispiel #2
0
 def fetch_custom_fields(self, json_obj=None):
     """
     Fetch current set of custom fields from card or json_obj.
     """
     if json_obj is None:
         json_obj = self.client.fetch_json(
             '/cards/' + self.id,
             query_params={'badges': False, 'customFieldItems': 'true'})
     return CustomField.from_json_list(
         self, json_obj.get('customFieldItems', {}))
Beispiel #3
0
    def fetch(self, eager=True):
        """
        Fetch all attributes for this card

        :param eager: If eager, comments, checklists and attachments will be fetched immediately, otherwise on demand
        """
        json_obj = self.client.fetch_json('/cards/' + self.id,
                                          query_params={
                                              'badges': False,
                                              'customFieldItems': 'true'
                                          })
        self.id = json_obj['id']
        self.name = json_obj['name']
        self.desc = json_obj.get('desc', '')
        self.closed = json_obj['closed']
        self.url = json_obj['url']
        self.shortUrl = json_obj['shortUrl']
        self.idMembers = json_obj['idMembers']
        self.idShort = json_obj['idShort']
        self.idList = json_obj['idList']
        self.idBoard = json_obj['idBoard']
        self.idLabels = json_obj['idLabels']
        self.customFields = CustomField.from_json_list(
            self, json_obj['customFieldItems'])
        self.labels = Label.from_json_list(self.board, json_obj['labels'])
        self.badges = json_obj['badges']
        self.pos = json_obj['pos']
        if json_obj.get('due', ''):
            self.due = json_obj.get('due', '')
        else:
            self.due = ''
        self.checked = json_obj['checkItemStates']
        self.dateLastActivity = dateparser.parse(json_obj['dateLastActivity'])

        self._plugin_data = self.fetch_plugin_data() if eager else None
        self._checklists = self.fetch_checklists() if eager else None
        self._comments = self.fetch_comments() if eager else None
        self._attachments = self.fetch_attachments() if eager else None
Beispiel #4
0
    def from_json(cls, parent, json_obj):
        """
        Deserialize the card json object to a Card object

        :parent: the list object that the card belongs to
        :json_obj: json object

        :rtype: Card
        """
        if 'id' not in json_obj:
            raise Exception("key 'id' is not in json_obj")
        card = cls(parent, json_obj['id'], name=json_obj['name'])
        card.desc = json_obj.get('desc', '')
        card.due = json_obj.get('due', '')
        card.is_due_complete = json_obj['dueComplete']
        card.closed = json_obj['closed']
        card.url = json_obj['url']
        card.pos = json_obj['pos']
        card.shortUrl = json_obj['shortUrl']
        card.idMembers = json_obj['idMembers']
        card.member_ids = json_obj['idMembers']
        card.idLabels = json_obj['idLabels']
        card.idBoard = json_obj['idBoard']
        card.idList = json_obj['idList']
        card.idShort = json_obj['idShort']
        card.customFields = CustomField.from_json_list(
            card, json_obj['customFieldItems'])
        card.labels = Label.from_json_list(card.board, json_obj['labels'])
        card.dateLastActivity = dateparser.parse(json_obj['dateLastActivity'])
        if "attachments" in json_obj:
            card._attachments = []
            for attachment_json in json_obj["attachments"]:
                card._attachments.append(attachment_json)
        if 'actions' in json_obj:
            card.actions = json_obj['actions']
        return card