v3.10.0
- ⭐ It is now possible to create a
TasksWidget
with the newadd_tasks_widget
method to theWidgetsManager
class. The enumsTasksAssignmentFiltersTypes
andTasksWidgetColumns
support the inputs to this method. - ⭐ It is now possible to create a
ScopemembersWidget
with the newadd_scopemembers_widget
method to theWidgetsManager
class. - 🐛 For grid widgets, corrected name of field
incompleteRowsVisible
toincompleteRowsButtonVisible
. - 🐛 Widgets created with the
create_widgets
method of theWidgetsManager
class now append the internal_widgets
attribute. - 🐛 Added allowed use of
Autofill
representation object onUserReferenceProperty
classes. - 🐛 Creating of new activities was performed using
data
instead ofjson
. Now,None
values are cleared and the request allowskwargs
. - 👍 The order of
Part
instances returned from theClient._create_parts_bulk()
method is now guaranteed to match the request. - 👍 Datetime properties can now be set using (valid) string values.
- 👍 Added
now_in_my_timezone
method to theUser
class, to retrieve the current time based on the timezone of that user. - 👍 The input
collapse_filter
in theadd_filteredgrid_widget
method now accepts the inputNone
to fully hide the filter panel. - 👍 Expanded
ScopeFilter
options to the support the followingScope
attributes: tag, status, name, team, due date, start date and progress. - 👍 Added file path as return value of the
download_as_pdf
method of theActivity
class. - 👍 Added
status
keyword to theScopeFilter
class. All filters are now parsed and written to option dicts internally, encapsulating the property-specific format of the filters. - 👍 dependent versions for development: pytest (6.2.2), pytz (2021.1), mypy (0.812), nbsphinx (0.8.2), coveralls (3.0.1), tox (3.23.0), flake8 (3.9.0), twine (3.4.1), sphinx (3.5.3), pytest-cov (2.11.1), pre-commit (2.11.1), pydocstyle (6.0.0)
Improved the copy
and move
methods of the Part
class.
- 🐛 Part reference properties with a value set to the copied Part's children will no longer refer to the original child Parts. That is, such "internal" references are updated with the new child Parts.
- 👍
move
now makes use of thecopy
method directly, simplifying themove
method and reducing duplicate code. - 👍 More efficient use of
populate_descendants
and other bulk operations when cloning the data model. - 👍 Refreshing a
part
now also refreshes itsproperties
in-place, instead of creating new Python objects. - 👍 Added
DeprecationWarnings
to the original, public functions, for deprecation in July 2021.
Backwards incompatible changes:
- In case a
Part
model is copied to atarget_parent
model with zero (or more than one) instances, usinginclude_instances
now results in anIllegalArgumentError
. Previously, zero parents would not produce any instance and multiple parents would create duplicate instances.