diff --git a/netbox/extras/forms/model_forms.py b/netbox/extras/forms/model_forms.py index cdaa1eafe..15d0cb218 100644 --- a/netbox/extras/forms/model_forms.py +++ b/netbox/extras/forms/model_forms.py @@ -26,7 +26,6 @@ __all__ = ( 'SavedFilterForm', 'TagForm', 'WebhookForm', - 'ReviewRequestForm', ) @@ -281,12 +280,3 @@ class JournalEntryForm(NetBoxModelForm): 'assigned_object_type': forms.HiddenInput, 'assigned_object_id': forms.HiddenInput, } - - -class ReviewRequestForm(BootstrapMixin, forms.ModelForm): - - class Meta: - model = ReviewRequest - fields = [ - 'status', 'state' - ] diff --git a/netbox/extras/models/staging.py b/netbox/extras/models/staging.py index 943f8ce67..a879ca3dc 100644 --- a/netbox/extras/models/staging.py +++ b/netbox/extras/models/staging.py @@ -17,6 +17,7 @@ __all__ = ( 'Branch', 'StagedChange', 'Notification', + 'ReviewRequest', ) logger = logging.getLogger('netbox.staging') @@ -45,7 +46,16 @@ class Branch(ChangeLoggedModel): ordering = ('name',) def __str__(self): - return f'{self.name} ({self.pk})' + models_changed = set() + for sc in self.staged_changes.all().exclude(object_type__model='objectchange'): + models_changed.add(sc.model_name) + models_changed = list(models_changed) + if len(models_changed) == 1: + return f'Changes on {models_changed[0]} by {self.user}' + else: + dots = '' if len(models_changed) <= 3 else '...' + changed = ', '.join(models_changed[:3]) + return f'Multiple changes on {changed}{dots} by {self.user}' def merge(self): logger.info(f'Merging changes in branch {self}') @@ -99,6 +109,18 @@ class StagedChange(ChangeLoggedModel): def model(self): return self.object_type.model_class() + @property + def model_name(self): + return self.object_type.name + + @property + def diff_added(self): + return getattr(self, '_diff_added', {}) + + @property + def diff_removed(self): + return getattr(self, '_diff_removed', {}) + def apply(self): """ Apply the staged create/update/delete action to the database. @@ -184,10 +206,10 @@ class ReviewRequest(ChangeLoggedModel): ) def __str__(self): - return f'[OwnerId: {self.owner.pk}, ReviewerId: {self.reviewer.id} {self.status}/{self.state}] {self.branch}' + return f'{self.branch}' def get_absolute_url(self): - return reverse('extras-api:review-requests-detail', args=[self.pk]) + return reverse('extras:reviewrequest', args=[self.pk]) class Meta: ordering = ('pk',) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index f9654c462..32c992a4f 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -946,9 +946,6 @@ class ReviewRequestEditView(generic.ObjectView): if sc.action == ChangeActionChoices.ACTION_CREATE: do = deserialize_object(sc.model(), sc.data) sc._diff_added = do.object - - print(sc.object_type.model) - data.append(sc) staged_change_table = tables.StagedChangeTable(