@@ -160,6 +160,204 @@ def generate_contribution_raw_data_report(
160160 },
161161 )
162162
163+ def generate_source_content_updates_report (
164+ self ,
165+ project_id : Optional [int ] = None ,
166+ unit : Optional [Unit ] = None ,
167+ format : Optional [Format ] = Format .XLSX ,
168+ date_from : Optional [datetime ] = None ,
169+ date_to : Optional [datetime ] = None ,
170+ ):
171+ """
172+ Generate Report(Contribution Raw Data).
173+
174+ Link to documentation:
175+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
176+
177+ Link to documentation for enterprise:
178+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
179+ """
180+
181+ project_id = project_id or self .get_project_id ()
182+
183+ return self .generate_report (
184+ projectId = project_id ,
185+ request_data = {
186+ "name" : "source-content-updates" ,
187+ "schema" : {
188+ "unit" : unit ,
189+ "format" : format ,
190+ "dateFrom" : date_from ,
191+ "dateTo" : date_to ,
192+ },
193+ },
194+ )
195+
196+ def generate_project_members_report (
197+ self ,
198+ project_id : Optional [int ] = None ,
199+ format : Optional [Format ] = Format .XLSX ,
200+ date_from : Optional [datetime ] = None ,
201+ date_to : Optional [datetime ] = None ,
202+ ):
203+ """
204+ Generate Report(Project Members).
205+
206+ Link to documentation:
207+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
208+
209+ Link to documentation for enterprise:
210+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
211+ """
212+
213+ project_id = project_id or self .get_project_id ()
214+
215+ return self .generate_report (
216+ projectId = project_id ,
217+ request_data = {
218+ "name" : "project-members" ,
219+ "schema" : {
220+ "format" : format ,
221+ "dateFrom" : date_from ,
222+ "dateTo" : date_to ,
223+ },
224+ },
225+ )
226+
227+ def generate_editor_issues_report (
228+ self ,
229+ project_id : Optional [int ] = None ,
230+ date_from : Optional [datetime ] = None ,
231+ date_to : Optional [datetime ] = None ,
232+ format : Optional [Format ] = Format .XLSX ,
233+ issue_type : Optional [str ] = None ,
234+ ):
235+ """
236+ Generate Report(Editor Issues).
237+
238+ Link to documentation:
239+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
240+
241+ Link to documentation for enterprise:
242+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
243+ """
244+
245+ project_id = project_id or self .get_project_id ()
246+
247+ return self .generate_report (
248+ projectId = project_id ,
249+ request_data = {
250+ "name" : "editor-issues" ,
251+ "schema" : {
252+ "dateFrom" : date_from ,
253+ "dateTo" : date_to ,
254+ "format" : format ,
255+ "issueType" : issue_type
256+ },
257+ },
258+ )
259+
260+ def generate_qa_check_issues_report (
261+ self ,
262+ project_id : Optional [int ] = None ,
263+ format : Optional [Format ] = Format .XLSX ,
264+ date_from : Optional [datetime ] = None ,
265+ date_to : Optional [datetime ] = None ,
266+ ):
267+ """
268+ Generate Report(Qa Check Issues).
269+
270+ Link to documentation:
271+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
272+
273+ Link to documentation for enterprise:
274+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
275+ """
276+
277+ project_id = project_id or self .get_project_id ()
278+
279+ return self .generate_report (
280+ projectId = project_id ,
281+ request_data = {
282+ "name" : "qa-check-issues" ,
283+ "schema" : {
284+ "format" : format ,
285+ "dateFrom" : date_from ,
286+ "dateTo" : date_to ,
287+ },
288+ },
289+ )
290+
291+ def generate_saving_activity_report (
292+ self ,
293+ project_id : Optional [int ] = None ,
294+ unit : Optional [Unit ] = None ,
295+ language_id : Optional [str ] = None ,
296+ format : Optional [Format ] = Format .XLSX ,
297+ date_from : Optional [datetime ] = None ,
298+ date_to : Optional [datetime ] = None ,
299+ ):
300+ """
301+ Generate Report(Saving Activity).
302+
303+ Link to documentation:
304+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
305+
306+ Link to documentation for enterprise:
307+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
308+ """
309+
310+ project_id = project_id or self .get_project_id ()
311+
312+ return self .generate_report (
313+ projectId = project_id ,
314+ request_data = {
315+ "name" : "saving-activity" ,
316+ "schema" : {
317+ "unit" : unit ,
318+ "languageId" : language_id ,
319+ "format" : format ,
320+ "dateFrom" : date_from ,
321+ "dateTo" : date_to ,
322+ },
323+ },
324+ )
325+
326+ def generate_translation_activity_report (
327+ self ,
328+ project_id : Optional [int ] = None ,
329+ unit : Optional [Unit ] = None ,
330+ language_id : Optional [str ] = None ,
331+ format : Optional [Format ] = Format .XLSX ,
332+ date_from : Optional [datetime ] = None ,
333+ date_to : Optional [datetime ] = None ,
334+ ):
335+ """
336+ Generate Report(Translation Activity).
337+
338+ Link to documentation:
339+ https://developer.crowdin.com/api/v2/#operation/api.projects.reports.post
340+
341+ Link to documentation for enterprise:
342+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.projects.reports.post
343+ """
344+
345+ project_id = project_id or self .get_project_id ()
346+
347+ return self .generate_report (
348+ projectId = project_id ,
349+ request_data = {
350+ "name" : "translation-activity" ,
351+ "schema" : {
352+ "unit" : unit ,
353+ "languageId" : language_id ,
354+ "format" : format ,
355+ "dateFrom" : date_from ,
356+ "dateTo" : date_to ,
357+ },
358+ },
359+ )
360+
163361 def generate_pre_translate_accuracy_general_report (
164362 self ,
165363 projectId : Optional [int ] = None ,
@@ -1276,6 +1474,104 @@ def generate_group_translation_costs_post_editing_general_report(
12761474 },
12771475 )
12781476
1477+ def generate_group_task_usage_report (
1478+ self ,
1479+ group_id : int ,
1480+ format : Optional [Format ] = None ,
1481+ type : Optional [str ] = None ,
1482+ project_ids : Optional [Iterable [int ]] = None ,
1483+ date_from : Optional [datetime ] = None ,
1484+ date_to : Optional [datetime ] = None ,
1485+ group_by : Optional [GroupBy ] = None ,
1486+ type_task : Optional [int ] = None ,
1487+ language_id : Optional [str ] = None ,
1488+ creator_id : Optional [int ] = None ,
1489+ assignee_id : Optional [int ] = None ,
1490+ ):
1491+ """
1492+ Generate Group Report (Task Usage Report).
1493+
1494+ Link to documentation:
1495+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.groups.reports.post
1496+ """
1497+
1498+ return self .generate_group_report (
1499+ group_id = group_id ,
1500+ request_data = {
1501+ "name" : "group-task-usage" ,
1502+ "schema" : {
1503+ "projectIds" : project_ids ,
1504+ "format" : format ,
1505+ "type" : type ,
1506+ "dateFrom" : date_from ,
1507+ "dateTo" : date_to ,
1508+ "groupBy" : group_by ,
1509+ "typeTask" : type_task ,
1510+ "languageId" : language_id ,
1511+ "creatorId" : creator_id ,
1512+ "assigneeId" : assignee_id ,
1513+ },
1514+ },
1515+ )
1516+
1517+ def generate_group_qa_check_issues_report (
1518+ self ,
1519+ group_id : int ,
1520+ project_ids : Optional [Iterable [int ]] = None ,
1521+ format : Optional [Format ] = None ,
1522+ date_from : Optional [datetime ] = None ,
1523+ date_to : Optional [datetime ] = None ,
1524+ ):
1525+ """
1526+ Generate Group Report (Group Qa Check Issues Report).
1527+
1528+ Link to documentation:
1529+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.groups.reports.post
1530+ """
1531+
1532+ return self .generate_group_report (
1533+ group_id = group_id ,
1534+ request_data = {
1535+ "name" : "group-qa-check-issues" ,
1536+ "schema" : {
1537+ "projectIds" : project_ids ,
1538+ "format" : format ,
1539+ "dateFrom" : date_from ,
1540+ "dateTo" : date_to ,
1541+ },
1542+ },
1543+ )
1544+
1545+ def generate_group_translation_activity_report (
1546+ self ,
1547+ group_id : int ,
1548+ unit : Optional [Unit ] = None ,
1549+ project_ids : Optional [Iterable [int ]] = None ,
1550+ format : Optional [Format ] = None ,
1551+ date_from : Optional [datetime ] = None ,
1552+ date_to : Optional [datetime ] = None ,
1553+ ):
1554+ """
1555+ Generate Group Report (Group translation consumption).
1556+
1557+ Link to documentation:
1558+ https://developer.crowdin.com/enterprise/api/v2/#operation/api.groups.reports.post
1559+ """
1560+
1561+ return self .generate_group_report (
1562+ group_id = group_id ,
1563+ request_data = {
1564+ "name" : "group-translation-activity" ,
1565+ "schema" : {
1566+ "unit" : unit ,
1567+ "projectIds" : project_ids ,
1568+ "format" : format ,
1569+ "dateFrom" : date_from ,
1570+ "dateTo" : date_to ,
1571+ },
1572+ },
1573+ )
1574+
12791575 @staticmethod
12801576 def get_organization_reports_path (report_id : Optional [str ] = None ):
12811577 if report_id is not None :
0 commit comments