mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-08 08:38:16 -06:00
14731 use dataclasses
This commit is contained in:
parent
b79b3b67e2
commit
657b12cc3e
@ -28,6 +28,7 @@ class Plugin:
|
|||||||
slug: str = ''
|
slug: str = ''
|
||||||
config_name: str = ''
|
config_name: str = ''
|
||||||
name: str = ''
|
name: str = ''
|
||||||
|
title_long: str = ''
|
||||||
tag_line: str = ''
|
tag_line: str = ''
|
||||||
description_short: str = ''
|
description_short: str = ''
|
||||||
author: str = ''
|
author: str = ''
|
||||||
@ -46,21 +47,17 @@ def get_local_plugins(plugins):
|
|||||||
plugin_config: PluginConfig = plugin.config
|
plugin_config: PluginConfig = plugin.config
|
||||||
|
|
||||||
plugin_module = "{}.{}".format(plugin_config.__module__, plugin_config.__name__) # type: ignore
|
plugin_module = "{}.{}".format(plugin_config.__module__, plugin_config.__name__) # type: ignore
|
||||||
plugins[plugin_config.name] = {
|
plugins[plugin_config.name] = Plugin(
|
||||||
'slug': plugin_config.name,
|
slug=plugin_config.name,
|
||||||
'config_name': None,
|
name=plugin_config.verbose_name,
|
||||||
'name': plugin_config.verbose_name,
|
tag_line=plugin_config.description,
|
||||||
'tag_line': plugin_config.description,
|
description_short=plugin_config.description,
|
||||||
'description_short': plugin_config.description,
|
author=plugin_config.author or _('Unknown Author'),
|
||||||
'author': plugin_config.author or _('Unknown Author'),
|
is_local=True,
|
||||||
'created': None,
|
is_installed=True,
|
||||||
'updated': None,
|
is_certified=False,
|
||||||
'is_local': True,
|
is_community=False,
|
||||||
'is_installed': True,
|
)
|
||||||
'is_certified': False,
|
|
||||||
'is_community': False,
|
|
||||||
'versions': [],
|
|
||||||
}
|
|
||||||
|
|
||||||
return plugins
|
return plugins
|
||||||
|
|
||||||
@ -85,28 +82,42 @@ def get_catalog_plugins(plugins):
|
|||||||
for data in page['data']:
|
for data in page['data']:
|
||||||
|
|
||||||
versions = []
|
versions = []
|
||||||
versions.extend(data['release_recent_history'])
|
for version in data['release_recent_history']:
|
||||||
|
versions.append(
|
||||||
|
PluginVersion(
|
||||||
|
date=datetime_from_timestamp(version['date']),
|
||||||
|
version=version['version'],
|
||||||
|
netbox_min_version=version['netbox_min_version'],
|
||||||
|
netbox_max_version=version['netbox_max_version'],
|
||||||
|
has_model=version['has_model'],
|
||||||
|
is_certified=version['is_certified'],
|
||||||
|
is_feature=version['is_feature'],
|
||||||
|
is_integration=version['is_integration'],
|
||||||
|
is_netboxlabs_supported=version['is_netboxlabs_supported'],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
if data['slug'] in plugins:
|
if data['slug'] in plugins:
|
||||||
plugins[data['slug']]['is_local'] = False
|
plugins[data['slug']].is_local = False
|
||||||
plugins[data['slug']]['is_certified'] = data['release_latest']['is_certified']
|
plugins[data['slug']].is_certified = data['release_latest']['is_certified']
|
||||||
plugins[data['slug']]['description_short'] = data['description_short']
|
plugins[data['slug']].description_short = data['description_short']
|
||||||
else:
|
else:
|
||||||
plugins[data['slug']] = {
|
plugins[data['slug']] = Plugin(
|
||||||
'slug': data['slug'],
|
slug=data['slug'],
|
||||||
'config_name': data['config_name'],
|
config_name=data['config_name'],
|
||||||
'name': data['title_short'],
|
name=data['title_short'],
|
||||||
'title_long': data['title_long'],
|
title_long=data['title_long'],
|
||||||
'tag_line': data['tag_line'],
|
tag_line=data['tag_line'],
|
||||||
'description_short': data['description_short'],
|
description_short=data['description_short'],
|
||||||
'author': data['author']['name'] or _('Unknown Author'),
|
author=data['author']['name'] or _('Unknown Author'),
|
||||||
'created': datetime_from_timestamp(data['created_at']),
|
created=datetime_from_timestamp(data['created_at']),
|
||||||
'updated': datetime_from_timestamp(data['updated_at']),
|
updated=datetime_from_timestamp(data['updated_at']),
|
||||||
'is_local': False,
|
is_local=False,
|
||||||
'is_installed': False,
|
is_installed=False,
|
||||||
'is_certified': data['release_latest']['is_certified'],
|
is_certified=data['release_latest']['is_certified'],
|
||||||
'is_community': not data['release_latest']['is_certified'],
|
is_community=not data['release_latest']['is_certified'],
|
||||||
'versions': versions,
|
versions=versions,
|
||||||
}
|
)
|
||||||
|
|
||||||
return plugins
|
return plugins
|
||||||
|
|
||||||
|
@ -693,7 +693,7 @@ class PluginView(UserPassesTestMixin, View):
|
|||||||
plugins = get_plugins()
|
plugins = get_plugins()
|
||||||
plugin = plugins[name]
|
plugin = plugins[name]
|
||||||
|
|
||||||
table = PluginVersionTable(plugin['versions'], user=request.user)
|
table = PluginVersionTable(plugin.versions, user=request.user)
|
||||||
table.configure(request)
|
table.configure(request)
|
||||||
|
|
||||||
return render(request, 'core/plugin.html', {
|
return render(request, 'core/plugin.html', {
|
||||||
|
Loading…
Reference in New Issue
Block a user