[commits] r132 - in selinux-site/trunk: selinux.policy/selinux/policy/profiles/default selinux.theme/selinux/theme selinux.theme/selinux/theme/profiles/default selinux.theme/selinux/theme/skins selinux.theme/selinux/theme/skins/selinux_images selinux.theme/selinux/theme/skins/selinux_styles selinux.theme/selinux/theme/skins/selinux_templates
tim at mail.se.linux.org
tim at mail.se.linux.org
Sön Nov 11 23:35:44 CET 2007
Author: tim
Date: 2007-11-11 23:35:43 +0100 (Sun, 11 Nov 2007)
New Revision: 132
Added:
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/busnet.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/datorsektionen.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/informatik.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/logo-ext.jpg
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/logo.jpg
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/plone.gif
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/rss.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/southpole.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/sverigekarta.png
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/teknikmejeriet.gif
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/base_properties.props
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/ploneCustom.css.dtml
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/getNotAddableTypes.py
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/global_cache_settings.pt
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt.metadata
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form_validate.vpy
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy.metadata
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt.metadata
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.pt
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl.metadata
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_index.pt
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy.metadata
Removed:
selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/
Modified:
selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/skins.xml
selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/skins.xml
Log:
Split up the image, styles and templates and scripts to three directories. The cause is mainly to allow a theme to include our templates but don't need to use our css.
Modified: selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/skins.xml
===================================================================
--- selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/skins.xml 2007-11-11 14:15:27 UTC (rev 131)
+++ selinux-site/trunk/selinux.policy/selinux/policy/profiles/default/skins.xml 2007-11-11 22:35:43 UTC (rev 132)
@@ -3,7 +3,9 @@
default_skin="SeLinux Theme">
<skin-path name="SeLinux Theme" based-on="Plone Default">
- <layer name="selinuxtheme" insert-after="custom"/>
+ <layer name="selinux_templates" insert-after="custom"/>
+ <layer name="selinux_images" insert-after="custom"/>
+ <layer name="selinux_styles" insert-after="custom"/>
</skin-path>
</object>
Modified: selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml 2007-11-11 14:15:27 UTC (rev 131)
+++ selinux-site/trunk/selinux.theme/selinux/theme/configure.zcml 2007-11-11 22:35:43 UTC (rev 132)
@@ -6,7 +6,9 @@
i18n_domain="plone">
<!-- register the selinuxtheme layer directory -->
- <cmf:registerDirectory name="selinuxtheme"/>
+ <cmf:registerDirectory name="selinux_images"/>
+ <cmf:registerDirectory name="selinux_templates"/>
+ <cmf:registerDirectory name="selinux_styles"/>
<genericsetup:registerProfile
name="selinux"
Modified: selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/skins.xml
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/skins.xml 2007-11-11 14:15:27 UTC (rev 131)
+++ selinux-site/trunk/selinux.theme/selinux/theme/profiles/default/skins.xml 2007-11-11 22:35:43 UTC (rev 132)
@@ -1,7 +1,11 @@
<?xml version="1.0"?>
<object name="portal_skins" meta_type="Plone Skins Tool">
- <object name="selinuxtheme" meta_type="Filesystem Directory View"
- directory="selinux.theme:skins/selinuxtheme"/>
+ <object name="selinux_images" meta_type="Filesystem Directory View"
+ directory="selinux.theme:skins/selinux_images"/>
+ <object name="selinux_styles" meta_type="Filesystem Directory View"
+ directory="selinux.theme:skins/selinux_styles"/>
+ <object name="selinux_templates" meta_type="Filesystem Directory View"
+ directory="selinux.theme:skins/selinux_templates"/>
</object>
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/busnet.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/busnet.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/datorsektionen.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/datorsektionen.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/informatik.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/informatik.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/logo-ext.jpg (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/logo-ext.jpg)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/logo.jpg (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/logo.jpg)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/plone.gif (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/plone.gif)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/rss.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/rss.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/southpole.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/southpole.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/sverigekarta.png (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/sverigekarta.png)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_images/teknikmejeriet.gif (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/teknikmejeriet.gif)
===================================================================
(Binary files differ)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/base_properties.props (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/base_properties.props)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/base_properties.props (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/base_properties.props 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,48 @@
+title:string=Plone's color, font, logo and border defaults
+
+plone_skin:string=Plone Default
+
+logoName:string=logo.jpg
+logoColor:string=#5890bf
+
+fontFamily:string="Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif
+fontBaseSize:string=69%
+fontColor:string=Black
+fontSmallSize:string=90%
+
+backgroundColor:string=White
+
+linkColor:string=#406585
+linkActiveColor:string=Red
+linkVisitedColor:string=Purple
+
+borderWidth:string=1px
+borderStyle:string=solid
+borderStyleAnnotations:string=solid
+
+globalBorderColor:string=#5890bf
+globalBackgroundColor:string=#c8dff3
+globalFontColor:string=#436976
+
+headingFontFamily:string="Lucida Grande", Verdana, Lucida, Helvetica, Arial, sans-serif
+
+contentViewBorderColor:string=#eeb909
+contentViewBackgroundColor:string=#ffdf77
+contentViewFontColor:string=#326188
+
+inputFontColor:string=Black
+
+textTransform:string=none
+
+evenRowBackgroundColor:string=#eef3f5
+oddRowBackgroundColor:string=transparent
+
+notifyBorderColor:string=#ffa500
+notifyBackgroundColor:string=#ffce7b
+
+discreetColor:string=#76797c
+helpBackgroundColor:string=#ffffe1
+
+portalMinWidth:string=70em
+columnOneWidth:string=16em
+columnTwoWidth:string=16em
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/ploneCustom.css.dtml (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/ploneCustom.css.dtml)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/ploneCustom.css.dtml (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_styles/ploneCustom.css.dtml 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,153 @@
+/*
+ * This is the file where you put your CSS changes.
+ * You should preferrably use this and override the
+ * relevant properties you want to change here instead
+ * of customizing plone.css to survive upgrades. Writing
+ * your own plone.css only makes sense for very heavy
+ * customizations. Useful variables from Plone are
+ * documented at the bottom of this file.
+ */
+
+/* <dtml-with base_properties> (do not remove this :) */
+/* <dtml-call "REQUEST.set('portal_url', portal_url())"> (not this either :) */
+
+/* header */
+
+#portal-header {
+ margin: 0pt;
+}
+
+#portal-logo {
+ background: url(&dtml-portal_url;/logo.jpg) no-repeat;
+ display: block;
+ height: 129px;
+ width: 60%;
+}
+
+body {
+ background: url(&dtml-portal_url;/logo-ext.jpg) repeat-x;
+}
+
+#portal-title {
+ position: absolute;
+ top: 47px;
+ left: 305px;
+ font-size: 3em;
+ color: &dtml-logoColor;;
+ text-decoration: none;
+}
+
+#portal-siteactions li a {
+ border: none;
+ color: white;
+}
+
+#portal-siteactions li a:hover {
+ border: none;
+}
+
+#portal-globalnav li a {
+ font-size: 110%;
+ font-weight: bold;
+}
+
+#frontpageLinks dl {
+ float: left;
+ width: 30%;
+ margin-top: 0em;
+ text-align: center;
+}
+
+#frontpageLinks dt {
+ font-size: 12pt;
+}
+
+#frontpageLinks dd {
+ text-align: center;
+ margin-left: 0em;
+}
+
+/*
+.newsbox {
+ width: 40em;
+}
+*/
+
+/* </dtml-with> */
+
+/* DOCUMENTATION ON PRE-DEFINED PROPERTIES FROM PLONE */
+
+ /* You can insert colors and other variables from Plone's
+ base_properties by doing:
+
+ & dtml-variableName ; (without the spaces, excluded here to not make it render)
+
+ Example:
+
+ myLink {
+ color: & dtml-fontColor ; (again, without the spaces)
+ }
+
+ This means you can generate your own elements that use Plone's defaults,
+ and respect any customizations people have done. See base_properties for
+ the default values.
+
+ These are the available properties:
+
+ logoName - the file name of the portal logo
+
+ fontFamily - the font family used for all text that is not headers
+
+ fontBaseSize - the base font size that everything is calculated from
+
+ fontColor - the main font color
+
+ fontSmallSize - used for various elements like buttons and discreet text
+
+ discreetColor - the font color of discreet text
+
+ backgroundColor - the background color
+
+ linkColor - the color used on normal links
+
+ linkActiveColor - color used on active links
+
+ linkVisitedColor - color used on visited links
+
+ borderWidth - the width of most borders in Plone
+
+ borderStyle - the style of the border lines, normally solid
+
+ borderStyleAnnotations - style of border lines on comments etc
+
+ globalBorderColor - the border color used on the main tabs, the portlets etc
+
+ globalBackgroundColor - background color for the selected tabs, portlet headings etc
+
+ globalFontColor - the color of the font in the tabs and in portlet headings
+
+ headingFontFamily - font family for h1/h2/h3/h4/h5/h6 headlines
+
+ contentViewBorderColor - the content view tabs border color
+
+ contentViewBackgroundColor - the content view tabs background color
+
+ contentViewFontColor - the font color used in the content view tabs
+
+ inputFontColor - the font color used for input elements
+
+ textTransform - whether to lowercase text in portlets, tabs etc.
+
+ evenRowBackgroundColor - the background color of even rows in listings
+
+ oddRowBackgroundColor - the background color of even rows in listings
+
+ notifyBorderColor - border color of notification elements like the status message, the calendar focus
+
+ notifyBackgroundColor - background color of notification elements like the status message, the calendar focus
+
+ helpBackgroundColor - background color of information pop-ups (currently not used)
+
+ */
+
+
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/getNotAddableTypes.py (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/getNotAddableTypes.py)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/getNotAddableTypes.py (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/getNotAddableTypes.py 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,21 @@
+## Script (Python) "getNotAddableTypes"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind subpath=traverse_subpath
+##parameters=
+##title=
+##
+# customize this script to filter addable portal types based on
+# context, the current user or other criteria
+
+disallow = ['Favorite']
+
+if context.getId() != 'nyheter':
+ disallow.append('News Item')
+
+if context.getId() != 'handelser':
+ disallow.append('Event')
+
+return disallow
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/global_cache_settings.pt (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/global_cache_settings.pt)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/global_cache_settings.pt (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/global_cache_settings.pt 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,10 @@
+<metal:cacheheaders define-macro="cacheheaders">
+ <metal:block tal:define="dummy python:request.RESPONSE.setHeader('Content-Type', 'text/html;;charset=%s' % charset)" />
+ <metal:block tal:define="dummy python:request.RESPONSE.setHeader('Content-Language', lang)" />
+ <metal:block tal:define="dummy python:request.RESPONSE.setHeader('Expires', 'Sat, 1 Jan 2000 00:00:00 GMT')" />
+ <metal:block tal:content="structure python:here.enableHTTPCompression(request=request, debug=0)" />
+
+ <metal:anon tal:condition="python: isAnon and context.portal_type == 'Plone Site'">
+ <metal:block tal:define="dummy python:request.RESPONSE.setHeader('Cache-control', 's-maxage=3600')" />
+ </metal:anon>
+</metal:cacheheaders>
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,316 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ lang="en"
+ metal:use-macro="here/main_template/macros/master"
+ i18n:domain="plone">
+
+<head>
+ <metal:block fill-slot="top_slot"
+ tal:define="dummy python:request.set('disable_border',1)" />
+ <metal:block fill-slot="column_one_slot" />
+ <metal:block fill-slot="column_two_slot" />
+</head>
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="errors options/state/getErrors;">
+
+ <h1 class="documentFirstHeading"
+ i18n:translate="heading_registration_form">Registration Form</h1>
+
+ <form action=""
+ class="enableAutoFocus"
+ method="post"
+ class="enableUnloadProtection"
+ tal:attributes="action template_id" >
+
+ <fieldset>
+
+ <legend i18n:translate="legend_personal_details">
+ Personal Details
+ </legend>
+
+ <input type="hidden" name="came_from" value=""
+ tal:condition="request/came_from|nothing"
+ tal:attributes="value request/came_from" />
+ <input type="hidden" name="last_visit:date" value="ZopeTime"
+ tal:attributes="value here/ZopeTime" />
+ <input type="hidden" name="prev_visit:date" value="ZopeTime"
+ tal:attributes="value here/ZopeTime" />
+ <input type="hidden" name="came_from_prefs" value=""
+ tal:attributes="value request/came_from_prefs|nothing" />
+
+ <div class="field"
+ tal:define="error errors/username| nothing;
+ username request/username | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="username"
+ i18n:translate="label_user_name">User Name</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div i18n:translate="help_user_name_creation_casesensitive"
+ class="formHelp">
+ Enter a user name, usually something like
+ 'jsmith'. No spaces or special characters.
+ Usernames and passwords are case sensitive,
+ make sure the caps lock key is not enabled.
+ This is the name used to log in.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="username"
+ id="username"
+ size="30"
+ value="username"
+ tal:attributes="value username;"
+ />
+ </div>
+
+ <div class="field"
+ tal:define="error errors/email | nothing;
+ email request/email | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="email"
+ i18n:translate="label_email">E-mail</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_email_creation">
+ Enter an email address. This is necessary in case the password
+ is lost. We respect your privacy, and will not give the address
+ away to any third parties or expose it anywhere.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="email"
+ id="email"
+ size="30"
+ tal:attributes="value email;"
+ />
+ </div>
+
+
+
+ <div class="row"
+ tal:define="error errors/givenname| nothing;
+ givenname request/givenname | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="givenname"
+ i18n:translate="label_givenname">Förnamn</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_givenname_creation">
+ Ange ditt förnamn.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="givenname"
+ id="givenname"
+ size="30"
+ value="givenname"
+ tal:attributes="value givenname;"
+ />
+
+ </div>
+
+ <div class="row"
+ tal:define="error errors/surname| nothing;
+ surname request/surname | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="surname"
+ i18n:translate="label_surname">Efternamn</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_surname_creation">
+ Ange ditt efternamn.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="surname"
+ id="surname"
+ size="30"
+ value="surname"
+ tal:attributes="value surname;"
+ />
+ </div>
+
+ <div class="row"
+ tal:define="error errors/postdress| nothing;
+ postadress request/postadress | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="postadress"
+ i18n:translate="label_postadress">Adress</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_postadress_creation">
+ Ange din adress.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="postadress"
+ id="postadress"
+ size="30"
+ value="postadress"
+ tal:attributes="value postadress;"
+ />
+ </div>
+
+ <div class="row"
+ tal:define="error errors/postnr| nothing;
+ postnr request/postnr | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="postnr"
+ i18n:translate="label_postnr">Postnummer</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_postnr_creation">
+ Skriv in ditt postnummer här.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="postnr"
+ id="postnr"
+ size="30"
+ value="postnr"
+ tal:attributes="value postnr;"
+ />
+ </div>
+
+ <div class="row"
+ tal:define="error errors/location| nothing;
+ location request/location | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="location"
+ i18n:translate="label_location">Ort</label>
+
+ <span class="fieldRequired" title="Required"
+ i18n:attributes="title title_required;"
+ i18n:translate="label_required">(Required)</span>
+
+ <div class="formHelp" i18n:translate="help_location_creation">
+ Ange din postort.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="location"
+ id="location"
+ size="30"
+ value="location"
+ tal:attributes="value location;"
+ />
+ </div>
+
+ <div class="row"
+ tal:define="error errors/telenr| nothing;
+ telenr request/telenr | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="telenr"
+ i18n:translate="label_telenr">Telefonnummer</label>
+
+ <div class="formHelp" i18n:translate="help_telenr_creation">
+ Ange ditt telefonnummer, om du vill.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="telenr"
+ id="telenr"
+ size="30"
+ value="telenr"
+ tal:attributes="value telenr;"
+ />
+ </div>
+
+ <div class="row"
+ tal:define="error errors/mobile| nothing;
+ mobile request/mobile | nothing;"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="mobile"
+ i18n:translate="label_mobile">Mobiltelefon</label>
+
+ <div class="formHelp" i18n:translate="help_mobile_creation">
+ Ange ditt mobiltelefonnummer, om du vill.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ name="mobile"
+ id="mobile"
+ size="30"
+ value="mobile"
+ tal:attributes="value mobile;"
+ />
+ </div>
+
+<!-- Registrera -->
+
+ <div class="field">
+ <div class="formHelp" i18n:translate="label_password_change_mail">
+ A URL will be generated and e-mailed to you; follow the link
+ to reach a page where you can change your password and
+ complete the registration process.
+ </div>
+ </div>
+
+ <div class="formControls">
+ <input class="context"
+ type="submit"
+ name="form.button.Register"
+ value="Register"
+ i18n:attributes="value label_register;" />
+ </div>
+
+ </fieldset>
+
+ <input type="hidden" name="form.submitted" value="1" />
+
+ </form>
+</div>
+
+</body>
+</html>
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt.metadata (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt.metadata)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt.metadata (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form.cpt.metadata 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,10 @@
+[default]
+title=Please sign in
+border=None
+
+[validators]
+validators = validate_emailaddr,join_form_validate
+
+[actions]
+action.success = traverse_to:string:selinux_register
+action.failure = traverse_to:string:join_form
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form_validate.vpy (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form_validate.vpy)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form_validate.vpy (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/join_form_validate.vpy 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,66 @@
+## Controller Python Script "validate_registration"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind state=state
+##bind subpath=traverse_subpath
+##parameters=username='',email='',password='',password_confirm='',givenname='',surname='',postadress='',postnr='',location=''
+##title=validates the Registration of a User
+
+from Products.CMFPlone import PloneMessageFactory as _
+
+reg_tool=context.portal_registration
+def missing(field):
+ state.setError(field, _(u'This field is required, please provide some information.'), 'input_required')
+def nomatch(field):
+ state.setError(field, _(u'Passwords do not match.'), 'nomatch_password')
+def minlimit(field):
+ state.setError(field, _(u'Passwords must contain at least 5 letters.'), 'min_password')
+def notallowed(field):
+ state.setError(field, _(u'This username is reserved. Please choose a different name.'), 'not_allowed')
+
+if not username:
+ missing('username')
+if not email:
+ missing('email')
+if not givenname:
+ missing('givenname')
+if not surname:
+ missing('surname')
+if not postadress:
+ missing('postadress')
+if not postnr:
+ missing('postnr')
+if not location:
+ missing('location')
+
+if username and username == context.portal_url.getPortalObject().getId():
+ notallowed('username')
+
+properties = context.portal_properties.site_properties
+if not properties.validate_email:
+ if password!=password_confirm:
+ nomatch('password')
+ nomatch('password_confirm')
+
+ if not password:
+ missing('password')
+ if not password_confirm:
+ missing('password_confirm')
+
+ if not state.getError('password') and len(password) < 5:
+ minlimit('password')
+ minlimit('password_confirm')
+
+if not state.getError('username') and not reg_tool.isMemberIdAllowed(username):
+ state.setError('username',
+ _(u'The login name you selected is already in use or is not valid. Please choose another.'),
+ 'username_invalid' )
+
+if state.getErrors():
+ context.plone_utils.addPortalMessage(_(u'Please correct the indicated errors.'), 'error')
+ return state.set(status='failure')
+else:
+ context.plone_utils.addPortalMessage(_(u'You have been registered.'))
+ return state
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,58 @@
+## Controller Python Script "personalize"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind state=state
+##bind subpath=traverse_subpath
+##parameters=visible_ids=None, portrait=None, listed=None, REQUEST=None, ext_editor=None
+##title=Personalization Handler.
+
+from Products.CMFPlone.utils import transaction_note
+from Products.CMFPlone import PloneMessageFactory as _
+
+member=context.portal_membership.getAuthenticatedMember()
+
+REQUEST = context.REQUEST
+REQUEST.form['fullname'] = REQUEST['givenname'] + ' ' + REQUEST['surname']
+
+
+member.setProperties(context.REQUEST)
+member_context=context.portal_membership.getHomeFolder(member.getId())
+context.portal_skins.updateSkinCookie()
+
+if member_context is None:
+ member_context=context.portal_url.getPortalObject()
+
+if visible_ids is None and REQUEST is not None:
+ visible_ids=0
+else:
+ visible_ids=1
+REQUEST.set('visible_ids', visible_ids)
+
+if listed is None and REQUEST is not None:
+ listed=0
+else:
+ listed=1
+REQUEST.set('listed', listed)
+
+if ext_editor is None and REQUEST is not None:
+ ext_editor=0
+else:
+ ext_editor=1
+REQUEST.set('ext_editor', ext_editor)
+
+if (portrait and portrait.filename):
+ context.portal_membership.changeMemberPortrait(portrait)
+
+delete_portrait = context.REQUEST.get('delete_portrait', None)
+if delete_portrait:
+ context.portal_membership.deletePersonalPortrait(member.getId())
+
+member.setProperties(listed=listed, ext_editor=ext_editor, visible_ids=visible_ids)
+
+tmsg='Edited personal settings for %s' % member.getUserName()
+transaction_note(tmsg)
+
+context.plone_utils.addPortalMessage(_(u'Your personal settings have been saved.'))
+return state
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy.metadata (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy.metadata)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy.metadata (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize.cpy.metadata 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,6 @@
+[validators]
+validators = validate_emailaddr
+
+[actions]
+action.failure=traverse_to:string:personalize_form
+action.success=traverse_to:string:personalize_form
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,532 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ lang="en"
+ metal:use-macro="context/main_template/macros/master"
+ i18n:domain="plone">
+
+<head>
+ <metal:block fill-slot="top_slot"
+ tal:define="dummy python:request.set('disable_border',1)" />
+</head>
+
+<body>
+
+<metal:main fill-slot="content"
+ tal:define="errors options/state/getErrors;">
+ <tal:main-macro metal:define-macro="main">
+
+ <div id="content"
+ class="documentEditable">
+
+ <h5 class="hiddenStructure">Views</h5>
+
+ <ul class="contentViews">
+ <li>
+ <a href=""
+ tal:attributes="href string: ${portal_url}/author/${member}"
+ i18n:translate="label_view">View</a>
+ </li>
+ <li class="selected">
+ <a href=""
+ tal:attributes="href string:${portal_url}/personalize_form"
+ i18n:translate="label_edit">Edit</a>
+ </li>
+ </ul>
+
+ <div class="contentActions">
+
+ </div>
+
+ <div class="documentContent" id="region-content">
+
+ <a name="documentContent"></a>
+
+ <div metal:use-macro="here/global_statusmessage/macros/portal_message">
+ Portal status message
+ </div>
+
+ <h1 class="documentFirstHeading"
+ i18n:translate="heading_my_preferences">Personal Preferences</h1>
+
+ <a href=""
+ class="link-parent"
+ tal:attributes="href string: $portal_url/plone_memberprefs_panel"
+ i18n:translate="label_up_to_preferences">
+ Up to My Preferences
+ </a>
+
+ <p i18n:translate="description_my_preferences">
+ Your personal settings.
+ </p>
+
+ <form action="personalize"
+ class="enableAutoFocus"
+ method="post"
+ enctype="multipart/form-data"
+ class="enableUnloadProtection"
+ tal:condition="member"
+ tal:attributes="action template_id">
+
+ <fieldset tal:define="macros here/additional_memberdata/macros | nothing;
+ top_macro macros/top | nothing;
+ showTop python:top_macro;
+ bottom_macro macros/bottom | nothing;
+ showBottom python:bottom_macro;
+ after_primary macros/after_primary| nothing;
+ showAfterPrimary python:after_primary;">
+
+ <legend i18n:translate="legend_personal_details">Personal Details</legend>
+
+ <tal:macro condition="showTop">
+ <div metal:use-macro="top_macro"/>
+ </tal:macro>
+
+ <tal:macro condition="showTop">
+ <div metal:use-macro="top_macro"/>
+ </tal:macro>
+
+ <div class="field"
+ tal:define="error errors/givenname | nothing;
+ givenname python:request.get('givenname', member.getProperty('givenname', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="givenname" i18n:translate="label_givenname">Förnamn</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="givenname"
+ name="givenname"
+ size="25"
+ value="member.givenname html_quote"
+ tal:attributes="value givenname;
+ disabled python:member.canWriteProperty('givenname') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/surname | nothing;
+ surname python:request.get('surname', member.getProperty('surname', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="surname" i18n:translate="label_surname">Efternamn</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="surname"
+ name="surname"
+ size="25"
+ value="member.surname html_quote"
+ tal:attributes="value surname;
+ disabled python:member.canWriteProperty('surname') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/email | nothing;
+ email python:request.get('email', member.getProperty('email', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="email" i18n:translate="label_email">Email</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="email"
+ name="email"
+ size="25"
+ value="member.email html_quote"
+ tal:attributes="value email;
+ disabled python:member.canWriteProperty('email') and default or 'disabled'"
+ />
+ </div>
+
+ <tal:macro condition="showAfterPrimary">
+ <div metal:use-macro="after_primary"/>
+ </tal:macro>
+
+ <tal:macro condition="showAfterPrimary">
+ <div metal:use-macro="after_primary"/>
+ </tal:macro>
+
+ <div class="field"
+ tal:define="error errors/postadress | nothing;
+ postadress python:request.get('postadress', member.getProperty('postadress', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="postadress" i18n:translate="label_postadress">Postadress</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="postadress"
+ name="postadress"
+ size="25"
+ value="member.postadress html_quote"
+ tal:attributes="value postadress;
+ disabled python:member.canWriteProperty('postadress') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/postnr | nothing;
+ postnr python:request.get('postnr', member.getProperty('postnr', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="postnr" i18n:translate="label_postnr">Postnummer</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="postnr"
+ name="postnr"
+ size="25"
+ value="member.postnr html_quote"
+ tal:attributes="value postnr;
+ disabled python:member.canWriteProperty('postnr') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/location | nothing;
+ location python:request.get('location', member.getProperty('location', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="location" i18n:translate="label_location">Ort</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="location"
+ name="location"
+ size="25"
+ value="member.location html_quote"
+ tal:attributes="value location;
+ disabled python:member.canWriteProperty('location') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/telenr | nothing;
+ telenr python:request.get('telenr', member.getProperty('telenr', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="telenr" i18n:translate="label_telenr">Telefonnummer</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="telenr"
+ name="telenr"
+ size="25"
+ value="member.telenr html_quote"
+ tal:attributes="value telenr;
+ disabled python:member.canWriteProperty('telenr') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/mobile | nothing;
+ mobile python:request.get('mobile', member.getProperty('mobile', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="mobile" i18n:translate="label_mobile">Mobiltelefonnummer</label>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="mobile"
+ name="mobile"
+ size="25"
+ value="member.mobile html_quote"
+ tal:attributes="value mobile;
+ disabled python:member.canWriteProperty('mobile') and default or 'disabled'"
+ />
+ </div>
+
+
+ <div class="field"
+ tal:define="error errors/language | nothing;
+ language python:request.get('language', member.getProperty('language', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="language" i18n:translate="label_language">Language</label>
+
+ <div class="formHelp" i18n:translate="help_preferred_language">
+ Your preferred language.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+
+ <select name="language"
+ id="language"
+ tal:attributes="disabled python:member.canWriteProperty('language') and default or 'disabled'">
+ <tal:block tal:repeat="lang portal/availableLanguages">
+ <option value="None"
+ tal:content="python:lang[1]"
+ tal:attributes="value python:lang[0];
+ selected python:test(language==lang[0], 'selected', None);">
+ </option>
+ </tal:block>
+ </select>
+
+ </div>
+
+ <div class="field"
+ tal:define="error errors/description | nothing;
+ description python:request.get('description', member.getProperty('description', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="description" i18n:translate="label_biography">Biography</label>
+
+ <div class="formHelp" i18n:translate="help_biography">
+ A short overview of who you are and what you do. Will be displayed
+ on the your author page, linked from the items you create.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <textarea type="text"
+ id="description"
+ name="description"
+ tal:content="description"
+ rows="5"
+ tal:attributes="disabled python:member.canWriteProperty('description') and default or 'disabled'"
+ />
+
+ </div>
+
+ <div class="field"
+ tal:define="error errors/home_page | nothing;
+ home_page python:request.get('home_page', member.getProperty('home_page', ''));"
+ tal:attributes="class python:test(error, 'field error', 'field')">
+
+ <label for="home_page" i18n:translate="label_homepage">Home page</label>
+
+ <div class="formHelp" i18n:translate="help_homepage">
+ The URL for your external home page, if you have one.
+ </div>
+
+ <div tal:content="error">Validation error output</div>
+
+ <input type="text"
+ id="home_page"
+ name="home_page"
+ size="25"
+ value="member.home_page html_quote"
+ tal:attributes="value home_page;
+ disabled python:member.canWriteProperty('home_page') and default or 'disabled'"
+ />
+
+ </div>
+
+ <div class="field"
+ tal:define="wysiwyg_editor python:request.get('wysiwyg_editor',
+ member.getProperty('wysiwyg_editor',''))">
+ <label for="wysiwyg_editor" i18n:translate="label_content_editor">Content editor</label>
+
+ <div class="formHelp" i18n:translate="help_content_editor">
+ Select the content editor that you would like to use.
+ Note that content editors often have specific browser
+ requirements.
+ </div>
+
+ <select name="wysiwyg_editor"
+ id="wysiwyg_editor"
+ tal:attributes="disabled python:member.canWriteProperty('wysiwyg_editor') and default or 'disabled'">
+ <tal:block tal:repeat="editor site_properties/available_editors">
+ <option tal:condition="python:editor != 'None'"
+ value="None"
+ tal:attributes="value editor;
+ selected python:test(editor==wysiwyg_editor, 'selected', None);"
+ tal:content="editor">
+ WYSIWYG-editor
+ </option>
+ <option tal:condition="python:editor == 'None'"
+ value="None"
+ tal:attributes="value editor;
+ selected python:test(editor==wysiwyg_editor, 'selected', None);"
+ i18n:translate="label_ordinary_content_editor">
+ Basic HTML textarea editor (works in all browsers)
+ </option>
+
+ </tal:block>
+ </select>
+ </div>
+
+ <div class="field"
+ tal:define="ext_editor python:request.get('ext_editor',
+ member.getProperty('ext_editor',''))">
+ <input type="checkbox"
+ class="noborder"
+ name="ext_editor"
+ id="cb_ext_editor"
+ tal:attributes="checked python:test(ext_editor, 'checked', None);
+ disabled python:member.canWriteProperty('ext_editor') and default or 'disabled'"
+ />
+
+ <label for="cb_ext_editor" i18n:translate="label_ext_editor">Enable external editing</label>
+
+ <div class="formHelp" i18n:translate="help_content_ext_editor">
+ When checked, an icon will be made visible on each page which allows
+ you to edit content with your favorite editor instead of using
+ browser-based editors. This requires an additional application
+ called ExternalEditor installed client-side.
+ Ask your administrator for more information if needed.
+ </div>
+ </div>
+
+ <div class="field"
+ tal:define="listed python:request.get('listed', member.getProperty('listed',''));">
+
+ <input type="checkbox"
+ class="noborder"
+ name="listed"
+ id="cb_listed"
+ tal:attributes="checked python:test(listed, 'checked', None);
+ disabled python:member.canWriteProperty('listed') and default or 'disabled'"
+ />
+
+ <label for="cb_listed" i18n:translate="label_listed_status">Listed in searches</label>
+
+ <div class="formHelp" i18n:translate="help_listed_search">
+ Determines if your user name is listed in user searches done on this site.
+ </div>
+
+ </div>
+
+ <div class="field"
+ tal:condition="site_properties/visible_ids|nothing"
+ tal:define="visible_ids python:request.get('visible_ids', member.getProperty('visible_ids',''));">
+
+ <input type="checkbox"
+ class="noborder"
+ name="visible_ids"
+ id="cb_invisible_ids"
+ tal:attributes="checked python:test(visible_ids, 'checked', None);
+ disabled python:member.canWriteProperty('visible_ids') and default or 'disabled'"
+ />
+
+ <label for="cb_invisible_ids"
+ i18n:translate="label_edit_short_names">Allow editing of Short Names</label>
+
+ <div class="formHelp" i18n:translate="help_display_names">
+ Determines if Short Names (also known as IDs) are
+ changable when editing items. If Short Names
+ are not displayed, they will be generated automatically.
+ </div>
+
+ </div>
+
+ <div class="field"
+ tal:condition="here/portal_skins/allow_any"
+ tal:define="skinvar python:request.get(here.portal_skins.getRequestVarname(), '');
+ skindefault here/portal_skins/getDefaultSkin;
+ skincurrent python:test(skinvar, skinvar, skindefault);">
+
+ <label for="portal_skin" i18n:translate="label_look">Look</label>
+
+ <div i18n:translate="help_look"
+ class="formHelp">
+ Appearance of the site.
+ </div>
+
+ <select name="portal_skin"
+ id="portal_skin"
+ tal:attributes="disabled python:member.canWriteProperty('portal_skin') and default or 'disabled'"
+ >
+ <option value="#"
+ i18n:translate=""
+ tal:repeat="skin container/portal_skins/getSkinSelections"
+ tal:attributes="value skin;
+ selected python:test(skincurrent==skin, 'selected', None);"
+ tal:content="skin"
+ >dummy skin</option>
+ </select>
+ </div>
+
+ <div class="field"
+ tal:define="portrait mtool/getPersonalPortrait;">
+
+ <label for="portrait" i18n:translate="label_portrait">Portrait</label>
+
+ <img src="" alt=""
+ height="100"
+ width="75"
+ class="portraitPhoto"
+ style="float: right;"
+ tal:condition="portrait"
+ tal:attributes="src portrait/absolute_url"
+ />
+
+ <div class="formHelp" i18n:translate="help_portrait">
+ To add or change the portrait: click the "Browse" button;
+ select a picture of yourself. Recommended image size is 75
+ pixels wide by 100 pixels tall.
+ </div>
+
+
+ <input type="file"
+ name="portrait"
+ id="portrait"
+ size="20"
+ />
+
+ <br />
+
+ <input class="noborder"
+ type="checkbox"
+ id="pdelete"
+ value="Delete Portrait"
+ name="delete_portrait"
+ />
+ <label for="pdelete" i18n:translate="label_delete_portrait">Delete Portrait</label>
+
+ </div>
+
+ <tal:macro condition="showBottom">
+ <div metal:use-macro="bottom_macro" />
+ </tal:macro>
+
+ <tal:macro condition="showBottom">
+ <div metal:use-macro="bottom_macro" />
+ </tal:macro>
+
+ <div class="formControls">
+ <input class="context"
+ type="submit"
+ value="Save"
+ name="form.button.Save"
+ i18n:attributes="value label_save;"
+ />
+ <input class="standalone"
+ type="submit"
+ value="Cancel"
+ name="form.button.Cancel"
+ i18n:attributes="value label_cancel;"
+ />
+ </div>
+
+ <input type="hidden" name="form.submitted" value="1" />
+
+ </fieldset>
+ </form>
+ </div>
+ </tal:main-macro>
+
+</metal:main>
+
+</body>
+</html>
+
+
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt.metadata (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt.metadata)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt.metadata (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/personalize_form.cpt.metadata 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,15 @@
+[default]
+title=Personal Preferences
+
+[security]
+View=0:Authenticated
+
+[validators]
+validators=validate_pas_emailaddr,validate_personalize
+validators..Cancel=
+
+[actions]
+action.success=traverse_to:string:personalize
+action.success..PortraitDelete=traverse_to:string:portrait_delete
+action.success..Cancel=redirect_to:string:plone_memberprefs_panel
+action.failure=traverse_to:string:personalize_form
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.pt (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.pt (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.pt 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,51 @@
+<tal:root define="lt string:<;gt string:>;
+ dummy python:request.RESPONSE.setHeader('Content-Type', 'text/plain;; charset=%s' % here.plone_utils.getSiteEncoding());
+ member python:options['member'];
+ reset python:options.get('reset', None) or here.portal_password_reset.requestReset(member.getId())"
+>From: "<span tal:replace="python:here.email_from_name" />" <span tal:replace="structure lt"/><span tal:replace="python:here.email_from_address" /><span tal:replace="structure gt"/>
+To: <span tal:replace="python:member.getProperty('email')" />
+Subject: Bekräfta medlemsuppgifter till Svenska Linuxföreningen
+Content-Type: text/plain; charset=<span tal:replace="here/email_charset|here/portal_properties/site_properties/default_charset|string:utf-8" />
+
+<div i18n:domain="passwordresettool"
+ i18n:translate="mailtemplate_registered_user_body"
+ tal:omit-tag=""
+ tal:define="givenname python: test(member.givenname, ' ' + member.givenname, '')">
+
+Hej <span tal:replace="python:member.getProperty('givenname')" /> och varmt
+välkommen som medlem i Svenska Linuxföreningen!
+
+Föreningen är öppen för alla som är intresserade av fri programvara och
+öppen källkod, såsom GNU/Linux, FreeBSD, Apache och MySQL. Det är ni
+medlemmar som står för föreningens aktiviteter samt artiklar, nyheter
+och allt annat som går att finna på webbplatsen.
+
+För att själv bidra med material måste du aktivera ditt konto och sedan
+logga in på http://se.linux.org/. För att aktivera ditt konto besöker du
+
+<span i18n:name="set_password" tal:replace="python:here.pwreset_constructURL(reset['randomstring'])+'?userid='+member.getUserName()" />
+
+Du måste aktivera ditt konto inom <span i18n:name="expirationtime" tal:replace="here/portal_password_reset/getExpirationTimeout" /> timmar, alltså senast <span i18n:name="expirationdate" tal:replace="python: context.toLocalizedTime(reset['expires'], long_format=1)" />
+
+Följande uppgifter finns i vårt register:
+
+Adress:
+<span tal:replace="python:member.getProperty('givenname')" /> <span tal:replace="python:member.getProperty('surname')" />
+<span tal:replace="python:member.getProperty('postadress')" />
+<span tal:replace="python:member.getProperty('postnr')" /> <span tal:replace="python:member.getProperty('location')" />
+
+Telefon: <span tal:replace="python:member.getProperty('location')" />
+Mobiltelefon: <span tal:replace="python:member.getProperty('mobile')" />
+
+Om någon uppgift är felaktig ber vi dig logga in på http://se.linux.org/
+och ändra detta under "mina inställningar".
+
+Om du behöver hjälp, tveka inte att besöka föreningens IRC-kanal i #selinux
+på irc.se.linux.org eller genom att kontakta styrelsen på info at se.linux.org.
+
+
+--
+Svenska Linuxföreningen
+info at se.linux.org
+</div>
+</tal:root>
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.tmpl)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,49 @@
+From: selinux-drift at se.linux.org
+To: <span tal:omit-tag="" tal:replace="request/email" />
+Reply-To: info at se.linux.org
+Errors-To: selinux-drift at se.linux.org
+Subject: Välkommen till Svenska Linuxföreningen
+Content-Type: text/plain; charset=<span tal:replace="here/portal_properties/site_properties/default_charset" />
+
+Hej <span tal:omit-tag="" tal:replace="request/givenname" /> och varmt
+välkommen som medlem i Svenska Linuxföreningen!
+
+SeLinux är en förening för alla som är intresserade av fri programvara
+och öppen källkod såsom GNU/Linux, FreeBSD, Apache och MySQL. Det är ni
+medlemmar som står för föreningens aktiviteter samt artiklar, nyheter
+och annat på webbplatsen. För att själv bidra med material kan du logga
+in på http://se.linux.org/ med följande uppgifter:
+
+Användarnamn : <span tal:omit-tag="" tal:content="options/member/getUserName" />
+Lösenord : <span tal:omit-tag="" tal:content="request/password" />
+
+* På http://se.linux.org/aktuellt/aktiviteter/ kan du se vad som händer
+ just nu.
+* På http://se.linux.org/nyborjare/ finner du information som vänder sig
+ till dig som är ny kring Linux.
+* På http://se.linux.org/organisationen/ kan du läsa mer om vad Svenska
+ Linuxföreningen är.
+* På http://se.linux.org/bidra/ kan du läsa mer om vad du kan hjälpa
+ till med!
+
+Följande uppgifter finns i vårt register:
+
+Adress:
+<span tal:omit-tag="" tal:replace="request/givenname" /> <span tal:omit-tag="" tal:replace="request/surname" />
+<span tal:omit-tag="" tal:replace="request/postadress" />
+<span tal:omit-tag="" tal:replace="request/postnr" /> <span tal:omit-tag="" tal:content="request/location" />
+
+Telefon: <span tal:omit-tag="" tal:replace="request/telenr" />
+Mobiltelefon: <span tal:omit-tag="" tal:replace="request/mobile" />
+Email: <span tal:omit-tag="" tal:replace="request/email" />
+
+Om någon uppgift är felaktig ber vi dig logga in på http://se.linux.org/
+och ändra detta under "mina inställningar".
+
+Om du behöver hjälp, tveka inte att använda dig av forumet på
+http://se.linux.org/kommunikation/forum/ eller föreningens IRC-kanal
+(#selinux på irc.se.linux.org) eller genom att kontakta oss i styrelsen
+på epostadressen här under.
+
+--
+info at se.linux.org
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl.metadata (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.tmpl.metadata)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl.metadata (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/registered_notify_template.tmpl.metadata 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,2 @@
+[default]
+proxy=Manager
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_index.pt (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/selinux_index.pt)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_index.pt (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_index.pt 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,83 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ xml:lang="en" lang="en"
+ metal:use-macro="here/main_template/macros/master"
+ i18n:domain="plone">
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="frontpage context/@@frontpage">
+
+ <div id="frontpageLinks">
+ <dl>
+ <dt>Nybörjare</dt>
+ <dd><a href="#">Vad är Linux?</a></dd>
+ <dd><a href="#">Vad är Open Source?</a></dd>
+ <dd><a href="#">Hur kan jag få hjälp?</a></dd>
+ </dl>
+ <dl>
+ <dt>Populärt</dt>
+ <dd><a href="#">Arbetsgrupper</a></dd>
+ <dd><a href="#">Dokumentation</a></dd>
+ <dd><a href="#">Kalender</a></dd>
+ <dd><a href="#">Kommunikation</a></dd>
+ <dd><a href="#">Organisation</a></dd>
+ </dl>
+ <dl>
+ <dt>Bidra</dt>
+ <dd><a href="#">Hur hjälper jag andra?</a></dd>
+ <dd><a href="#">Vad vill föreningen ha hjälp med?</a></dd>
+ <dd><a href="#">Hur donerar jag en slant?</a></dd>
+ <dd><a href="#">Hur blir jag medlem?</a></dd>
+ <dd><a href="#">Vad innebär det att vara medlem?</a></dd>
+ </dl>
+ <div class="visualClear"> </div>
+ </div>
+
+ <h2>Nyheter</h2>
+
+ <p id="contributeNews">
+ <a href="/nyheter/createObject?type_name=News Item" style="float: left">
+ Lägg till nyhet
+ </a>
+ <a class="link-plain" href="#" style="float: right"
+ tal:attributes="href string:${portal_url}/nyheter/aggregator/RSS">
+ <img src="" title="RSS subscription feed for news items" alt="RSS"
+ tal:attributes="src string:${portal_url}/rss.png" />
+ </a>
+ </p>
+ <div class="visualClear"> <!-- --> </div>
+
+ <div class="newsbox" tal:repeat="newsitem frontpage/news">
+ <h3 tal:content="newsitem/title" />
+ <div class="documentByLine">
+ av
+ <a href="#"
+ tal:attributes="href string:${portal_url}/author/${newsitem/author_id}"
+ tal:content="newsitem/author" />
+ —
+ <span tal:replace="newsitem/date" />
+ </div>
+ <p tal:replace="structure newsitem/body" />
+ <div>
+ <a href="" tal:attributes="href newsitem/url">
+ Läs mer...
+ </a>
+ <!--
+ <img tal:replace="structure context/discussionitem_icon.gif" />
+ -->
+ (<span tal:replace="string:${newsitem/discussion_count}"/>
+ kommentarer)
+ </div>
+ </div>
+
+ <p tal:condition="not: frontpage/news">
+ Inga nyheter är postade.
+ </p>
+</div>
+
+</body>
+</html>
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/selinux_register.cpy)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,17 @@
+## Controller Python Script "selinux_register"
+##bind container=container
+##bind context=context
+##bind namespace=
+##bind script=script
+##bind state=state
+##bind subpath=traverse_subpath
+##parameters=password='password', password_confirm='password_confirm', came_from_prefs=None
+##title=Register a User
+##
+
+REQUEST = context.REQUEST
+REQUEST.form['fullname'] = REQUEST['givenname'] + ' ' + REQUEST['surname']
+
+return context.register(password=password,
+ password_confirm=password_confirm,
+ came_from_prefs=came_from_prefs)
Copied: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy.metadata (from rev 126, selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/selinux_register.cpy.metadata)
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy.metadata (rev 0)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinux_templates/selinux_register.cpy.metadata 2007-11-11 22:35:43 UTC (rev 132)
@@ -0,0 +1,11 @@
+[default]
+title=Register a User
+proxy=Manager,Anonymous
+
+[validators]
+validators = join_form_validate
+
+[actions]
+action.failure=traverse_to:string:join_form
+action.success=traverse_to:string:registered
+action.prefs=traverse_to:string:prefs_users_overview
More information about the commits
mailing list