Search for assignment groups.
The underlying data model searched is defined in devilry.apps.core.models.AssignmentGroup. The Simplified API that the server forwards this request to is devilry.apps.examiner.simplified.SimplifiedAssignmentGroup.search().
The request parameters (below) all modify the result of the search. They are applied in the following order:
- The query is executed.
- The result of the query is filtered through the filters.
- The result of the filtering is ordered as specified in orderby.
- The result of the ordering is limited by start and limit.
GET /examiner/restfulsimplifiedassignmentgroup/
{
query: 'a query string',
filters: [{field:"candidates__identifier", comp:"icontains", value:["this", "is", "an", "example"]},
{field:"feedback", comp:"<", value:15},
{field:"feedback__delivery__delivery_type", comp:"endswith", value:20}],
orderby: ["id", "-name", "is_open", "parentnode", "feedback", "latest_delivery_id", "latest_deadline_id", "latest_deadline_deadline", "number_of_deliveries"],
start: 10,
limit: 100
}
Optional request parameters are encoded as a JSON object and sent as the request body as shown in the example above.
A string to search for. If this is empty or not given, all assignment groups that the authenticated user has access to is returned.
If the string is not empty, the query-string is split on whitespace, resulting in a list of words. Every word in the list is searched for case-insensitive matches within the following fields:
- name
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- An optional name for the group. Typically used a project name on project assignments.
- Type
- String
- candidates__identifier
- Actual location of the field:
- devilry.apps.core.models.Candidate
- About the field:
- List of many values.
- Type
- List of strings
- candidates__full_name
- Actual location of the field:
- devilry.apps.core.models.Candidate
- About the field:
- List of many values.
- Type
- List of strings
- candidates__email
- Actual location of the field:
- devilry.apps.core.models.Candidate
- About the field:
- List of many values.
- Type
- List of strings
- parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- parentnode__parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
Filters can be used to perform complex queries. The filters parameter is a list of filters, where each filter is a map with the following entries:
- field
- A field name.
- comp
- A comparison operator.
- value
- The value to filter on.
Example:
[{field:"candidates__identifier", comp:"icontains", value:["this", "is", "an", "example"]}, {field:"feedback", comp:"<", value:15}, {field:"feedback__delivery__delivery_type", comp:"endswith", value:20}]
assignment groups can be filtered on the following fields:
- candidates__identifier
- Actual location of the field:
- devilry.apps.core.models.Candidate
- About the field:
- List of many values.
- Type
- List of strings
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__delivery__delivery_type
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- 0: Electronic delivery, 1: Non-electronic delivery, 2: Alias delivery. Default: 0.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__delivery__number
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- The delivery-number within this assignment-group. This number is automatically incremented within each AssignmentGroup, starting from 1. Always unique within the assignment-group.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__delivery__time_of_delivery
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- Holds the date and time the Delivery was uploaded.
- Type
- DateTime string (YYYY-MM-DD hh:mm:ss)
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__grade
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- The rendered grade, such as “A” or “approved”.
- Type
- String
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__is_passing_grade
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Is this a passing grade?
- Type
- Boolean
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- feedback__points
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Number of points given on this feedback.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- id
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- is_open
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- If this is checked, the group can add deliveries.
- Type
- Boolean
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- latest_deadline_deadline
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- number_of_deliveries
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- parentnode
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, contains, >=, <=, icontains, iexact, endswith, exact, <, >.
- parentnode__delivery_types
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- This option controls what types of deliveries this assignment accepts. See docs for Delivery for documentation of accepted values.
- Type
- Integer
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__end_time
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Start time and end time defines when the period is active.
- Type
- DateTime string (YYYY-MM-DD hh:mm:ss)
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__parentnode
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__parentnode__parentnode
- Actual location of the field:
- devilry.apps.core.models.Node
- About the field:
- Autogenerated identifier.
- Type
- Integer
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__parentnode__start_time
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Start time and end time defines when the period is active.
- Type
- DateTime string (YYYY-MM-DD hh:mm:ss)
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
- parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- Supported comparison operators:
- startswith, <=, >=, contains, icontains, iexact, endswith, exact, <, >.
If given, this must be a positive integer (including 0), which specifies the exact number of expected results. This enables searches that you know should fail if they do not get this exact number of results, such as filtering for a User by unique username instead of its numeric ID (where you should expect exactly one result).
List of fieldnames. Order the result by these fields. Fieldnames can be prefixed by '-' for descending ordering.
After query, filters and orderby have been executed, the result is limited to the values from start to start+limit. Start defalts to 0.
Limit results to this number of items. Defaults to 50.
A list of group names. Each group adds an additional set of fields to the results of the search. The following group names are available:
- users
Expands to the following fields:
- candidates__identifier
- Actual location of the field:
- devilry.apps.core.models.Candidate
- About the field:
- List of many values.
- Type
- List of strings
- assignment
Expands to the following fields:
- parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- parentnode__anonymous
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Specifies if this assignment is anonymous.
- Type
- Boolean
- parentnode__delivery_types
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- This option controls what types of deliveries this assignment accepts. See docs for Delivery for documentation of accepted values.
- Type
- Integer
- parentnode__publishing_time
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- The time when the assignment is to be published (visible to students and examiners).
- Type
- DateTime string (YYYY-MM-DD hh:mm:ss)
- feedback
Expands to the following fields:
- feedback__points
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Number of points given on this feedback.
- Type
- Integer
- feedback__grade
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- The rendered grade, such as “A” or “approved”.
- Type
- String
- feedback__is_passing_grade
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Is this a passing grade?
- Type
- Boolean
- period
Expands to the following fields:
- parentnode__parentnode
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Autogenerated identifier.
- Type
- Integer
- parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Period
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
- feedbackdelivery
Expands to the following fields:
- feedback__delivery__number
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- The delivery-number within this assignment-group. This number is automatically incremented within each AssignmentGroup, starting from 1. Always unique within the assignment-group.
- Type
- Integer
- feedback__delivery__time_of_delivery
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- Holds the date and time the Delivery was uploaded.
- Type
- DateTime string (YYYY-MM-DD hh:mm:ss)
- feedback__delivery__delivery_type
- Actual location of the field:
- devilry.apps.core.models.Delivery
- About the field:
- 0: Electronic delivery, 1: Non-electronic delivery, 2: Alias delivery. Default: 0.
- Type
- Integer
- feedback__delivery__deadline
- Actual location of the field:
- devilry.apps.core.models.Deadline
- About the field:
- Autogenerated identifier.
- Type
- Integer
- candidates
- Expands to the following fields:
- feedback_rendered_view
Expands to the following fields:
- feedback__rendered_view
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- A rendered HTML version of the feedback, containing whatever the grade-editor chose to dump in this field.
- Type
- String
- subject
Expands to the following fields:
- parentnode__parentnode__parentnode
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- Autogenerated identifier.
- Type
- Integer
- parentnode__parentnode__parentnode__long_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- A longer name, more descriptive than “Short name”. This is the name visible to students.
- Type
- String
- parentnode__parentnode__parentnode__short_name
- Actual location of the field:
- devilry.apps.core.models.Subject
- About the field:
- Max 20 characters. Only numbers, lowercase characters, ‘_’ and ‘-‘.
- Type
- String
note that the is wrong in the example. The id is always unique. However, the example is generated from a non-varying dataset.
200 OK
{
total: 20,
items: [
{ id: 15,
name: "My example value",
is_open: true,
parentnode: 15,
feedback: 15,
latest_delivery_id: No example-value available for this field,
latest_deadline_id: No example-value available for this field,
latest_deadline_deadline: No example-value available for this field,
number_of_deliveries: No example-value available for this field },
{ id: 15,
name: "My example value",
is_open: true,
parentnode: 15,
feedback: 15,
latest_delivery_id: No example-value available for this field,
latest_deadline_id: No example-value available for this field,
latest_deadline_deadline: No example-value available for this field,
number_of_deliveries: No example-value available for this field },
...
]
}
Responds with HTTP code 200 and a JSON encoded dict containing the list of results and the total number of items found before applying limit and start. Each result in the list is a JSON object where the key is a fieldname and the associated value is the value for that field. The result always contains the following fields:
- id
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- Autogenerated identifier.
- Type
- Integer
- name
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- An optional name for the group. Typically used a project name on project assignments.
- Type
- String
- is_open
- Actual location of the field:
- devilry.apps.core.models.AssignmentGroup
- About the field:
- If this is checked, the group can add deliveries.
- Type
- Boolean
- parentnode
- Actual location of the field:
- devilry.apps.core.models.Assignment
- About the field:
- Autogenerated identifier.
- Type
- Integer
- feedback
- Actual location of the field:
- devilry.apps.core.models.StaticFeedback
- About the field:
- Autogenerated identifier.
- Type
- Integer
- latest_delivery_id
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
- latest_deadline_id
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
- latest_deadline_deadline
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
- number_of_deliveries
- Actual location of the field:
- Generated from a query
- About the field:
- Generated from a query.
- Type
- unknown
However, there may be more fields if specified with the result_fieldgroups request parameter.
On errors, we respond with one of the HTTP Error status codes.