Skip to content

Task Group Templates

References

Task Group Templates API

POST /api/task-group-templates/

Creates Task Group Template.

Permissions

Requires authentication and task_group_templates.create permission.

Request

  • Body parameters
KeyTypeNotes
namestr
object_classesArray
task_templatesArray
  • Headers
Content-Type: application/json
Authorization: JWT access_token
  • Schema
json
POST /api/task-group-templates/

{
    "name": "Test Task Group Template",
    "object_classes": [
        1
    ],
    "task_templates": [
        1
    ]
}

Validations

  • name
    • is string
    • is required
    • is not null
    • is not blank
    • is unique (case insensitive)
    • max length is 100
  • description
    • is string
    • max length is 500
  • object_classes
    • is required
    • is list of Object Classes ids
    • is not empty
  • task_templates
    • is required
    • is list of manual type Task Templates ids
    • is not empty

Response

KeyTypeNotes
iduuid
namestring
descriptionstring
object_classesArray
task_templatesArray
created_atdate
created_byuser
modified_atdate
modified_byuser
_metaObject_meta result

Response _meta object

KeyTypeNotes
permissionObject
labels.object_classesArray
labels.task_templatesArray
  • Successful status 201 Created
  • Response body schema
json
{
  "id": 1,
  "name": "Test 1",
  "description": "Desc for Test 1",
  "object_classes": [
    1
  ],
  "task_templates": [],
  "created_at": "2022-05-17T13:18:49.312474+02:00",
  "created_by": {
    "id": 2,
    "first_name": "John",
    "last_name": "Kowalsky",
    "username": "John.Kowalsky@autologyx.com",
    "company_name": "",
    "is_deleted": false
  },
  "modified_at": "2022-05-17T13:18:49.312496+02:00",
  "modified_by": null,
  "_meta": {
    "permissions": {
      "list": true,
      "view": true,
      "create": true,
      "edit": true,
      "delete": true
    },
    "labels": {
      "object_classes": [
        "Object test name"
      ],
      "task_templates": []
    }
  }
}

Errors

CauseResponse codeMessage
"name" is missing400 Bad Request"name": ["This field is required."]
"name" is empty400 Bad Request"name": ["This field may not be blank."]
"name" is not unique400 Bad Request"name": ["This field must be unique."]
"name" is too long400 Bad Request"name": ["Ensure this field has no more than 100 characters."]
"description" is too long400 Bad Request"description": ["Ensure this field has no more than 500 characters."]
"object_classes" is missing400 Bad Request"object_classes": ["This field is required."]
"object_classes" is empty400 Bad Request"object_classes": ["This list may not be empty."]
"object_classes" invalid pk400 Bad Request"object_classes": ["Invalid pk "pk" - object does not exist."]
"task_templates" invalid pk400 Bad Request"task_templates": ["Invalid pk "pk" - object does not exist."]
"task_templates" is missing400 Bad Request"task_templates": ["This field is required."]
"task_templates" is manual400 Bad Request"task_templates": ["Manual task templates can't be used: Name1, Name2."]
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

PATCH /api/task-group-templates/id/

Updates single Task Group Template.

Permissions

Requires authentication and task_group_templates.edit permission.

Allowed parameters

KeyTypeNotes
namestr
object_classesArray
task_templatesArray

Any parameter not listed above are silently ignored if passed.

Request

  • Headers
Request Method: PATCH
Content-Type: application/json
Location: /api/task-group-templates/1/
Authorization: JWT access_token
  • Sample request body
json
{
    "name": "Test Task Group Template",
    "object_classes": [
        1
    ],
    "task_templates": []
}

Validations

  • name
    • is string
    • is required
    • is not null
    • is not blank
    • is unique (case insensitive)
    • max length is 100
  • description
    • is string
    • max length is 500
  • object_classes
    • is required
    • is list of Object Classes ids
    • is not empty
  • task_templates
    • is required
    • is list of manual type Task Templates ids
    • is not empty

Response

KeyTypeNotes
iduuid
namestring
descriptionstring
object_classesArray
task_templatesArray
created_atdate
created_byuser
modified_atdate
modified_byuser
_metaObject_meta result

Response _meta object

KeyTypeNotes
permissionObject
labels.object_classesArray
labels.task_templatesArray
  • Successful status 200 Ok
  • Response body schema
