diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 97e15f868..0182e1a93 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -327,7 +327,9 @@ class CircuitSwapTerminations(generic.ObjectEditView): # Circuit must have at least one termination to swap if not circuit.termination_a and not circuit.termination_z: - messages.error(request, _("No terminations have been defined for circuit {}.").format(circuit)) + messages.error(request, _( + "No terminations have been defined for circuit {circuit}." + ).format(circuit=circuit)) return redirect('circuits:circuit', pk=circuit.pk) return render(request, 'circuits/circuit_terminations_swap.html', { diff --git a/netbox/core/views.py b/netbox/core/views.py index 77a0f6343..ece59c835 100644 --- a/netbox/core/views.py +++ b/netbox/core/views.py @@ -76,7 +76,10 @@ class DataSourceSyncView(BaseObjectView): datasource = get_object_or_404(self.queryset, pk=pk) job = datasource.enqueue_sync_job(request) - messages.success(request, _("Queued job #{job_id} to sync {datasource}").format(job_id=job.pk, datasource=datasource)) + messages.success( + request, + _("Queued job #{job_id} to sync {datasource}").format(job_id=job.pk, datasource=datasource) + ) return redirect(datasource.get_absolute_url()) @@ -235,7 +238,7 @@ class ConfigRevisionRestoreView(ContentTypePermissionRequiredMixin, View): candidate_config = get_object_or_404(ConfigRevision, pk=pk) candidate_config.activate() - messages.success(request, _("Restored configuration revision #{pk}").format(pk=pk)) + messages.success(request, _("Restored configuration revision #{id}").format(id=pk)) return redirect(candidate_config.get_absolute_url()) @@ -379,9 +382,9 @@ class BackgroundTaskDeleteView(BaseRQView): # Remove job id from queue and delete the actual job queue.connection.lrem(queue.key, 0, job.id) job.delete() - messages.success(request, _('Deleted job {job_id}').format(job_id=job_id)) + messages.success(request, _('Job {id} has been deleted.').format(id=job_id)) else: - messages.error(request, _('Error deleting job: {error}').format(error=job.errors[0])) + messages.error(request, _('Error deleting job {id}: {error}').format(id=job_id, error=form.errors[0])) return redirect(reverse('core:background_queue_list')) @@ -394,13 +397,13 @@ class BackgroundTaskRequeueView(BaseRQView): try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: - raise Http404(_("Job {job_id} not found").format(job_id=job_id)) + raise Http404(_("Job {id} not found.").format(id=job_id)) queue_index = QUEUES_MAP[job.origin] queue = get_queue_by_index(queue_index) requeue_job(job_id, connection=queue.connection, serializer=queue.serializer) - messages.success(request, _('You have successfully requeued: {job_id}').format(job_id=job_id)) + messages.success(request, _('Job {id} has been re-enqueued.').format(id=job_id)) return redirect(reverse('core:background_task', args=[job_id])) @@ -412,7 +415,7 @@ class BackgroundTaskEnqueueView(BaseRQView): try: job = RQ_Job.fetch(job_id, connection=get_redis_connection(config['connection_config']),) except NoSuchJobError: - raise Http404(_("Job {job_id} not found").format(job_id=job_id)) + raise Http404(_("Job {id} not found.").format(id=job_id)) queue_index = QUEUES_MAP[job.origin] queue = get_queue_by_index(queue_index) @@ -435,7 +438,7 @@ class BackgroundTaskEnqueueView(BaseRQView): registry = ScheduledJobRegistry(queue.name, queue.connection) registry.remove(job) - messages.success(request, _('You have successfully enqueued: {job_id}').format(job_id=job_id)) + messages.success(request, _('Job {job_id} has been enqueued.').format(job_id=job_id)) return redirect(reverse('core:background_task', args=[job_id])) @@ -452,11 +455,11 @@ class BackgroundTaskStopView(BaseRQView): queue_index = QUEUES_MAP[job.origin] queue = get_queue_by_index(queue_index) - stopped, __ = stop_jobs(queue, job_id) - if len(stopped) == 1: - messages.success(request, _('You have successfully stopped {job_id}').format(job_id=job_id)) + stopped_jobs = stop_jobs(queue, job_id)[0] + if len(stopped_jobs) == 1: + messages.success(request, _('Job {id} has been stopped.').format(id=job_id)) else: - messages.error(request, _('Failed to stop {job_id}').format(job_id=job_id)) + messages.error(request, _('Failed to stop job {id}').format(id=job_id)) return redirect(reverse('core:background_task', args=[job_id])) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 757ffea82..bac88f5d1 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -2059,7 +2059,7 @@ class DeviceRenderConfigView(generic.ObjectView): try: rendered_config = config_template.render(context=context_data) except TemplateError as e: - messages.error(request, _("An error occurred while rendering the template: {e}").format(e=e)) + messages.error(request, _("An error occurred while rendering the template: {error}").format(error=e)) rendered_config = traceback.format_exc() return { @@ -2823,7 +2823,13 @@ class DeviceBayPopulateView(generic.ObjectEditView): device_bay.snapshot() device_bay.installed_device = form.cleaned_data['installed_device'] device_bay.save() - messages.success(request, _("Added {} to {}.").format(device_bay.installed_device, device_bay)) + messages.success( + request, + _("Installed device {device} in bay {device_bay}.").format( + device=device_bay.installed_device, + device_bay=device_bay + ) + ) return_url = self.get_return_url(request) return redirect(return_url) @@ -2858,7 +2864,13 @@ class DeviceBayDepopulateView(generic.ObjectEditView): removed_device = device_bay.installed_device device_bay.installed_device = None device_bay.save() - messages.success(request, _("{removed_device} has been removed from {device_bay}.").format(removed_device=removed_device, device_bay=device_bay)) + messages.success( + request, + _("Removed device {device} from bay {device_bay}.").format( + device=removed_device, + device_bay=device_bay + ) + ) return_url = self.get_return_url(request, device_bay.device) return redirect(return_url) @@ -3471,7 +3483,10 @@ class VirtualChassisRemoveMemberView(ObjectPermissionRequiredMixin, GetReturnURL # Protect master device from being removed virtual_chassis = VirtualChassis.objects.filter(master=device).first() if virtual_chassis is not None: - messages.error(request, _('Unable to remove master device {device} from the virtual chassis.').format(device=device)) + messages.error( + request, + _('Unable to remove master device {device} from the virtual chassis.').format(device=device) + ) return redirect(device.get_absolute_url()) if form.is_valid(): diff --git a/netbox/netbox/views/generic/bulk_views.py b/netbox/netbox/views/generic/bulk_views.py index 8e816f1a5..452d4936e 100644 --- a/netbox/netbox/views/generic/bulk_views.py +++ b/netbox/netbox/views/generic/bulk_views.py @@ -106,7 +106,13 @@ class ObjectListView(BaseMultiObjectView, ActionsMixin, TableMixin): try: return template.render_to_response(self.queryset) except Exception as e: - messages.error(request, _("There was an error rendering the selected export template ({template}): {e}").format(template=template.name, e=e)) + messages.error( + request, + _("There was an error rendering the selected export template ({template}): {error}").format( + template=template.name, + error=e + ) + ) # Strip the `export` param and redirect user to the filtered objects list query_params = request.GET.copy() query_params.pop('export') @@ -668,7 +674,10 @@ class BulkEditView(GetReturnURLMixin, BaseMultiObjectView): # Retrieve objects being edited table = self.table(self.queryset.filter(pk__in=pk_list), orderable=False) if not table.rows: - messages.warning(request, _("No {} were selected.").format(model._meta.verbose_name_plural)) + messages.warning( + request, + _("No {object_type} were selected.").format(object_type=model._meta.verbose_name_plural) + ) return redirect(self.get_return_url(request)) return render(request, self.template_name, { @@ -746,7 +755,13 @@ class BulkRenameView(GetReturnURLMixin, BaseMultiObjectView): raise PermissionsViolation model_name = self.queryset.model._meta.verbose_name_plural - messages.success(request, _("Renamed {len} {model_name}").format(len=len(selected_objects), model_name=model_name)) + messages.success( + request, + _("Renamed {count} {object_type}").format( + count=len(selected_objects), + object_type=model_name + ) + ) return redirect(self.get_return_url(request)) except (AbortRequest, PermissionsViolation) as e: @@ -838,7 +853,10 @@ class BulkDeleteView(GetReturnURLMixin, BaseMultiObjectView): messages.error(request, mark_safe(e.message)) return redirect(self.get_return_url(request)) - msg = _("Deleted {deleted_count} {name}".format(deleted_count=deleted_count, name=model._meta.verbose_name_plural)) + msg = _("Deleted {count} {object_type}").format( + count=deleted_count, + object_type=model._meta.verbose_name_plural + ) logger.info(msg) messages.success(request, msg) return redirect(self.get_return_url(request)) @@ -855,7 +873,10 @@ class BulkDeleteView(GetReturnURLMixin, BaseMultiObjectView): # Retrieve objects being deleted table = self.table(self.queryset.filter(pk__in=pk_list), orderable=False) if not table.rows: - messages.warning(request, _("No {} were selected for deletion.").format(model._meta.verbose_name_plural)) + messages.warning( + request, + _("No {object_type} were selected for deletion.").format(object_type=model._meta.verbose_name_plural) + ) return redirect(self.get_return_url(request)) return render(request, self.template_name, { @@ -900,7 +921,10 @@ class BulkComponentCreateView(GetReturnURLMixin, BaseMultiObjectView): selected_objects = self.parent_model.objects.filter(pk__in=pk_list) if not selected_objects: - messages.warning(request, _("No {} were selected.").format(self.parent_model._meta.verbose_name_plural)) + messages.warning( + request, + _("No {object_type} were selected.").format(object_type=self.parent_model._meta.verbose_name_plural) + ) return redirect(self.get_return_url(request)) table = self.table(selected_objects, orderable=False) diff --git a/netbox/netbox/views/generic/feature_views.py b/netbox/netbox/views/generic/feature_views.py index b61b7ad7c..2e9abbdc1 100644 --- a/netbox/netbox/views/generic/feature_views.py +++ b/netbox/netbox/views/generic/feature_views.py @@ -206,7 +206,10 @@ class ObjectSyncDataView(View): return redirect(obj.get_absolute_url()) obj.sync(save=True) - messages.success(request, _("Synchronized data for {name} {obj}.").format(name=model._meta.verbose_name, obj=obj)) + messages.success(request, _("Synchronized data for {name} {obj}.").format( + name=model._meta.verbose_name, + obj=obj + )) return redirect(obj.get_absolute_url()) diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index bfa912f9b..7346f6b0b 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -271,8 +271,9 @@ class ClusterAddDevicesView(generic.ObjectEditView): device.cluster = cluster device.save() - messages.success(request, _("Added {} devices to cluster {}").format( - len(device_pks), cluster + messages.success(request, _("Added {count} devices to cluster {cluster}").format( + count=len(device_pks), + cluster=cluster )) return redirect(cluster.get_absolute_url()) @@ -305,8 +306,9 @@ class ClusterRemoveDevicesView(generic.ObjectEditView): device.cluster = None device.save() - messages.success(request, _("Removed {} devices from cluster {}").format( - len(device_pks), cluster + messages.success(request, _("Removed {count} devices from cluster {cluster}").format( + count=len(device_pks), + cluster=cluster )) return redirect(cluster.get_absolute_url()) @@ -444,7 +446,7 @@ class VirtualMachineRenderConfigView(generic.ObjectView): try: rendered_config = config_template.render(context=context_data) except TemplateError as e: - messages.error(request, _("An error occurred while rendering the template: {e}").format(e=e)) + messages.error(request, _("An error occurred while rendering the template: {error}").format(error=e)) rendered_config = traceback.format_exc() return {