[commits] r55 - selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme

jens at mail.se.linux.org jens at mail.se.linux.org
Sat Juli 14 14:22:38 CEST 2007


Author: jens
Date: 2007-07-14 14:22:37 +0200 (Sat, 14 Jul 2007)
New Revision: 55

Added:
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt.metadata
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form_validate.vpy
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy.metadata
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt.metadata
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy.metadata
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt.metadata
Modified:
   selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt
Log:
register/personalize files are moved here from SeLinux/theme.


Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,361 @@
+<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&ouml;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&ouml;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&auml;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"
+           tal:define="error errors/password | nothing;
+                       password request/password | nothing;"
+           tal:attributes="class python:test(error, 'field error', 'field')">
+
+        <label for="password"
+               i18n:translate="label_password">Password</label>
+
+        <span class="fieldRequired" title="Required"
+              i18n:attributes="title title_required;"
+              i18n:translate="label_required">(Required)</span>
+
+              <div class="formHelp" i18n:translate="help_password_creation">
+                Minimum 5 characters.
+              </div>
+
+              <div tal:content="error">Validation error output</div>
+
+              <input type="password"
+                     name="password"
+                     id="password"
+                     size="10"
+                     value=""
+                     />
+      </div>
+
+      <div class="field"
+           tal:define="error errors/password_confirm | nothing;
+                       password_confirm request/password_confirm | nothing;"
+           tal:attributes="class python:test(error, 'field error', 'field')">
+
+
+        <label for="password_confirm"
+               i18n:translate="label_confirm_password">Confirm password</label>
+
+        <span class="fieldRequired" title="Required"
+              i18n:attributes="title title_required;"
+              i18n:translate="label_required">(Required)</span>
+
+              <div class="formHelp" i18n:translate="help_confirm_password">
+                Re-enter the password. Make sure the passwords are identical.
+              </div>
+
+              <div tal:content="error">Validation error output</div>
+
+              <input type="password"
+                     name="password_confirm"
+                     id="password_confirm"
+                     size="10"
+                     value=""
+                     />
+      </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>

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt.metadata
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt.metadata	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form.cpt.metadata	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,10 @@
+[default]
+title=Please sign in
+border=None
+
+[validators]
+validators = validate_emailaddr,join_form_validate
+
+[actions]
+action.success = traverse_to:string:register
+action.failure = traverse_to:string:join_form

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form_validate.vpy
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form_validate.vpy	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/join_form_validate.vpy	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,55 @@
+## 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=''
+##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 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

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,53 @@
+## 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()
+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

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy.metadata
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy.metadata	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize.cpy.metadata	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,6 @@
+[validators]
+validators = validate_emailaddr
+
+[actions]
+action.failure=traverse_to:string:personalize_form
+action.success=traverse_to:string:personalize_form

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,442 @@
+<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">
+              &nbsp;
+            </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/fullname | nothing;
+                                         fullname python:request.get('fullname', member.getProperty('fullname', ''));"
+                             tal:attributes="class python:test(error, 'field error', 'field')">
+
+                            <label for="fullname" i18n:translate="label_full_name">Full Name</label>
+
+                            <div tal:content="error">Validation error output</div>
+
+                            <input type="text"
+                                   id="fullname"
+                                   name="fullname"
+                                   size="25"
+                                   value="member.fullname html_quote"
+                                   tal:attributes="value fullname;
+                                                   disabled python:member.canWriteProperty('fullname') 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">E-mail</label>
+
+                            <span class="fieldRequired" title="Required"
+                                  i18n:attributes="title title_required;"
+                                  i18n:translate="label_required">(Required)</span>
+
+                            <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;
+                                                    readonly python:member.canWriteProperty('email') and default or 'readonly'"
+                                   />
+
+                        </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/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">Location</label>
+
+                            <div class="formHelp" i18n:translate="help_location">
+                            Your location - either city and country - or in a company setting,
+                            where your office is located.
+                            </div>
+
+                            <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/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>
+
+

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt.metadata
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt.metadata	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/personalize_form.cpt.metadata	2007-07-14 12:22:37 UTC (rev 55)
@@ -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

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,66 @@
+## Controller Python Script "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
+##
+
+from Products.CMFPlone import PloneMessageFactory as _
+from ZODB.POSException import ConflictError
+
+REQUEST = context.REQUEST
+
+portal_registration = context.portal_registration
+site_properties = context.portal_properties.site_properties
+
+username = REQUEST['username']
+
+password=REQUEST.get('password') or portal_registration.generatePassword()
+REQUEST.form['fullname'] = REQUEST['givenName'] + ' ' + REQUEST['surname']
+
+# This is a temporary work-around for an issue with CMF not properly
+# reserving some existing ids (FSDV skin elements, for example). Until
+# this is fixed in the CMF we can at least fail nicely. See
+# http://dev.plone.org/plone/ticket/2982 and http://plone.org/collector/3028
+# for more info. (rohrer 2004-10-24)
+try:
+    portal_registration.addMember(username, password, properties=REQUEST, REQUEST=context.REQUEST)
+except AttributeError:
+    state.setError('username', _(u'The login name you selected is already in use or is not valid. Please choose another.'))
+    context.plone_utils.addPortalMessage(_(u'Please correct the indicated errors.'), 'error')
+    return state.set(status='failure')
+
+if site_properties.validate_email or REQUEST.get('mail_me', 0):
+    try:
+        portal_registration.registeredNotify(username)
+    except ConflictError:
+        raise
+    except Exception, err:
+
+        # TODO registerdNotify calls into various levels.  Lets catch all
+        # exceptions.  Should not fail.  They cant CHANGE their password ;-)
+        # We should notify them.
+        #
+        # (MSL 12/28/03) We also need to delete the just made member and return to the join_form.
+        msg = _(u'We were unable to send your password to your email address: ${address}',
+                mapping={u'address' : str(err)})
+        state.setError('email', msg)
+        state.set(came_from='login_success')
+        context.acl_users.userFolderDelUsers([username,], REQUEST=context.REQUEST)
+        context.plone_utils.addPortalMessage(_(u'Please enter a valid email address.'), 'error')
+        return state.set(status='failure')
+
+state.set(came_from=REQUEST.get('came_from','login_success'))
+
+if came_from_prefs:
+    context.plone_utils.addPortalMessage(_(u'User added.'))
+    state.set(status='prefs')
+
+from Products.CMFPlone.utils import transaction_note
+transaction_note('%s registered' % username)
+
+return state

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy.metadata
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy.metadata	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/register.cpy.metadata	2007-07-14 12:22:37 UTC (rev 55)
@@ -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

