reviewboard.reviews.builtin_fields¶
- class BuiltinFieldMixin(*args, **kwargs)[source]¶
Bases:
object
Mixin for built-in fields.
This overrides some functions to work with native fields on a ReviewRequest or ReviewRequestDraft, rather than working with those stored in extra_data.
- class BuiltinTextAreaFieldMixin(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
Mixin for built-in text area fields.
This will ensure that the text is always rendered in Markdown, no matter whether the source text is plain or Markdown. It will still escape the text if it’s not in Markdown format before rendering.
- get_data_attributes()[source]¶
Return any data attributes to include in the element.
- Returns:
The data attributes to include in the element.
- Return type:
- __annotations__ = {}¶
- class ReviewRequestPageDataMixin(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
object
Mixin for internal fields needing access to the page data.
These are used by fields that operate on state generated when creating the review request page. The view handling that page makes a lot of queries, and stores the results. This mixin allows access to those results, preventing additional queries.
The data structure is not meant to be public API, and this mixin should not be used by any classes outside this file.
By default, this will not render or handle any value loading or change entry recording. Subclasses must implement those manually.
- __init__(review_request_details, data=None, *args, **kwargs)[source]¶
Initialize the mixin.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request (or the active draft thereof). In practice this will either be areviewboard.reviews.models.ReviewRequest
or areviewboard.reviews.models.ReviewRequestDraft
.data (
reviewboard.reviews.detail.ReviewRequestPageData
) – The data already queried for the review request page.*args (
tuple
) – Additional positional arguments.**kwargs (
dict
) – Additional keyword arguments.
- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The loaded value.
- Return type:
- record_change_entry(changedesc, old_value, new_value)[source]¶
Record information on the changed values in a ChangeDescription.
- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description to record the entry in.old_value (
object
) – The old value of the field.new_value (
object
) – The new value of the field.
- class BaseCaptionsField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
ReviewRequestPageDataMixin
,BaseReviewRequestField
Base class for rendering captions for attachments.
This serves as a base for FileAttachmentCaptionsField and ScreenshotCaptionsField. It provides the base rendering and for caption changes on file attachments or screenshots.
- render_change_entry_html(info)[source]¶
Render a change entry to HTML.
This function is expected to return safe, valid HTML. Any values coming from a field or any other form of user input must be properly escaped.
- serialize_change_entry(changedesc)[source]¶
Serialize a change entry for public consumption.
This will output a version of the change entry for use in the API. It can be the same content stored in the
ChangeDescription
, but does not need to be.- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description whose field is to be serialized.- Returns:
An appropriate serialization for the field.
- Return type:
- __annotations__ = {}¶
- class BaseModelListEditableField(review_request_details, request=None)[source]¶
Bases:
BaseCommaEditableField
Base class for editable comma-separated list of model instances.
This is used for built-in classes that work with ManyToManyFields.
- record_change_entry(changedesc, old_value, new_value)[source]¶
Record information on the changed values in a ChangeDescription.
- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description to record the entry in.old_value (
object
) – The old value of the field.new_value (
object
) – The new value of the field.
- save_value(value)[source]¶
Save the value in the review request or draft.
- Parameters:
value (
object
) – The new value for the field.
- __annotations__ = {}¶
- class StatusField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseReviewRequestField
The Status field on a review request.
- get_change_entry_sections_html(info)[source]¶
Return sections of change entries with titles and rendered HTML.
Because the status field is specially handled, this just returns an empty list.
- __annotations__ = {}¶
- class SummaryField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseEditableField
The Summary field on a review request.
- js_view_class = 'RB.ReviewRequestFields.SummaryFieldView'[source]¶
The class name for the JavaScript view representing this field.
- __annotations__ = {}¶
- class DescriptionField(*args, **kwargs)[source]¶
Bases:
BuiltinTextAreaFieldMixin
,BaseTextAreaField
The Description field on a review request.
- js_view_class = 'RB.ReviewRequestFields.DescriptionFieldView'[source]¶
The class name for the JavaScript view representing this field.
- is_text_markdown(value)[source]¶
Return whether the description uses Markdown.
- Returns:
True if the description field should be formatted using Markdown.
- Return type:
- __annotations__ = {}¶
- class TestingDoneField(*args, **kwargs)[source]¶
Bases:
BuiltinTextAreaFieldMixin
,BaseTextAreaField
The Testing Done field on a review request.
- js_view_class = 'RB.ReviewRequestFields.TestingDoneFieldView'[source]¶
The class name for the JavaScript view representing this field.
- is_text_markdown(value)[source]¶
Return whether the description uses Markdown.
- Returns:
True if the description field should be formatted using Markdown.
- Return type:
- __annotations__ = {}¶
- class OwnerField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseEditableField
The Owner field on a review request.
- js_view_class = 'RB.ReviewRequestFields.OwnerFieldView'[source]¶
The class name for the JavaScript view representing this field.
- render_value(user)[source]¶
Render the value in the field.
- Parameters:
user (
django.contrib.auth.models.User
) – The value to render.- Returns:
The rendered value.
- Return type:
- record_change_entry(changedesc, old_value, new_value)[source]¶
Record information on the changed values in a ChangeDescription.
- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description to record the entry in.old_value (
object
) – The old value of the field.new_value (
object
) – The new value of the field.
- render_change_entry_value_html(info, item)[source]¶
Render the value for a change description string to HTML.
- serialize_change_entry(changedesc)[source]¶
Serialize a change entry for public consumption.
This will output a version of the change entry for use in the API. It can be the same content stored in the
ChangeDescription
, but does not need to be.- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description whose field is to be serialized.- Returns:
An appropriate serialization for the field.
- Return type:
- __annotations__ = {}¶
- class RepositoryField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseReviewRequestField
The Repository field on a review request.
- model[source]¶
alias of
Repository
- __annotations__ = {}¶
- class BranchField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseEditableField
The Branch field on a review request.
- js_view_class = 'RB.ReviewRequestFields.BranchFieldView'[source]¶
The class name for the JavaScript view representing this field.
- __annotations__ = {}¶
- class BugsField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseCommaEditableField
The Bugs field on a review request.
- js_view_class = 'RB.ReviewRequestFields.BugsFieldView'[source]¶
The class name for the JavaScript view representing this field.
- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The loaded value.
- Return type:
- save_value(value)[source]¶
Save the value in the review request or draft.
- Parameters:
value (
object
) – The new value for the field.
- __annotations__ = {}¶
- class DependsOnField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseModelListEditableField
The Depends On field on a review request.
- model[source]¶
alias of
ReviewRequest
- js_view_class = 'RB.ReviewRequestFields.DependsOnFieldView'[source]¶
The class name for the JavaScript view representing this field.
- __annotations__ = {}¶
- class BlocksField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseReviewRequestField
The Blocks field on a review request.
- model[source]¶
alias of
ReviewRequest
- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The loaded value.
- Return type:
- __annotations__ = {}¶
- class ChangeField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseReviewRequestField
The Change field on a review request.
This is shown for repositories supporting changesets. The change number is similar to a commit ID, with the exception that it’s only ever stored on the ReviewRequest and never changes.
If both
changenum
andcommit_id
are provided on the review request, only this field will be shown, as both are likely to have values.- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The loaded value.
- Return type:
- __annotations__ = {}¶
- class CommitField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseReviewRequestField
The Commit field on a review request.
This displays the ID of the commit the review request is representing.
Since the
commit_id
andchangenum
fields are both populated, we let ChangeField take precedence. It knows how to render information based on a changeset ID.- __annotations__ = {}¶
- class DiffField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
ReviewRequestPageDataMixin
,BuiltinFieldMixin
,BaseReviewRequestField
Represents a newly uploaded diff on a review request.
This is not shown as an actual displayable field on the review request itself. Instead, it is used only during the ChangeDescription population and processing steps.
- render_change_entry_html(info)[source]¶
Render a change entry to HTML.
This function is expected to return safe, valid HTML. Any values coming from a field or any other form of user input must be properly escaped.
- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
reviewboard.reviews.models.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The loaded value.
- Return type:
- save_value(value)[source]¶
Save the value in the review request or draft.
- Parameters:
value (
object
) – The new value for the field.
- record_change_entry(changedesc, unused, diffset)[source]¶
Record information on the changed values in a ChangeDescription.
- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description to record the entry in.old_value (
object
) – The old value of the field.new_value (
object
) – The new value of the field.
- serialize_change_entry(changedesc)[source]¶
Serialize a change entry for public consumption.
This will output a version of the change entry for use in the API. It can be the same content stored in the
ChangeDescription
, but does not need to be.- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description whose field is to be serialized.- Returns:
An appropriate serialization for the field.
- Return type:
- __annotations__ = {}¶
- class FileAttachmentCaptionsField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
BaseCaptionsField
Renders caption changes for file attachments.
This is not shown as an actual displayable field on the review request itself. Instead, it is used only during the ChangeDescription rendering stage. It is not, however, used for populating entries in ChangeDescription.
- model[source]¶
alias of
FileAttachment
- __annotations__ = {}¶
- class FileAttachmentsField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
ReviewRequestPageDataMixin
,BuiltinFieldMixin
,BaseCommaEditableField
Renders removed or added file attachments.
This is not shown as an actual displayable field on the review request itself. Instead, it is used only during the ChangeDescription rendering stage. It is not, however, used for populating entries in ChangeDescription.
- model[source]¶
alias of
FileAttachment
- get_change_entry_sections_html(info)[source]¶
Return sections of change entries with titles and rendered HTML.
- render_change_entry_html(values)[source]¶
Render a change entry to HTML.
This function is expected to return safe, valid HTML. Any values coming from a field or any other form of user input must be properly escaped.
- Parameters:
info (
list
) – A list of the changed file attachments. Each item is a 3-tuple containing thecaption
,filename
, and thepk
of the file attachment in the database.- Returns:
The HTML representation of the change entry.
- Return type:
django.utils.safestring.SafeText
- get_attachment_js_model_attrs(attachment: FileAttachment, draft: bool = False) Dict[str, Any] [source]¶
Return attributes for the RB.FileAttachment JavaScript model.
This will determine the right attributes to pass to an instance of
RB.FileAttachment()
, based on the provided file attachment.- Parameters:
attachment (
reviewboard.attachments.models.FileAttachment
) – The file attachment to return attributes for.draft (
bool
, optional) – Whether to return attributes for a draft version of the file attachment.
- Returns:
The resulting model attributes.
- Return type:
- __annotations__ = {}¶
- class ScreenshotCaptionsField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
BaseCaptionsField
Renders caption changes for screenshots.
This is not shown as an actual displayable field on the review request itself. Instead, it is used only during the ChangeDescription rendering stage. It is not, however, used for populating entries in ChangeDescription.
- model[source]¶
alias of
Screenshot
- __annotations__ = {}¶
- class ScreenshotsField(review_request_details, request=None)[source]¶
Bases:
BaseCommaEditableField
Renders removed or added screenshots.
This is not shown as an actual displayable field on the review request itself. Instead, it is used only during the ChangeDescription rendering stage. It is not, however, used for populating entries in ChangeDescription.
- model[source]¶
alias of
Screenshot
- __annotations__ = {}¶
- class TargetGroupsField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseModelListEditableField
The Target Groups field on a review request.
- js_view_class = 'RB.ReviewRequestFields.TargetGroupsFieldView'[source]¶
The class name for the JavaScript view representing this field.
- __annotations__ = {}¶
- class TargetPeopleField(*args, **kwargs)[source]¶
Bases:
BuiltinFieldMixin
,BaseModelListEditableField
The Target People field on a review request.
- js_view_class = 'RB.ReviewRequestFields.TargetPeopleFieldView'[source]¶
The class name for the JavaScript view representing this field.
- __annotations__ = {}¶
- class CommitListField(review_request_details, data=None, *args, **kwargs)[source]¶
Bases:
ReviewRequestPageDataMixin
,BaseReviewRequestField
The list of commits for a review request.
- js_view_class = 'RB.ReviewRequestFields.CommitListFieldView'[source]¶
The class name for the JavaScript view representing this field.
- review_request_created_with_history[source]¶
Whether the associated review request was created with history.
- property should_render[source]¶
Whether or not the field should be rendered.
This field will only be rendered when the review request was created with history support. It is also hidden on the diff viewer page, because it substantially overlaps with the commit selector.
- property can_record_change_entry[source]¶
Whether or not the field can record a change entry.
The field can only record a change entry when the review request has been created with history.
- load_value(review_request_details)[source]¶
Load a value from the review request or draft.
- Parameters:
review_request_details (
review_request_details.base_review_request_details.BaseReviewRequestDetails
) – The review request or draft.- Returns:
The DiffSet associated with the review request or draft.
- Return type:
- save_value(value)[source]¶
Save a value to the review request.
This is intentionally a no-op.
- Parameters:
value (
reviewboard.diffviewer.models.diffset.DiffSet
, unused) – The current DiffSet
- render_value(value)[source]¶
Render the field for the given value.
- Parameters:
value (
int
) – The diffset primary key.- Returns:
The rendered value.
- Return type:
django.utils.safestring.SafeText
- has_value_changed(old_value, new_value)[source]¶
Return whether or not the value has changed.
- Parameters:
old_value (
reviewboard.diffviewer.models.diffset.DiffSet
) – The primary key of theDiffSet
from the review_request.new_value (
reviewboard.diffviewer.models.diffset.DiffSet
) – The primary key of theDiffSet
from the draft.
- Returns:
Whether or not the value has changed.
- Return type:
- record_change_entry(changedesc, old_value, new_value)[source]¶
Record the old and new values for this field into the changedesc.
- Parameters:
changedesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description to record the change into.old_value (
reviewboard.diffviewer.models.diffset.DiffSet
) – The previousDiffSet
from the review request.new_value (
reviewboard.diffviewer.models.diffset.DiffSet
) – The newDiffSet
from the draft.
- render_change_entry_html(info)[source]¶
Render the change entry HTML for this field.
- Parameters:
info (
dict
) – The change entry info for this field. Seerecord_change_entry()
for the format.- Returns:
The rendered HTML.
- Return type:
django.utils.safestring.SafeText
- serialize_change_entry(changedesc)[source]¶
Serialize the changed field entry for the web API.
- Parameters:
changdesc (
reviewboard.changedescs.models.ChangeDescription
) – The change description being serialized.- Returns:
A JSON-serializable dictionary representing the change entry for this field.
- Return type:
- __annotations__ = {}¶
- class MainFieldSet(review_request_details, request=None)[source]¶
Bases:
BaseReviewRequestFieldSet
- fieldset_id = 'main'[source]¶
The ID of the fieldset.
This must be unique within the
field_registry
.- Type:
- field_classes = [<class 'reviewboard.reviews.builtin_fields.SummaryField'>, <class 'reviewboard.reviews.builtin_fields.DescriptionField'>, <class 'reviewboard.reviews.builtin_fields.TestingDoneField'>][source]¶
A list of fields that will by default be instantiated for the fieldset.
These would be set by subclasses to a list of
BaseReviewRequestField
subclasses.
- class ExtraFieldSet(review_request_details, request=None)[source]¶
Bases:
BaseReviewRequestFieldSet
A field set that is displayed after the main field set.
- fieldset_id = 'extra'[source]¶
The ID of the fieldset.
This must be unique within the
field_registry
.- Type:
- field_classes = [<class 'reviewboard.reviews.builtin_fields.CommitListField'>][source]¶
A list of fields that will by default be instantiated for the fieldset.
These would be set by subclasses to a list of
BaseReviewRequestField
subclasses.
- __annotations__ = {}¶
- class InformationFieldSet(review_request_details, request=None)[source]¶
Bases:
BaseReviewRequestFieldSet
- fieldset_id = 'info'[source]¶
The ID of the fieldset.
This must be unique within the
field_registry
.- Type:
- field_classes = [<class 'reviewboard.reviews.builtin_fields.OwnerField'>, <class 'reviewboard.reviews.builtin_fields.RepositoryField'>, <class 'reviewboard.reviews.builtin_fields.BranchField'>, <class 'reviewboard.reviews.builtin_fields.BugsField'>, <class 'reviewboard.reviews.builtin_fields.DependsOnField'>, <class 'reviewboard.reviews.builtin_fields.BlocksField'>, <class 'reviewboard.reviews.builtin_fields.ChangeField'>, <class 'reviewboard.reviews.builtin_fields.CommitField'>][source]¶
A list of fields that will by default be instantiated for the fieldset.
These would be set by subclasses to a list of
BaseReviewRequestField
subclasses.
- __annotations__ = {}¶
- class ReviewersFieldSet(review_request_details, request=None)[source]¶
Bases:
BaseReviewRequestFieldSet
- fieldset_id = 'reviewers'[source]¶
The ID of the fieldset.
This must be unique within the
field_registry
.- Type:
- show_required = True[source]¶
Whether to show this fieldset as required.
If set, the fieldset will show as required if the user is able to modify the review request.
- Type:
- field_classes = [<class 'reviewboard.reviews.builtin_fields.TargetGroupsField'>, <class 'reviewboard.reviews.builtin_fields.TargetPeopleField'>][source]¶
A list of fields that will by default be instantiated for the fieldset.
These would be set by subclasses to a list of
BaseReviewRequestField
subclasses.
- __annotations__ = {}¶
- class ChangeEntryOnlyFieldSet(review_request_details, request=None)[source]¶
Bases:
BaseReviewRequestFieldSet
- fieldset_id = '_change_entries_only'[source]¶
The ID of the fieldset.
This must be unique within the
field_registry
.- Type:
- field_classes = [<class 'reviewboard.reviews.builtin_fields.DiffField'>, <class 'reviewboard.reviews.builtin_fields.FileAttachmentCaptionsField'>, <class 'reviewboard.reviews.builtin_fields.ScreenshotCaptionsField'>, <class 'reviewboard.reviews.builtin_fields.FileAttachmentsField'>, <class 'reviewboard.reviews.builtin_fields.ScreenshotsField'>, <class 'reviewboard.reviews.builtin_fields.StatusField'>][source]¶
A list of fields that will by default be instantiated for the fieldset.
These would be set by subclasses to a list of
BaseReviewRequestField
subclasses.
- __annotations__ = {}¶