json
{
  "id": 1,
  "name": "Test Task Group Template",
  "description": "Desc for Test 1",
  "object_classes": [
    1
  ],
  "task_templates": [],
  "created_at": "2022-05-17T13:18:49.312474+02:00",
  "created_by": {
    "id": 2,
    "first_name": "John",
    "last_name": "Kowalsky",
    "username": "John.Kowalsky@autologyx.com",
    "company_name": "",
    "is_deleted": false
  },
  "modified_at": "2022-05-17T13:18:49.312496+02:00",
  "modified_by": null,
  "_meta": {
    "permissions": {
      "list": true,
      "view": true,
      "create": true,
      "edit": true,
      "delete": true
    },
    "labels": {
      "object_classes": [
        "Object test name"
      ],
      "task_templates": []
    }
  }
}

Errors

CauseResponse codeMessage
"name" is missing400 Bad Request"name": ["This field is required."]
"name" is empty400 Bad Request"name": ["This field may not be blank."]
"name" is not unique400 Bad Request"name": ["This field must be unique."]
"name" is too long400 Bad Request"name": ["Ensure this field has no more than 100 characters."]
"description" is too long400 Bad Request"description": ["Ensure this field has no more than 500 characters."]
"object_classes" is missing400 Bad Request"object_classes": ["This field is required."]
"object_classes" is empty400 Bad Request"object_classes": ["This list may not be empty."]
"object_classes" invalid pk400 Bad Request"object_classes": ["Invalid pk "pk" - object does not exist."]
"task_templates" invalid pk400 Bad Request"task_templates": ["Invalid pk "pk" - object does not exist."]
"task_templates" is missing400 Bad Request"task_templates": ["This field is required."]
"task_templates" is manual400 Bad Request"task_templates": ["Manual task templates can't be used: Name1, Name2."]
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

DELETE /api/object-classes/object_class_id/

Remove a Task Group Template with checking if no used anywhere.

Permissions

Requires authentication and task_group_templates.delete permission.

Request example

  • Headers
Request Method: DELETE
Location: /api/task-group-templates/1/
Authorization: JWT access_token

Response example

  • Status 204 No Content
  • Body

Errors

ErrorResponse codeMessage
Task Group Template in use400 Forbidden"detail": "Task Group Template is in use by Sequences."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."
Task template does not exist404 Forbidden"detail": "Not found"

GET /api/task-group-templates/

List Task group templates based on query parameters and caller permissions.

Permissions

Requires authentication and task_group_templates.list permission.

Request

  • Headers
Content-Type: application/json
Authorization: JWT access_token
  • Schema
json
GET /api/task-group-templates/

Response

KeyTypeNotes
limitint
offsetint
total_countintTotal number of forms visible to the user (based on permissions).
filtered_countintNumber of forms visible to the user (based on permissions) with filters applied.
nextURL / nullNext page URL (null if there is no next page)
previousURL / nullPrevious page URL (null if there is no previous page)
resultsArrayDescribed in the next table.

Response results array

KeyTypeNotes
idid
namestring
descriptionstring
object_classesArray
num_of_task_templatesint
created_atdatetime
created_byuser
modified_atdatetime
modified_byuser
_metaObject_meta result

Response _meta object

KeyTypeNotes
permissionObjectObject describing permissions.

Response example

  • Status 200 OK
  • Body
json
{
  "limit": 100,
  "offset": 0,
  "filtered_count": 2,
  "total_count": 2,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 1,
      "name": "TG 1",
      "description": "Desc for task group 1",
      "object_classes": [
        "OC 1"
      ],
      "num_of_task_templates": 0,
      "created_at": "2022-05-17T13:18:49.312474+02:00",
      "created_by": {
        "id": 2,
        "first_name": "John",
        "last_name": "Kowalsky",
        "username": "John.Kowalsky@autologyx.com",
        "company_name": "",
        "is_deleted": false
      },
      "modified_at": "2022-10-11T11:54:17.541591+02:00",
      "modified_by": {
        "id": 2,
        "first_name": "John",
        "last_name": "Kowalsky",
        "username": "John.Kowalsky@autologyx.com",
        "company_name": "",
        "is_deleted": false
      },
      "_meta": {
        "permissions": {
          "list": true,
          "view": true,
          "create": true,
          "edit": true,
          "delete": true
        }
      }
    }
  ]
}

Sorting

