From cb6d8bf063ee3ccedc36eea8875d80edf2f50a36 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 26 Aug 2022 10:46:47 -0700 Subject: [PATCH 1/5] #10170 optimize change log queries --- netbox/extras/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 5b589c181..2653669a6 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -361,7 +361,7 @@ class ObjectConfigContextView(generic.ObjectView): # class ObjectChangeListView(generic.ObjectListView): - queryset = ObjectChange.objects.all() + queryset = ObjectChange.objects.all().select_related("user").prefetch_related("changed_object") filterset = filtersets.ObjectChangeFilterSet filterset_form = forms.ObjectChangeFilterForm table = tables.ObjectChangeTable From 249b8b0363e6328ee9e091b718ae98b15daef9ad Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 29 Aug 2022 12:20:51 -0700 Subject: [PATCH 2/5] #10170 changes from code review --- netbox/extras/tables/tables.py | 2 ++ netbox/extras/tables/template_code.py | 4 ++-- netbox/extras/views.py | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/netbox/extras/tables/tables.py b/netbox/extras/tables/tables.py index 2fa13f98a..8ac1f7865 100644 --- a/netbox/extras/tables/tables.py +++ b/netbox/extras/tables/tables.py @@ -183,6 +183,7 @@ class ObjectChangeTable(NetBoxTable): verbose_name='Username' ) full_name = tables.TemplateColumn( + accessor=tables.A('user'), template_code=OBJECTCHANGE_FULL_NAME, verbose_name='Full Name', orderable=False @@ -192,6 +193,7 @@ class ObjectChangeTable(NetBoxTable): verbose_name='Type' ) object_repr = tables.TemplateColumn( + accessor=tables.A('object_repr'), template_code=OBJECTCHANGE_OBJECT, verbose_name='Object' ) diff --git a/netbox/extras/tables/template_code.py b/netbox/extras/tables/template_code.py index 4eec85bdd..a848b6041 100644 --- a/netbox/extras/tables/template_code.py +++ b/netbox/extras/tables/template_code.py @@ -13,8 +13,8 @@ OBJECTCHANGE_FULL_NAME = """ """ OBJECTCHANGE_OBJECT = """ -{% if record.changed_object and record.changed_object.get_absolute_url %} - {{ record.object_repr }} +{% if value.changed_object and value.changed_object.get_absolute_url %} + {{ record.object_repr }} {% else %} {{ record.object_repr }} {% endif %} diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 2653669a6..5b589c181 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -361,7 +361,7 @@ class ObjectConfigContextView(generic.ObjectView): # class ObjectChangeListView(generic.ObjectListView): - queryset = ObjectChange.objects.all().select_related("user").prefetch_related("changed_object") + queryset = ObjectChange.objects.all() filterset = filtersets.ObjectChangeFilterSet filterset_form = forms.ObjectChangeFilterForm table = tables.ObjectChangeTable From c12e545ccd6f16e4ef557b86311102b13a0d3fa6 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 29 Aug 2022 14:40:03 -0700 Subject: [PATCH 3/5] #101700 change csrf token access --- netbox/project-static/dist/config.js | 10 ++-------- netbox/project-static/dist/config.js.map | 4 ++-- netbox/project-static/dist/lldp.js | 10 ++-------- netbox/project-static/dist/lldp.js.map | 4 ++-- netbox/project-static/dist/netbox.js | 20 +++++++------------- netbox/project-static/dist/netbox.js.map | 4 ++-- netbox/project-static/dist/status.js | 10 ++-------- netbox/project-static/dist/status.js.map | 4 ++-- netbox/project-static/package.json | 1 - netbox/project-static/src/util.ts | 19 +++++-------------- netbox/project-static/yarn.lock | 5 ----- netbox/templates/base/base.html | 1 + 12 files changed, 27 insertions(+), 65 deletions(-) diff --git a/netbox/project-static/dist/config.js b/netbox/project-static/dist/config.js index 7cf3ccb30..2b360c5a2 100644 --- a/netbox/project-static/dist/config.js +++ b/netbox/project-static/dist/config.js @@ -1,5 +1,5 @@ -(()=>{var pr=Object.create;var le=Object.defineProperty,mr=Object.defineProperties,gr=Object.getOwnPropertyDescriptor,_r=Object.getOwnPropertyDescriptors,Er=Object.getOwnPropertyNames,mn=Object.getOwnPropertySymbols,vr=Object.getPrototypeOf,gn=Object.prototype.hasOwnProperty,yr=Object.prototype.propertyIsEnumerable;var _n=(i,t,e)=>t in i?le(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,O=(i,t)=>{for(var e in t||(t={}))gn.call(t,e)&&_n(i,e,t[e]);if(mn)for(var e of mn(t))yr.call(t,e)&&_n(i,e,t[e]);return i},Me=(i,t)=>mr(i,_r(t)),En=i=>le(i,"__esModule",{value:!0});var mt=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Tr=(i,t)=>{En(i);for(var e in t)le(i,e,{get:t[e],enumerable:!0})},br=(i,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Er(t))!gn.call(i,n)&&n!=="default"&&le(i,n,{get:()=>t[n],enumerable:!(e=gr(t,n))||e.enumerable});return i},vn=i=>br(En(le(i!=null?pr(vr(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i);var yi=(i,t,e)=>new Promise((n,o)=>{var r=u=>{try{l(e.next(u))}catch(p){o(p)}},s=u=>{try{l(e.throw(u))}catch(p){o(p)}},l=u=>u.done?n(u.value):Promise.resolve(u.value).then(r,s);l((e=e.apply(i,t)).next())});var en=mt((er,ai)=>{(function(i,t){typeof define=="function"&&define.amd?define(t):typeof ai=="object"&&ai.exports?ai.exports=t():i.EvEmitter=t()})(typeof window!="undefined"?window:er,function(){"use strict";function i(){}var t=i.prototype;return t.on=function(e,n){if(!(!e||!n)){var o=this._events=this._events||{},r=o[e]=o[e]||[];return r.indexOf(n)==-1&&r.push(n),this}},t.once=function(e,n){if(!(!e||!n)){this.on(e,n);var o=this._onceEvents=this._onceEvents||{},r=o[e]=o[e]||{};return r[n]=!0,this}},t.off=function(e,n){var o=this._events&&this._events[e];if(!(!o||!o.length)){var r=o.indexOf(n);return r!=-1&&o.splice(r,1),this}},t.emitEvent=function(e,n){var o=this._events&&this._events[e];if(!(!o||!o.length)){o=o.slice(0),n=n||[];for(var r=this._onceEvents&&this._onceEvents[e],s=0;s{(function(i,t){typeof define=="function"&&define.amd?define(t):typeof li=="object"&&li.exports?li.exports=t():i.getSize=t()})(window,function(){"use strict";function t(d){var y=parseFloat(d),E=d.indexOf("%")==-1&&!isNaN(y);return E&&y}function e(){}var n=typeof console=="undefined"?e:function(d){console.error(d)},o=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],r=o.length;function s(){for(var d={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},y=0;y