Skip to content

Commit

Permalink
Added skeleton json config site
Browse files Browse the repository at this point in the history
  • Loading branch information
greghaynes committed Mar 7, 2010
1 parent 201f319 commit e0c7d2c
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/pyscripts/plugins/JSONAPI/admin/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
from xsbs.http.jsonapi import JsonAdminSite
from xsbs.settings import pluginNames, pluginSections, sectionOptions, setOption

try:
import json
except ImportError:
import simplejson as json

class ConfigPluginSite(JsonAdminSite):
def __init__(self, plugin_name):
self.plugin_name = plugin_name
def render_admin_JSON(self, request):
return json.dumps({
'plugin': self.plugin_name,
'sections': pluginSections(self.plugin_name)
})

class ConfigSectionSite(JsonAdminSite):
def __init__(self, plugin_name, section_name):
self.plugin_name = plugin_name
self.section_name = section_name
def render_admin_JSON(self, request):
return json.dumps({
'plugin': self.plugin_name,
'section': self.section_name,
'options': sectionOptions(self.plugin_name, self.section_name)
})

def init(site):
configSite = JsonAdminSite()
for name in pluginNames():
pluginConfigSite = ConfigPluginSite(name)
for section in pluginSections(name):
pluginConfigSite.putChild(section, ConfigSectionSite(name, section))
configSite.putChild(name, pluginConfigSite)
site.putChild('config', configSite)

0 comments on commit e0c7d2c

Please sign in to comment.