diff --git a/browser/action.py b/browser/action.py index 4bf3106..7271ebc 100644 --- a/browser/action.py +++ b/browser/action.py @@ -19,7 +19,7 @@ """ Base classes (sort of views) for action portlet items. -$Id$ +$Id: action.py 2313 2008-01-15 13:00:34Z helmutm $ """ from urllib import urlencode @@ -68,8 +68,9 @@ class DialogAction(Action): if self.fixedType: urlParams['fixed_type'] = 'yes' urlParams.update(self.addParams) - return self.jsOnClick % (self.dialogName, self.page.virtualTargetUrl, - self.viewName, urlencode(urlParams)) + url = self.page.virtualTargetUrlWithSkin + return self.jsOnClick % (self.dialogName, url, self.viewName, + urlencode(urlParams)) @Lazy def innerHtmlId(self): diff --git a/browser/form.py b/browser/form.py index e5bf62b..91336eb 100644 --- a/browser/form.py +++ b/browser/form.py @@ -225,6 +225,7 @@ class CreateObjectForm(ObjectForm): def macro(self): return self.template.macros['create'] defaultTitle = u'Create Resource, Type = ' + defaultType = '.loops/concepts/textdocument' form_action = 'create_resource' dialog_name = 'create' diff --git a/browser/form_macros.pt b/browser/form_macros.pt index 5779aba..345cc9e 100644 --- a/browser/form_macros.pt +++ b/browser/form_macros.pt @@ -68,7 +68,7 @@ tal:define="qualifier request/qualifier | string:resource; innerForm request/inner_form | string:inner_form.html; typeToken python: request.get('form.type') - or '.loops/concepts/textdocument'; + or view.defaultType; fixedType request/fixed_type | nothing"> diff --git a/browser/node.py b/browser/node.py index 19ac927..9603cd1 100644 --- a/browser/node.py +++ b/browser/node.py @@ -22,6 +22,7 @@ View class for Node objects. $Id$ """ +from urlparse import urlparse, urlunparse from zope import component, interface, schema from zope.cachedescriptors.property import Lazy from zope.app import zapi @@ -343,6 +344,16 @@ class NodeView(BaseView): else: return self.url + @Lazy + def virtualTargetUrlWithSkin(self): + url = self.virtualTargetUrl + if self.skin: + parts = urlparse(url) + url = urlunparse(parts[:2] + + ('/++skin++' + self.skin.__name__ + parts[2],) + + parts[3:]) + return url + @Lazy def realTargetUrl(self): target = self.virtualTargetObject