@@ -1807,7 +1807,9 @@ def get_all_tasks(self, project_id: str, query_params: Optional[Dict[str, Any]]
1807
1807
"""
1808
1808
return self ._get_all_objects (self .api .get_tasks , limit = 200 , project_id = project_id , query_params = query_params )
1809
1809
1810
- def change_task_status_to_working (self , project_id : str , task_id : str ) -> Task :
1810
+ def change_task_status_to_working (
1811
+ self , project_id : str , task_id : str , * , last_updated_datetime : Optional [str ] = None
1812
+ ) -> Task :
1811
1813
"""
1812
1814
タスクのステータスを「作業中」に変更します。
1813
1815
@@ -1818,20 +1820,25 @@ def change_task_status_to_working(self, project_id: str, task_id: str) -> Task:
1818
1820
Args:
1819
1821
project_id: プロジェクトID
1820
1822
task_id: タスクID
1823
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1821
1824
1822
1825
Returns:
1823
1826
変更後のタスク
1824
1827
"""
1825
- task , _ = self .api .get_task (project_id , task_id )
1828
+ if last_updated_datetime is None :
1829
+ task , _ = self .api .get_task (project_id , task_id )
1830
+ last_updated_datetime = task ["updated_datetime" ]
1826
1831
request_body = {
1827
1832
"status" : TaskStatus .WORKING .value ,
1828
1833
"account_id" : self .api .account_id ,
1829
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1834
+ "last_updated_datetime" : last_updated_datetime ,
1830
1835
}
1831
1836
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1832
1837
return updated_task
1833
1838
1834
- def change_task_status_to_break (self , project_id : str , task_id : str ) -> Task :
1839
+ def change_task_status_to_break (
1840
+ self , project_id : str , task_id : str , * , last_updated_datetime : Optional [str ] = None
1841
+ ) -> Task :
1835
1842
"""
1836
1843
タスクのステータスを「休憩中」に変更します。
1837
1844
@@ -1842,20 +1849,26 @@ def change_task_status_to_break(self, project_id: str, task_id: str) -> Task:
1842
1849
Args:
1843
1850
project_id: プロジェクトID
1844
1851
task_id: タスクID
1852
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1845
1853
1846
1854
Returns:
1847
1855
変更後のタスク
1848
1856
"""
1849
- task , _ = self .api .get_task (project_id , task_id )
1857
+ if last_updated_datetime is None :
1858
+ task , _ = self .api .get_task (project_id , task_id )
1859
+ last_updated_datetime = task ["updated_datetime" ]
1860
+
1850
1861
request_body = {
1851
1862
"status" : TaskStatus .BREAK .value ,
1852
1863
"account_id" : self .api .account_id ,
1853
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1864
+ "last_updated_datetime" : last_updated_datetime ,
1854
1865
}
1855
1866
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1856
1867
return updated_task
1857
1868
1858
- def change_task_status_to_on_hold (self , project_id : str , task_id : str ) -> Task :
1869
+ def change_task_status_to_on_hold (
1870
+ self , project_id : str , task_id : str , * , last_updated_datetime : Optional [str ] = None
1871
+ ) -> Task :
1859
1872
"""
1860
1873
タスクのステータスを「保留」に変更します。
1861
1874
@@ -1866,20 +1879,24 @@ def change_task_status_to_on_hold(self, project_id: str, task_id: str) -> Task:
1866
1879
Args:
1867
1880
project_id: プロジェクトID
1868
1881
task_id: タスクID
1882
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1869
1883
1870
1884
Returns:
1871
1885
変更後のタスク
1872
1886
"""
1873
- task , _ = self .api .get_task (project_id , task_id )
1887
+ if last_updated_datetime is None :
1888
+ task , _ = self .api .get_task (project_id , task_id )
1889
+ last_updated_datetime = task ["updated_datetime" ]
1890
+
1874
1891
request_body = {
1875
1892
"status" : TaskStatus .ON_HOLD .value ,
1876
1893
"account_id" : self .api .account_id ,
1877
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1894
+ "last_updated_datetime" : last_updated_datetime ,
1878
1895
}
1879
1896
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1880
1897
return updated_task
1881
1898
1882
- def complete_task (self , project_id : str , task_id : str ) -> Task :
1899
+ def complete_task (self , project_id : str , task_id : str , * , last_updated_datetime : Optional [ str ] = None ) -> Task :
1883
1900
"""
1884
1901
今のフェーズを完了させ、 次のフェーズに遷移させます。
1885
1902
教師付フェーズのときはタスクを提出します。
@@ -1893,20 +1910,26 @@ def complete_task(self, project_id: str, task_id: str) -> Task:
1893
1910
Args:
1894
1911
project_id: プロジェクトID
1895
1912
task_id: タスクID
1913
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1896
1914
1897
1915
Returns:
1898
1916
変更後のタスク
1899
1917
"""
1900
- task , _ = self .api .get_task (project_id , task_id )
1918
+ if last_updated_datetime is None :
1919
+ task , _ = self .api .get_task (project_id , task_id )
1920
+ last_updated_datetime = task ["updated_datetime" ]
1921
+
1901
1922
request_body = {
1902
1923
"status" : TaskStatus .COMPLETE .value ,
1903
1924
"account_id" : self .api .account_id ,
1904
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1925
+ "last_updated_datetime" : last_updated_datetime ,
1905
1926
}
1906
1927
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1907
1928
return updated_task
1908
1929
1909
- def cancel_submitted_task (self , project_id : str , task_id : str ) -> Task :
1930
+ def cancel_submitted_task (
1931
+ self , project_id : str , task_id : str , * , last_updated_datetime : Optional [str ] = None
1932
+ ) -> Task :
1910
1933
"""
1911
1934
タスクの提出を取り消します。
1912
1935
「提出されたタスク」とは以下の状態になっています。
@@ -1922,44 +1945,62 @@ def cancel_submitted_task(self, project_id: str, task_id: str) -> Task:
1922
1945
Args:
1923
1946
project_id: プロジェクトID
1924
1947
task_id: タスクID
1948
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1925
1949
1926
1950
Returns:
1927
1951
変更後のタスク
1928
1952
"""
1929
- task , _ = self .api .get_task (project_id , task_id )
1953
+ if last_updated_datetime is None :
1954
+ task , _ = self .api .get_task (project_id , task_id )
1955
+ last_updated_datetime = task ["updated_datetime" ]
1956
+
1930
1957
request_body = {
1931
1958
"status" : TaskStatus .CANCELLED .value ,
1932
1959
"account_id" : self .api .account_id ,
1933
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1960
+ "last_updated_datetime" : last_updated_datetime ,
1934
1961
}
1935
1962
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1936
1963
return updated_task
1937
1964
1938
- def cancel_completed_task (self , project_id : str , task_id : str , operator_account_id : Optional [str ] = None ) -> Task :
1965
+ def cancel_completed_task (
1966
+ self ,
1967
+ project_id : str ,
1968
+ task_id : str ,
1969
+ operator_account_id : Optional [str ],
1970
+ * ,
1971
+ last_updated_datetime : Optional [str ] = None ,
1972
+ ) -> Task :
1939
1973
"""
1940
1974
タスクの受入完了状態を取り消す。
1941
1975
1942
1976
Args:
1943
1977
project_id: プロジェクトID
1944
1978
task_id: タスクID
1945
1979
operator_account_id: 受入完了状態を取り消した後の担当者のaccount_id
1980
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1946
1981
1947
1982
Returns:
1948
1983
変更後のタスク
1949
1984
"""
1950
-
1951
- task , _ = self .api .get_task (project_id , task_id )
1985
+ if last_updated_datetime is None :
1986
+ task , _ = self .api .get_task (project_id , task_id )
1987
+ last_updated_datetime = task ["updated_datetime" ]
1952
1988
1953
1989
request_body = {
1954
1990
"status" : TaskStatus .NOT_STARTED .value ,
1955
1991
"account_id" : operator_account_id ,
1956
- "last_updated_datetime" : task [ "updated_datetime" ] ,
1992
+ "last_updated_datetime" : last_updated_datetime ,
1957
1993
}
1958
1994
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1959
1995
return updated_task
1960
1996
1961
1997
def change_task_operator (
1962
- self , project_id : str , task_id : str , operator_account_id : Optional [str ] = None
1998
+ self ,
1999
+ project_id : str ,
2000
+ task_id : str ,
2001
+ operator_account_id : Optional [str ],
2002
+ * ,
2003
+ last_updated_datetime : Optional [str ] = None ,
1963
2004
) -> Dict [str , Any ]:
1964
2005
"""
1965
2006
タスクの担当者を変更します。
@@ -1971,53 +2012,56 @@ def change_task_operator(
1971
2012
project_id: プロジェクトID
1972
2013
task_id: タスクID
1973
2014
operator_account_id: 新しい担当者のaccount_id。Noneの場合は、担当者を「未割り当て」にします。
2015
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
1974
2016
1975
2017
Returns:
1976
2018
変更後のタスク
1977
2019
1978
2020
"""
1979
- task , _ = self .api .get_task (project_id , task_id )
2021
+ if last_updated_datetime is None :
2022
+ task , _ = self .api .get_task (project_id , task_id )
2023
+ last_updated_datetime = task ["updated_datetime" ]
1980
2024
1981
2025
request_body = {
1982
2026
"status" : TaskStatus .NOT_STARTED .value ,
1983
2027
"account_id" : operator_account_id ,
1984
- "last_updated_datetime" : task [ "updated_datetime" ] ,
2028
+ "last_updated_datetime" : last_updated_datetime ,
1985
2029
}
1986
2030
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
1987
2031
return updated_task
1988
2032
1989
- def reject_task (self , project_id : str , task_id : str , force : bool = False ) -> Dict [str , Any ]:
2033
+ def reject_task (
2034
+ self , project_id : str , task_id : str , * , force : bool = False , last_updated_datetime : Optional [str ] = None
2035
+ ) -> Dict [str , Any ]:
1990
2036
"""
1991
2037
タスクを差し戻します。
1992
- * 通常の差し戻しの場合、タスクの担当者は未割り当てになります。
1993
- * 強制差し戻しの場合、タスクの担当者は直前の教師付フェーズの担当者になります。
1994
2038
1995
2039
Notes:
1996
- * 通常の差し戻しの場合
2040
+ * 通常の差し戻しの場合(force=False)
1997
2041
* 現在タスクを担当しているユーザーのみ、この操作を行うことができます。
1998
2042
* 現在の状態が作業中(working)のタスクに対してのみ、この操作を行うことができます。
1999
- * 現在のフェーズが検査(inspection)、もしくは受入(acceptance)のタスクに対してのみ、この操作を行うことができます。
2000
- * 強制差し戻しの場合
2043
+ * 強制差し戻しの場合(force=True)
2001
2044
* タスクの状態・フェーズを無視して、フェーズを教師付け(annotation)に、状態を未作業(not started)に変更します。
2002
- * タスクの担当者としては、直前の教師付け(annotation)フェーズの担当者を割り当てます。
2003
2045
* この差戻しは、抜取検査・抜取受入のスキップ判定に影響を及ぼしません。
2004
2046
2005
2047
Args:
2006
2048
project_id: プロジェクトID
2007
2049
task_id: タスクID
2008
2050
force: Trueなら強制差し戻し、Falseなら通常の差し戻しを実施する
2051
+ last_updated_datetime: `operate_task` APIのリクエストボディに渡すタスクの最終更新日時。Noneなら`get_task`APIを実行して、タスクの最終更新日時を取得します。
2009
2052
2010
2053
Returns:
2011
2054
変更後のタスク
2012
2055
2013
2056
"""
2014
-
2015
- task , _ = self .api .get_task (project_id , task_id )
2057
+ if last_updated_datetime is None :
2058
+ task , _ = self .api .get_task (project_id , task_id )
2059
+ last_updated_datetime = task ["updated_datetime" ]
2016
2060
2017
2061
request_body = {
2018
2062
"status" : TaskStatus .REJECTED .value ,
2019
2063
"account_id" : self .api .account_id ,
2020
- "last_updated_datetime" : task [ "updated_datetime" ] ,
2064
+ "last_updated_datetime" : last_updated_datetime ,
2021
2065
"force" : force ,
2022
2066
}
2023
2067
updated_task , _ = self .api .operate_task (project_id , task_id , request_body = request_body )
0 commit comments