Jump to >

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.

__init__(*args, **kwargs)[source]

Initialize the field.

Parameters:
  • *args (tuple) – Positional arguments to pass through to the superclass.
  • **kwargs (dict) – Keyword arguments to pass through to the superclass.
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:object
save_value(value)[source]

Save the value in the review request or draft.

Parameters:value (object) – The new value for the field.
class BuiltinTextAreaFieldMixin(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.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:dict
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.

should_render = False[source]

Whether the field should be rendered.

__init__(review_request_details, data=None, *args, **kwargs)[source]

Initialize the mixin.

Parameters:
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:object
record_change_entry(changedesc, old_value, new_value)[source]

Record information on the changed values in a ChangeDescription.

Parameters:
class BaseCaptionsField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.ReviewRequestPageDataMixin, reviewboard.reviews.fields.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.

obj_map_attr = None[source]
caption_object_field = None[source]
change_entry_renders_inline = False[source]
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.

Parameters:info (dict) – A dictionary describing how the field has changed. This is guaranteed to have new and old keys, but may also contain added and removed keys as well.
Returns:The HTML representation of the change entry.
Return type:unicode
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:list
class BaseModelListEditableField(review_request_details, request=None)[source]

Bases: reviewboard.reviews.fields.BaseCommaEditableField

Base class for editable comma-separated list of model instances.

This is used for built-in classes that work with ManyToManyFields.

model_name_attr = None[source]
has_value_changed(old_value, new_value)[source]

Return whether the value has changed.

Parameters:
  • old_value (object) – The old value of the field.
  • new_value (object) – The new value of the field.
Returns:

Whether the value of the field has changed.

Return type:

bool

record_change_entry(changedesc, old_value, new_value)[source]

Record information on the changed values in a ChangeDescription.

Parameters:
render_change_entry_item_html(info, item)[source]

Render an item for change description HTML.

Parameters:
  • info (dict) – A dictionary describing how the field has changed.
  • item (object) – The value of the item.
Returns:

The rendered change entry.

Return type:

unicode

save_value(value)[source]

Save the value in the review request or draft.

Parameters:value (object) – The new value for the field.
class StatusField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseReviewRequestField

The Status field on a review request.

field_id = u'status'[source]
label = u'Status'[source]
is_required = True[source]
should_render = False[source]

Whether the field should be rendered.

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.

class SummaryField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseEditableField

The Summary field on a review request.

field_id = u'summary'[source]
label = u'Summary'[source]
is_required = True[source]
tag_name = u'h1'[source]
js_view_class = u'RB.ReviewRequestFields.SummaryFieldView'[source]

The class name for the JavaScript view representing this field.

class DescriptionField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinTextAreaFieldMixin, reviewboard.reviews.fields.BaseTextAreaField

The Description field on a review request.

field_id = u'description'[source]
label = u'Description'[source]
is_required = True[source]
js_view_class = u'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:bool
class TestingDoneField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinTextAreaFieldMixin, reviewboard.reviews.fields.BaseTextAreaField

The Testing Done field on a review request.

field_id = u'testing_done'[source]
label = u'Testing Done'[source]
js_view_class = u'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:bool
class OwnerField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseEditableField

The Owner field on a review request.

field_id = u'submitter'[source]
label = u'Owner'[source]
model[source]

alias of django.contrib.auth.models.User

model_name_attr = u'username'[source]
is_required = True[source]
js_view_class = u'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:unicode
record_change_entry(changedesc, old_value, new_value)[source]

Record information on the changed values in a ChangeDescription.

Parameters:
render_change_entry_value_html(info, item)[source]

Render the value for a change description string to HTML.

Parameters:
  • info (dict) – A dictionary describing how the field has changed.
  • item (object) – The value of the field.
Returns:

The rendered change entry.

Return type:

unicode

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:dict
class RepositoryField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseReviewRequestField

The Repository field on a review request.

field_id = u'repository'[source]
label = u'Repository'[source]
model[source]

alias of reviewboard.scmtools.models.Repository

should_render[source]

Whether the field should be rendered.

class BranchField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseEditableField

The Branch field on a review request.

field_id = u'branch'[source]
label = u'Branch'[source]
js_view_class = u'RB.ReviewRequestFields.BranchFieldView'[source]

The class name for the JavaScript view representing this field.

class BugsField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseCommaEditableField

The Bugs field on a review request.

field_id = u'bugs_closed'[source]
label = u'Bugs'[source]
one_line_per_change_entry = False[source]
js_view_class = u'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:object
save_value(value)[source]

Save the value in the review request or draft.

Parameters:value (object) – The new value for the field.
render_item(bug_id)[source]

Render an item from the list.

Parameters:item (object) – The item to render.
Returns:The rendered item.
Return type:unicode
render_change_entry_item_html(info, item)[source]

Render an item for change description HTML.

Parameters:
  • info (dict) – A dictionary describing how the field has changed.
  • item (object) – The value of the item.
Returns:

The rendered change entry.

Return type:

unicode

class DependsOnField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.builtin_fields.BaseModelListEditableField

The Depends On field on a review request.

field_id = u'depends_on'[source]
label = u'Depends On'[source]
model[source]

alias of reviewboard.reviews.models.review_request.ReviewRequest

model_name_attr = u'summary'[source]
js_view_class = u'RB.ReviewRequestFields.DependsOnFieldView'[source]

The class name for the JavaScript view representing this field.

render_change_entry_item_html(info, item)[source]

Render an item for change description HTML.

Parameters:
  • info (dict) – A dictionary describing how the field has changed.
  • item (object) – The value of the item.
Returns:

The rendered change entry.

Return type:

unicode

render_item(item)[source]

Render an item from the list.

Parameters:item (object) – The item to render.
Returns:The rendered item.
Return type:unicode
class BlocksField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseReviewRequestField

The Blocks field on a review request.

field_id = u'blocks'[source]
label = u'Blocks'[source]
model[source]

alias of reviewboard.reviews.models.review_request.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:object
should_render[source]

Whether the field should be rendered.

render_value(blocks)[source]

Render the value in the field.

Parameters:blocks (list) – The value to render.
Returns:The rendered value.
Return type:unicode
class ChangeField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.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 and commit_id are provided on the review request, only this field will be shown, as both are likely to have values.

field_id = u'changenum'[source]
label = u'Change'[source]
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:object
should_render[source]

Whether the field should be rendered.

render_value(changenum)[source]

Render the value in the field.

Parameters:changenum (unicode) – The value to render.
Returns:The rendered value.
Return type:unicode
class CommitField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.BaseReviewRequestField

The Commit field on a review request.

This displays the ID of the commit the review request is representing.

Since the commit_id and changenum fields are both populated, we let ChangeField take precedence. It knows how to render information based on a changeset ID.

field_id = u'commit_id'[source]
label = u'Commit'[source]
can_record_change_entry = True[source]
tag_name = u'span'[source]
should_render[source]

Whether the field should be rendered.

render_value(commit_id)[source]

Render the value in the field.

Parameters:commit_id (unicode) – The value to render.
Returns:The rendered value.
Return type:unicode
class DiffField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.ReviewRequestPageDataMixin, reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.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.

field_id = u'diff'[source]
label = u'Diff'[source]
can_record_change_entry = True[source]
MAX_FILES_PREVIEW = 8[source]
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.

Parameters:info (dict) – A dictionary describing how the field has changed. This is guaranteed to have new and old keys, but may also contain added and removed keys as well.
Returns:The HTML representation of the change entry.
Return type:unicode
has_value_changed(old_value, new_value)[source]

Return whether the value has changed.

Parameters:
  • old_value (object) – The old value of the field.
  • new_value (object) – The new value of the field.
Returns:

Whether the value of the field has changed.

Return type:

bool

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:object
record_change_entry(changedesc, unused, diffset)[source]

Record information on the changed values in a ChangeDescription.

Parameters:
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:dict
class FileAttachmentCaptionsField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.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.

field_id = u'file_captions'[source]
label = u'File Captions'[source]
obj_map_attr = u'file_attachments_by_id'[source]
model[source]

alias of reviewboard.attachments.models.FileAttachment

caption_object_field = u'file_attachment'[source]
class FileAttachmentsField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.ReviewRequestPageDataMixin, reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.fields.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.

field_id = u'files'[source]
label = u'Files'[source]
model[source]

alias of reviewboard.attachments.models.FileAttachment

thumbnail_template = u'reviews/changedesc_file_attachment.html'[source]
get_change_entry_sections_html(info)[source]

Return sections of change entries with titles and rendered HTML.

Parameters:info (dict) – A dictionary describing how the field has changed. This is guaranteed to have new and old keys, but may also contain added and removed keys as well.
Returns:A list of the change entry sections.
Return type:list of dict
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 the caption, filename, and the pk 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, draft=False)[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:
Returns:

The resulting model attributes.

Return type:

dict

class ScreenshotCaptionsField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.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.

field_id = u'screenshot_captions'[source]
label = u'Screenshot Captions'[source]
obj_map_attr = u'screenshots_by_id'[source]
model[source]

alias of reviewboard.reviews.models.screenshot.Screenshot

caption_object_field = u'screenshot'[source]
class ScreenshotsField(review_request_details, request=None)[source]

Bases: reviewboard.reviews.fields.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.

field_id = u'screenshots'[source]
label = u'Screenshots'[source]
model[source]

alias of reviewboard.reviews.models.screenshot.Screenshot

class TargetGroupsField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.builtin_fields.BaseModelListEditableField

The Target Groups field on a review request.

field_id = u'target_groups'[source]
label = u'Groups'[source]
model[source]

alias of reviewboard.reviews.models.group.Group

model_name_attr = u'name'[source]
js_view_class = u'RB.ReviewRequestFields.TargetGroupsFieldView'[source]

The class name for the JavaScript view representing this field.

render_item(group)[source]

Render an item from the list.

Parameters:item (object) – The item to render.
Returns:The rendered item.
Return type:unicode
class TargetPeopleField(*args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.BuiltinFieldMixin, reviewboard.reviews.builtin_fields.BaseModelListEditableField

The Target People field on a review request.

field_id = u'target_people'[source]
label = u'People'[source]
model[source]

alias of django.contrib.auth.models.User

model_name_attr = u'username'[source]
js_view_class = u'RB.ReviewRequestFields.TargetPeopleFieldView'[source]

The class name for the JavaScript view representing this field.

render_item(user)[source]

Render an item from the list.

Parameters:item (object) – The item to render.
Returns:The rendered item.
Return type:unicode
class CommitListField(review_request_details, data=None, *args, **kwargs)[source]

Bases: reviewboard.reviews.builtin_fields.ReviewRequestPageDataMixin, reviewboard.reviews.fields.BaseReviewRequestField

The list of commits for a review request.

field_id = u'commit_list'[source]
label = u'Commits'[source]
is_editable = False[source]
js_view_class = u'RB.ReviewRequestFields.CommitListFieldView'[source]
review_request_created_with_history[source]

Whether the associated review request was created with history.

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.

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:reviewboard.diffviewer.models.diffset.DiffSet
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:
Returns:

Whether or not the value has changed.

Return type:

bool

record_change_entry(changedesc, old_value, new_value)[source]

Record the old and new values for this field into the changedesc.

Parameters:
render_change_entry_html(info)[source]

Render the change entry HTML for this field.

Parameters:info (dict) – The change entry info for this field. See record_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:dict
class MainFieldSet(review_request_details)[source]

Bases: reviewboard.reviews.fields.BaseReviewRequestFieldSet

fieldset_id = u'main'[source]
field_classes = [<class 'reviewboard.reviews.builtin_fields.SummaryField'>, <class 'reviewboard.reviews.builtin_fields.DescriptionField'>, <class 'reviewboard.reviews.builtin_fields.TestingDoneField'>][source]
class ExtraFieldSet(review_request_details)[source]

Bases: reviewboard.reviews.fields.BaseReviewRequestFieldSet

A field set that is displayed after the main field set.

fieldset_id = u'extra'[source]
field_classes = [<class 'reviewboard.reviews.builtin_fields.CommitListField'>][source]
class InformationFieldSet(review_request_details)[source]

Bases: reviewboard.reviews.fields.BaseReviewRequestFieldSet

fieldset_id = u'info'[source]
label = u'Information'[source]
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]
class ReviewersFieldSet(review_request_details)[source]

Bases: reviewboard.reviews.fields.BaseReviewRequestFieldSet

fieldset_id = u'reviewers'[source]
label = u'Reviewers'[source]
show_required = True[source]
field_classes = [<class 'reviewboard.reviews.builtin_fields.TargetGroupsField'>, <class 'reviewboard.reviews.builtin_fields.TargetPeopleField'>][source]
class ChangeEntryOnlyFieldSet(review_request_details)[source]

Bases: reviewboard.reviews.fields.BaseReviewRequestFieldSet

fieldset_id = u'_change_entries_only'[source]
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]