8000 Added webpage url to workbooks by rshide · Pull Request #661 · tableau/server-client-python · GitHub
[go: up one dir, main page]

Skip to content

Added webpage url to workbooks #661

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Aug 14, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.12.1 (22 July 2020)

* Fixed login.py sample to properly handle sitename (#652)

## 0.12 (10 July 2020)

* Added hidden_views parameter to workbook publish method (#614)
Expand Down
20 changes: 14 additions & 6 deletions tableauserverclient/models/workbook_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ class WorkbookItem(object):
def __init__(self, project_id, name=None, show_tabs=False):
self._connections = None
self._content_url = None
self._webpage_url = None
self._created_at = None
self._id = None
self._initial_tags = set()
Expand Down Expand Up @@ -51,6 +52,10 @@ def permissions(self):
def content_url(self):
return self._content_url

@property
def webpage_url(self):
return self._webpage_url

@property
def created_at(self):
return self._created_at
Expand Down Expand Up @@ -152,17 +157,17 @@ def _parse_common_tags(self, workbook_xml, ns):
if not isinstance(workbook_xml, ET.Element):
workbook_xml = ET.fromstring(workbook_xml).find('.//t:workbook', namespaces=ns)
if workbook_xml is not None:
(_, _, _, _, description, updated_at, _, show_tabs,
(_, _, _, _, _, description, updated_at, _, show_tabs,
project_id, project_name, owner_id, _, _,
data_acceleration_config) = self._parse_element(workbook_xml, ns)

self._set_values(None, None, None, None, description, updated_at,
self._set_values(None, None, None, None, None, description, updated_at,
None, show_tabs, project_id, project_name, owner_id, None, None,
data_acceleration_config)

return self

def _set_values(self, id, name, content_url, created_at, description, updated_at,
def _set_values(self, id, name, content_url, webpage_url, created_at, description, updated_at,
size, show_tabs, project_id, project_name, owner_id, tags, views,
data_acceleration_config):
if id is not None:
Expand All @@ -171,6 +176,8 @@ def _set_values(self, id, name, content_url, created_at, description, updated_at
self.name = name
if content_url:
self._content_url = content_url
if webpage_url:
self._webpage_url = webpage_url
if created_at:
self._created_at = created_at
if description:
Expand Down Expand Up @@ -201,12 +208,12 @@ def from_response(cls, resp, ns):
parsed_response = ET.fromstring(resp)
all_workbook_xml = parsed_response.findall('.//t:workbook', namespaces=ns)
for workbook_xml in all_workbook_xml:
(id, name, content_url, created_at, description, updated_at, size, show_tabs,
(id, name, content_url, webpage_url, created_at, description, updated_at, size, show_tabs,
project_id, project_name, owner_id, tags, views,
data_acceleration_config) = cls._parse_element(workbook_xml, ns)

workbook_item = cls(project_id)
workbook_item._set_values(id, name, content_url, created_at, description, updated_at,
workbook_item._set_values(id, name, content_url, webpage_url, created_at, description, updated_at,
size, show_tabs, None, project_name, owner_id, tags, views,
data_acceleration_config)
all_workbook_items.append(workbook_item)
Expand All @@ -217,6 +224,7 @@ def _parse_element(workbook_xml, ns):
id = workbook_xml.get('id', None)
name = workbook_xml.get('name', None)
content_url = workbook_xml.get('contentUrl', None)
webpage_url = workbook_xml.get('webpageUrl', None)
created_at = parse_datetime(workbook_xml.get('createdAt', None))
description = workbook_xml.get('description', None)
updated_at = parse_datetime(workbook_xml.get('updatedAt', None))
Expand Down Expand Up @@ -256,7 +264,7 @@ def _parse_element(workbook_xml, ns):
if data_acceleration_elem is not None:
data_acceleration_config = parse_data_acceleration_config(data_acceleration_elem)

return id, name, content_url, created_at, description, updated_at, size, show_tabs, \
return id, name, content_url, webpage_url, created_at, description, updated_at, size, show_tabs, \
project_id, project_name, owner_id, tags, views, data_acceleration_config


Expand Down
5 changes: 2 additions & 3 deletions test/assets/workbook_get.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd">
<pagination pageNumber="1" pageSize="100" totalAvailable="2" />
<workbooks>
<workbook id="6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" name="Superstore" description="description for Superstore" contentUrl="Superstore" showTabs="false" size="1" createdAt="2016-08-03T20:34:04Z" updatedAt="2016-08-04T17:56:41Z">
<workbook id="6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" name="Superstore" description="description for Superstore" contentUrl="Superstore" webpageUrl="http://tableauserver/#/workbooks/1/views" showTabs="false" size="1" createdAt="2016-08-03T20:34:04Z" updatedAt="2016-08-04T17:56:41Z">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags />
</workbook>
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" webpageUrl="http://tableauserver/#/workbooks/2/views" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z"> <project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags>
<tag label="Safari" />
Expand Down
4 changes: 2 additions & 2 deletions test/assets/workbook_get_by_id.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.3.xsd">
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" webpageUrl="http://tableauserver/#/workbooks/2/views" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags>
Expand All @@ -11,4 +11,4 @@
<view id="d79634e1-6063-4ec9-95ff-50acbf609ff5" name="ENDANGERED SAFARI" contentUrl="SafariSample/sheets/ENDANGEREDSAFARI" />
</views>
</workbook>
</tsResponse>
</tsResponse>
3 changes: 3 additions & 0 deletions test/test_workbook.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def test_get(self):
self.assertEqual('Superstore', all_workbooks[0].name)
self.assertEqual('Superstore', all_workbooks[0].content_url)
self.assertEqual(False, all_workbooks[0].show_tabs)
self.assertEqual('http://tableauserver/#/workbooks/1/views', all_workbooks[0].webpage_url)
self.assertEqual(1, all_workbooks[0].size)
self.assertEqual('2016-08-03T20:34:04Z', format_datetime(all_workbooks[0].created_at))
self.assertEqual('description for Superstore', all_workbooks[0].description)
Expand All @@ -67,6 +68,7 @@ def test_get(self):
self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', all_workbooks[1].id)
self.assertEqual('SafariSample', all_workbooks[1].name)
self.assertEqual('SafariSample', all_workbooks[1].content_url)
self.assertEqual('http://tableauserver/#/workbooks/2/views', all_workbooks[1].webpage_url)
self.assertEqual(False, all_workbooks[1].show_tabs)
self.assertEqual(26, all_workbooks[1].size)
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(all_workbooks[1].created_at))
Expand Down Expand Up @@ -101,6 +103,7 @@ def test_get_by_id(self):
self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', single_workbook.id)
self.assertEqual('SafariSample', single_workbook.name)
self.assertEqual('SafariSample', single_workbook.content_url)
self.assertEqual('http://tableauserver/#/workbooks/2/views', single_workbook.webpage_url)
self.assertEqual(False, single_workbook.show_tabs)
self.assertEqual(26, single_workbook.size)
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(single_workbook.created_at))
Expand Down
0