Modified: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt	2007-07-14 12:22:37 UTC (rev 55)
@@ -1,5 +1,5 @@
 From: selinux-drift at se.linux.org
-To: <span tal:omit-tag="" tal:replace="options/member/email" />
+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
@@ -15,7 +15,7 @@
 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="options/password" />
+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.
@@ -30,11 +30,11 @@
 
 Adress:
 <span tal:omit-tag="" tal:replace="request/givenName" /> <span tal:omit-tag="" tal:replace="request/surname" />
-<span tal:omit-tag="" tal:replace="request/adress" />
-<span tal:omit-tag="" tal:replace="request/postnr" /> <span tal:omit-tag="" tal:content="request/postort" />
+<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/mobil" />
+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/
@@ -46,5 +46,4 @@
 på epostadressen här under.
 
 --
-<span tal:replace="here/email_from_name" />
 info at se.linux.org

Added: selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt.metadata
===================================================================
--- selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt.metadata	2007-07-13 19:49:05 UTC (rev 54)
+++ selinux-site/trunk/selinux.theme/selinux/theme/skins/selinuxtheme/registered_notify_template.pt.metadata	2007-07-14 12:22:37 UTC (rev 55)
@@ -0,0 +1,2 @@
+[default]
+proxy=Manager




More information about the commits mailing list