Skip to content

Commit

Permalink
Merge 43afe10 into a1f7735
Browse files Browse the repository at this point in the history
  • Loading branch information
nemesifier committed Apr 11, 2024
2 parents a1f7735 + 43afe10 commit c9a8c7a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 18 deletions.
12 changes: 2 additions & 10 deletions openwisp_monitoring/device/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,13 @@
from swapper import load_model

from openwisp_controller.config.admin import DeviceAdmin as BaseDeviceAdmin
from openwisp_controller.config.admin import DeviceResource as BaseDeviceResource
from openwisp_users.multitenancy import MultitenantAdminMixin
from openwisp_utils.admin import ReadOnlyAdmin

from ..monitoring.admin import MetricAdmin
from ..settings import MONITORING_API_BASEURL, MONITORING_API_URLCONF
from . import settings as app_settings
from .exportable import _exportable_fields
from .exportable import DeviceMonitoringResource
from .filters import DeviceFilter, DeviceGroupFilter, DeviceOrganizationFilter

DeviceData = load_model('device_monitoring', 'DeviceData')
Expand Down Expand Up @@ -330,15 +329,8 @@ def get_inlines(self, request, obj=None):
return inlines


class DeviceResource(BaseDeviceResource):
class Meta:
model = Device
fields = _exportable_fields
export_order = fields


class DeviceAdminExportable(ImportExportMixin, DeviceAdmin):
resource_class = DeviceResource
resource_class = DeviceMonitoringResource
# Added to support both reversion and import-export
change_list_template = 'admin/config/change_list_device.html'

Expand Down
23 changes: 17 additions & 6 deletions openwisp_monitoring/device/exportable.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
from openwisp_controller.config.admin import DeviceResource as BaseDeviceResource
from import_export.fields import Field

from openwisp_controller.geo.exportable import GeoDeviceResource as BaseDeviceResource


class DeviceMonitoringResource(BaseDeviceResource):
monitoring_status = Field(
attribute='monitoring__status', column_name='monitoring_status', readonly=True
)

class Meta(BaseDeviceResource.Meta):
fields = BaseDeviceResource.Meta.fields[:] # copy
# add monitoring status to the exportable fields of DeviceAdmin
fields.insert(fields.index('config_status'), 'monitoring_status')
export_order = fields


# add monitoring status to the exportable fields of DeviceAdmin
# this list of field is defined here to facilitate integartion testing
# with other modules which may need to mock this before the admin is loaded
_exportable_fields = BaseDeviceResource.Meta.fields[:] # copy
_exportable_fields.insert(
_exportable_fields.index('config__status'), 'monitoring__status'
)
_exportable_fields = DeviceMonitoringResource.Meta.fields
2 changes: 1 addition & 1 deletion openwisp_monitoring/device/tests/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class TestAdmin(
"""

resources_fields = TestImportExportMixin.resource_fields
resources_fields.append('monitoring__status')
resources_fields.append('monitoring_status')
app_label = 'config'
_device_params = {
'group': '',
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
openwisp-controller @ https://github.com/openwisp/openwisp-controller/tarball/master
openwisp-controller @ https://github.com/openwisp/openwisp-controller/tarball/improve-export-devices
influxdb~=5.3.1
django-nested-admin~=4.0.2
netaddr~=0.8.0
Expand Down

0 comments on commit c9a8c7a

Please sign in to comment.