ParameterExampleNotes
id{build}/api/tasks/?ordering=idAscending
id{build}/api/tasks/?ordering=-idDescending (-)
name{build}/api/tasks/?ordering=nameAscending
name{build}/api/tasks/?ordering=-nameDescending (-)
num_of_task_templates{build}/api/tasks/?ordering=-num_of_task_templatesAscending (-)
num_of_task_templates{build}/api/tasks/?ordering=-num_of_task_templatesDescending (-)
created_at{build}/api/tasks/?ordering=created_atAscending
created_at{build}/api/tasks/?ordering=-created_atDescending (-)
modified_at{build}/api/tasks/?ordering=modified_atAscending
modified_at{build}/api/tasks/?ordering=-modified_atDescending (-)

Filtering

For the full description of standard predicates see ALX API standards - Developers guide.

ParameterPredicatesExample
idstandard pk{build}/api/tasks/?id=1
namestandard string{build}/api/tasks/?name__icontains=foobar
created_atstandard datetime{build}/api/tasks/?created_at__gte=2022-01-01
created_bystandard set{build}/api/tasks/?created_by__in=123,234,345
modified_atstandard datetime{build}/api/tasks/?modified_at__range=2022-01-01,2022-01-31
modified_bystandard set{build}/api/tasks/?modified_by=123

GET /api/task-group-templates/task_group_templates_id/

Permissions

Requires authentication and task_group_templates.view permission.

Request

  • URL parameters
KeyTypeNotes
task_group_templates_idid
  • Headers
Content-Type: application/json
Authorization: JWT access_token
  • Schema
json
GET /api/task-group-templates/`task_group_templates_id`/

Response

KeyTypeNotes
iduuid
namestring
descriptionstring
object_classesArray
task_templatesArray
created_atdate
created_byuser
modified_atdate
modified_byuser
_metaObject_meta result

Response _meta object

KeyTypeNotes
permissionObject
labels.object_classesArray
labels.task_templatesArray

Response example

  • Status 200 OK
  • Body
json
{
  "id": 1,
  "name": "Test 1",
  "description": "Desc for Test 1",
  "object_classes": [
    1
  ],
  "task_templates": [],
  "created_at": "2022-05-17T13:18:49.312474+02:00",
  "created_by": {
    "id": 2,
    "first_name": "John",
    "last_name": "Kowalsky",
    "username": "John.Kowalsky@autologyx.com",
    "company_name": "",
    "is_deleted": false
  },
  "modified_at": "2022-05-17T13:18:49.312496+02:00",
  "modified_by": {
    "id": 2,
    "first_name": "John",
    "last_name": "Kowalsky",
    "username": "John.Kowalsky@autologyx.com",
    "company_name": "",
    "is_deleted": false
  },
  "_meta": {
    "permissions": {
      "list": true,
      "view": true,
      "create": true,
      "edit": true,
      "delete": true
    },
    "labels": {
      "object_classes": [
        "Object test name"
      ],
      "task_templates": []
    }
  }
}

Sorting

Not supported

Filtering

Not supported

Errors

ErrorResponse codeMessage
A non-existent task_group_templates_id was given404 Not Found"detail": "Not found."
Requesting user is authorized but without view perm for tasks resource403 Forbidden"detail": "You do not have permission to perform this action."
Requesting user is not authenticated401 Unauthorized"detail": "Authentication credentials were not provided."

GET /api/task-group-templates/autocomplete/

List of Task Group Templates based on query parameters for autocomplete widgets.

Permissions

Requires authentication and task_group_templates.list permission.

Request example

  • Headers
Request Method: GET
Location: /api/task-group-templates/autocomplete/
Authorization: JWT access_token

Response

KeyTypeNotes
limitint
offsetint
total_countintTotal number of forms visible to the user (based on permissions).
filtered_countintNumber of forms visible to the user (based on permissions) with filters applied.
nextURL / nullNext page URL (null if there is no next page)
previousURL / nullPrevious page URL (null if there is no previous page)
resultsArrayDescribed in the next table.

Response results array

KeyTypeNotes
valueintTask Group Template ID
textstrTask Group Template name

Response example

  • Status 200 OK
  • Body
json
{
  "limit": 100,
  "offset": 0,
  "filtered_count": 1,
  "total_count": 20,
  "next": null,
  "previous": null,
  "results": [
    {
      "value": 12,
      "tesst": "Some name"
    }
  ]
}

Sorting

ParameterExampleNotes
name{build}/api/task-group-templates/?ordering=nameAscending
name{build}/api/task-group-templates/?ordering=-nameDescending (-)
text{build}/api/task-group-templates/?ordering=textAscending
text{build}/api/task-group-templates/?ordering=-textDescending (-)

Filtering

For the full description of standard predicates see ALX API standards - Developers guide.

ParameterPredicatesExampleValues
textstandard string{build}/api/task-group-templates/?text__icontains=template

Errors

ErrorResponse codeMessage
Wrong ordering value400 Bad Request"ordering": ["Select a valid choice. {value} is not one of the available choices."]

GET /api/task-group-templates/id/usage/

Request example

  • Headers
Request Method: GET
Location: /api/task-group-templates/1/usage/
Authorization: JWT access_token

Response

KeyTypeNotes
num_of_sequencesint
sequencesarray

Response sequences array

KeyTypeNotes
idintSequence id
namestrName of sequence

Response example

  • Status 200 OK
  • Body
json
{
    "num_of_sequences": 1, 
    "sequences": [
        {
            "id": 3,
            "name": "Sample sequence"
        }
    ]
}

Errors

ErrorResponse codeMessage
id is invalid404 Bad Request'detail': "Not found."
Unauthorized API call403 Bad Request'detail': "You do not have permission to perform this action."

OPTIONS /api/task-group-templates/

Permissions

Requires authentication only.

Request

  • Headers
Content-Type: application/json
Authorization: JWT access_token
  • Schema
json
OPTIONS /api/task-group-templates/

Response

  • Successful status 200 OK
  • Response body:
json
{
  "list": {
    "columns": [
      {
        "alias": "id",
        "type": "int",
        "predicates": [
          "exact",
          "gt",
          "gte",
          "lt",
          "lte",
          "range"
        ],
        "sort_ok": true
      },
      {
        "alias": "name",
        "type": "string",
        "predicates": [
          "exact",
          "iexact",
          "contains",
          "icontains",
          "startswith",
          "istartswith",
          "endswith",
          "iendswith"
        ],
        "sort_ok": true
      },
      {
        "alias": "description",
        "type": "string",
        "predicates": [],
        "sort_ok": false
      },
      {
        "alias": "object_classes",
        "type": "set",
        "predicates": [
          "containsall",
          "containssome"
        ],
        "sort_ok": false,
        "autocomplete": "/api/object-classes/autocomplete/?text__icontains="
      },
      {
        "alias": "num_of_task_templates",
        "type": "int",
        "predicates": [],
        "sort_ok": true
      },
      {
        "alias": "created_at",
        "type": "datetime",
        "predicates": [
          "exact",
          "gt",
          "gte",
          "lt",
          "lte",
          "range"
        ],
        "sort_ok": true
      },
      {
        "alias": "created_by",
        "type": "user",
        "predicates": [
          "exact",
          "in"
        ],
        "sort_ok": false,
        "autocomplete": "/api/users/autocomplete/?text__icontains="
      },
      {
        "alias": "modified_at",
        "type": "datetime",
        "predicates": [
          "exact",
          "gt",
          "gte",
          "lt",
          "lte",
          "range"
        ],
        "sort_ok": true
      },
      {
        "alias": "modified_by",
        "type": "user",
        "predicates": [
          "exact",
          "in"
        ],
        "sort_ok": false,
        "autocomplete": "/api/users/autocomplete/?text__icontains="
      }
    ]
  },
  "details": {
    "schema": [
      {
        "alias": "name",
        "type": "string",
        "required": true,
        "validators": [
          {
            "type": "max_length",
            "length": 100
          },
          {
            "type": "min_length",
            "length": 1
          }
        ]
      },
      {
        "alias": "description",
        "type": "string",
        "required": false,
        "validators": [
          {
            "type": "max_length",
            "length": 500
          },
          {
            "type": "min_length",
            "length": 0
          }
        ]
      },
      {
        "alias": "object_classes",
        "type": "set",
        "required": true,
        "autocomplete": "/api/object-classes/autocomplete/?text__icontains="
      },
      {
        "alias": "task_templates",
        "type": "set",
        "required": false,
        "autocomplete": "/api/task-templates/autocomplete/?creation=automatic&text__icontains="
      }
    ]
  },
  "restrictions": {
    "limit_items": 10000
  }
}