Changeset 288
- Timestamp:
- 12.11.2008 19:02:38 (3 years ago)
- Location:
- ZMS/trunk
- Files:
-
- 10 edited
-
_globals.py (modified) (1 diff)
-
_objattrs.py (modified) (2 diffs)
-
_objchildren.py (modified) (1 diff)
-
changes.txt (modified) (1 diff)
-
dtml/ZMSRecordSet/actions.dtml (modified) (5 diffs)
-
dtml/ZMSRecordSet/main.dtml (modified) (2 diffs)
-
dtml/ZMSSqlDb/input_details.dtml (modified) (13 diffs)
-
import/zmssqldb/cd.model.xml (modified) (2 diffs)
-
import/zmssqldb/zgadfly.cd.sql (modified) (1 diff)
-
version.txt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ZMS/trunk/_globals.py
r121 r288 205 205 # Strips non-numeric part from string. 206 206 # ------------------------------------------------------------------------------ 207 def id_prefix(s): 208 i = 0209 while i < len(s) and ord(s[i]) notin range(ord('0'),ord('9')+1):210 i = i +1207 def id_prefix(s): 208 i = len(s) 209 while i > 0 and ord(s[i-1]) in range(ord('0'),ord('9')+1): 210 i = i - 1 211 211 return s[:i] 212 212 -
ZMS/trunk/_objattrs.py
r267 r288 902 902 v = float(v) 903 903 904 #-- Password-Fields905 elif datatype == _globals.DT_PASSWORD:906 pass907 """908 if v is not None:909 v = self.encrypt_password(v)910 """911 912 904 #-- String-Fields. 913 905 elif datatype in _globals.DT_STRINGS: … … 979 971 v = '{$__' + v[2:-1] + '__}' 980 972 973 # Hook for custom formatting. 974 name = 'formatCustomObjAttrValue' 975 if hasattr(self,name): 976 v = getattr(self,name)( context=self, obj_attr=obj_attr, v=v) 977 981 978 return v 982 979 -
ZMS/trunk/_objchildren.py
r274 r288 35 35 ################################################################################ 36 36 ### 37 ### O B J E C T C H I L D R E N37 ### Object Children 38 38 ### 39 39 ################################################################################ -
ZMS/trunk/changes.txt
r276 r288 1032 1032 [01117] Applied fix for support of simultaneous remote- (via ftp) and web-editing (via zmi) of content-object-methods (requested by desy). 1033 1033 -------------------------------------------------- 1034 2008-11-12:zms-2.11.1-15 1035 [01118] Applied fix for _globals.id_prefix(): ids containing numbers. 1036 [01119] Added support for multiple details to SQL-Datasource. 1037 -------------------------------------------------- -
ZMS/trunk/dtml/ZMSRecordSet/actions.dtml
r121 r288 13 13 14 14 <dtml-call "REQUEST.set('manage_tabs_message','')"> 15 16 <dtml-try> 15 17 16 18 <dtml-comment> ***** Move row up ***** </dtml-comment> … … 113 115 <dtml-in "metaObj['attrs'][1:]" mapping> 114 116 <dtml-let obj_attr="getObjAttr(id)" obj_attrName="getObjAttrName(obj_attr,lang)"> 115 <dtml- unless "type in ['constant','delimiter','hint','interface','resource','method','DTML Method','DTML Document']">117 <dtml-if "type in metaobj_manager.valid_types"> 116 118 <dtml-call "REQUEST.set('value',formatObjAttrValue(obj_attr,REQUEST.form.get(obj_attrName),lang))"> 117 119 <dtml-try><dtml-call "operator_delattr(value,'aq_parent')"><dtml-except></dtml-try> 118 120 <dtml-call "new_row.append(id)"> 119 121 <dtml-call "new_row.append(value)"> 120 </dtml- unless>122 </dtml-if> 121 123 </dtml-let> 122 124 </dtml-in> … … 143 145 <dtml-in "metaObj['attrs'][1:]" mapping> 144 146 <dtml-let obj_attr="getObjAttr(id)" obj_attrName="getObjAttrName(obj_attr,lang)"> 145 <dtml- unless "type in ['constant','delimiter','hint','interface','resource','method','DTML Method','DTML Document']">147 <dtml-if "type in metaobj_manager.valid_types"> 146 148 <dtml-call "REQUEST.set('value',formatObjAttrValue(obj_attr,REQUEST.form.get(obj_attrName),lang))"> 147 149 <dtml-var "writeBlock('[actions.update]: %s=%s(%s)'%(_.str(id),_.str(value),_.str(REQUEST.form.get(obj_attrName))))"> … … 152 154 <dtml-call "new_row.append(id)"> 153 155 <dtml-call "new_row.append(value)"> 154 </dtml- unless>156 </dtml-if> 155 157 </dtml-let> 156 158 </dtml-in> … … 180 182 181 183 </dtml-if> 184 185 <dtml-except> 186 <dtml-call "REQUEST.set('manage_tabs_error_message',_.str(error_type)+': '+_.str(error_value)+'<br/>'+_.str(error_tb))"> 187 </dtml-try> -
ZMS/trunk/dtml/ZMSRecordSet/main.dtml
r121 r288 67 67 <dtml-call "RESPONSE.redirect( no_action)"> 68 68 <dtml-else> 69 <dtml-call "RE SPONSE.redirect(url_append_params(URL,69 <dtml-call "REQUEST.set('target_url',url_append_params(URL, 70 70 {'lang':lang 71 71 ,'qsize:int':qsize … … 73 73 ,'qorderdir':qorderdir 74 74 ,'qstart':qsize*_.int(qindex/qsize)+1 75 ,'qindex:int':qindex 76 ,'manage_tabs_message':manage_tabs_message}))"> 75 ,'qindex:int':qindex}))"> 76 <dtml-if manage_tabs_message><dtml-call "REQUEST.set('target_url',url_append_params(target_url,{'manage_tabs_message':manage_tabs_message}))"></dtml-if> 77 <dtml-if manage_tabs_error_message><dtml-call "REQUEST.set('target_url',url_append_params(target_url,{'manage_tabs_error_message':manage_tabs_error_message}))"></dtml-if> 78 <dtml-call "RESPONSE.redirect(target_url)"> 77 79 </dtml-if> 78 80 -
ZMS/trunk/dtml/ZMSSqlDb/input_details.dtml
r273 r288 1 1 <dtml-unless "REQUEST.get('f_zmiInputDetailsJavaScript')" 2 ><dtml-call "REQUEST.set('master_row',row)" 2 3 ><script language="JavaScript" 3 4 ><!--// … … 9 10 $('#submit_'+id).val('<dtml-var "getZMILangStr('BTN_INSERT')">'); 10 11 $('table.neutralColorStrong tr.zmiTeaserColor').removeClass('zmiTeaserColor'); 11 $('input[@name=details_action]').val('insert ');12 $('input[@name=details_action]').val('insert_'+id); 12 13 return; 13 14 } … … 29 30 ############################################################################ 30 31 </dtml-comment 31 ><dtml-if "REQUEST.get('details_action')=='insert 'and32 ><dtml-if "REQUEST.get('details_action')=='insert_%s'%details['tablename'] and 32 33 REQUEST.get('details_btn')==getZMILangStr('BTN_INSERT')" 33 34 ><dtml-let values="{}" … … 39 40 ><dtml-call "REQUEST.set('sqlStatement',[])" 40 41 ><dtml-call "sqlStatement.append( 'SELECT MAX(sort_id) AS c FROM '+details['tablename'])" 41 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key, row.get('id','')))"42 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key,master_row.get('id','')))" 42 43 ><dtml-in "query(' '.join(sqlStatement))['records']" mapping 43 ><dtml-call "operator_setitem(values,'sort_id',c )"44 ><dtml-call "operator_setitem(values,'sort_id',c+10)" 44 45 ></dtml-in 45 46 ><dtml-except … … 62 63 ############################################################################ 63 64 </dtml-comment 64 ><dtml-elif "REQUEST.get('details_action')=='update 'and65 ><dtml-elif "REQUEST.get('details_action')=='update_%s'%details['tablename'] and 65 66 REQUEST.get('details_btn')==getZMILangStr('BTN_SAVE')" 66 67 ><dtml-let values="{}" old_values="{}" … … 80 81 ############################################################################ 81 82 </dtml-comment 82 ><dtml-elif "REQUEST.get('details_action')=='delete '"83 ><dtml-elif "REQUEST.get('details_action')=='delete_%s'%details['tablename']" 83 84 ><dtml-call "recordSet_Delete(details['tablename'],details_rowid)" 84 ><dtml-call "REQUEST.set('details_normalize', _.True)"85 ><dtml-call "REQUEST.set('details_normalize',details_ordered)" 85 86 ><div class="system-msg">Record deleted! (<dtml-var "getLangFmtDate(ZopeTime())">)</div 86 87 ><dtml-call "REQUEST.set('details_action','')" … … 90 91 ############################################################################ 91 92 </dtml-comment 92 ><dtml-elif "REQUEST.get('details_action')=='move_up 'or93 REQUEST.get('details_action')=='move_down '"93 ><dtml-elif "REQUEST.get('details_action')=='move_up_%s'%details['tablename'] or 94 REQUEST.get('details_action')=='move_down_%s'%details['tablename']" 94 95 ><dtml-comment>+-+-+-+- Move +-+-+-+-</dtml-comment 95 96 ><dtml-call "REQUEST.set('sqlStatement',[])" 96 97 ><dtml-call "sqlStatement.append( 'UPDATE '+details['tablename'])" 97 ><dtml-if "REQUEST.get('details_action')=='move_up '"98 ><dtml-if "REQUEST.get('details_action')=='move_up_%s'%details['tablename']" 98 99 ><dtml-call "sqlStatement.append( 'SET sort_id=sort_id-15')" 99 100 ><dtml-else 100 101 ><dtml-call "sqlStatement.append( 'SET sort_id=sort_id+15')" 101 102 ></dtml-if 102 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key, row.get('id','')))"103 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key,master_row.get('id','')))" 103 104 ><dtml-call "sqlStatement.append( 'AND '+primary_key+'='+sql_quote__(details['tablename'],primary_key,details_rowid))" 104 105 ><dtml-call "executeQuery(' '.join(sqlStatement))" 105 ><dtml-call "REQUEST.set('details_normalize', _.True)"106 ><dtml-call "REQUEST.set('details_normalize',details_ordered)" 106 107 ><div class="system-msg">Record moved! (<dtml-var "getLangFmtDate(ZopeTime())">)</div 107 108 ></dtml-if … … 111 112 ><dtml-call "REQUEST.set('sqlStatement',[])" 112 113 ><dtml-call "sqlStatement.append( 'SELECT * FROM '+details['tablename'])" 113 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key, row.get('id','')))"114 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key,master_row.get('id','')))" 114 115 ><dtml-call "sqlStatement.append( 'ORDER BY sort_id')" 115 116 ><dtml-in "query(' '.join(sqlStatement))['records']" mapping … … 117 118 ><dtml-call "sqlStatement.append( 'UPDATE '+details['tablename'])" 118 119 ><dtml-call "sqlStatement.append( 'SET sort_id='+sql_quote__(details['tablename'],'sort_id',(_['sequence-index']+1)*10))" 119 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key, row.get('id','')))"120 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key,master_row.get('id','')))" 120 121 ><dtml-call "sqlStatement.append( 'AND '+primary_key+'='+sql_quote__(details['tablename'],primary_key,_[primary_key]))" 121 122 ><dtml-call "executeQuery(' '.join(sqlStatement))" 122 123 ></dtml-in 124 ><dtml-call "REQUEST.set('details_normalize',_.False)" 123 125 ></dtml-if 124 126 125 127 ><dtml-call "REQUEST.set('sqlStatement',[])" 126 128 ><dtml-call "sqlStatement.append( 'SELECT * FROM '+details['tablename'])" 127 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key, row.get('id','')))"129 ><dtml-call "sqlStatement.append( 'WHERE '+details['fk']+'='+sql_quote__(SESSION[sessqentitykey],master_key,master_row.get('id','')))" 128 130 ><dtml-if details_ordered 129 131 ><dtml-call "sqlStatement.append( 'ORDER BY sort_id')" … … 137 139 138 140 <dtml-call "REQUEST.set('rindex',-1)" 139 ><dtml-if "REQUEST.get('details_action')=='update '"141 ><dtml-if "REQUEST.get('details_action')=='update_%s'%details['tablename']" 140 142 ><dtml-in "REQUEST['res']" mapping 141 143 ><dtml-if "_.str(_[primary_key])==_.str(details_rowid)" … … 149 151 <dtml-call "REQUEST.set('grid_options',{})"> 150 152 <dtml-call "operator_setitem(grid_options,'insert',{'action':'javascript:detailsTableShow(\'%s\')'%details['tablename']})"> 151 <dtml-call "operator_setitem(grid_options,'update',{'action':url_append_params(URL,{'lang':lang,'action':'update','rowid': row.get('id',''),'details_action':'update'})+'&details_rowid=%s'})">152 <dtml-call "operator_setitem(grid_options,'delete',{'action':url_append_params(URL,{'lang':lang,'action':'update','rowid': row.get('id',''),'details_action':'delete'})+'&details_rowid=%s'})">153 <dtml-call "operator_setitem(grid_options,'update',{'action':url_append_params(URL,{'lang':lang,'action':'update','rowid':master_row.get('id',''),'details_action':'update_%s'%details['tablename']})+'&details_rowid=%s'})"> 154 <dtml-call "operator_setitem(grid_options,'delete',{'action':url_append_params(URL,{'lang':lang,'action':'update','rowid':master_row.get('id',''),'details_action':'delete_%s'%details['tablename']})+'&details_rowid=%s'})"> 153 155 <dtml-if details_ordered> 154 156 <dtml-call "operator_setitem(grid_options,'sort', 155 157 {'action':{ 156 'up':url_append_params(URL,{'lang':lang,'action':'update','rowid': row.get('id',''),'details_action':'move_up'})+'&details_rowid=%s',157 'down':url_append_params(URL,{'lang':lang,'action':'update','rowid': row.get('id',''),'details_action':'move_down'})+'&details_rowid=%s',158 'up':url_append_params(URL,{'lang':lang,'action':'update','rowid':master_row.get('id',''),'details_action':'move_up_%s'%details['tablename']})+'&details_rowid=%s', 159 'down':url_append_params(URL,{'lang':lang,'action':'update','rowid':master_row.get('id',''),'details_action':'move_down_%s'%details['tablename']})+'&details_rowid=%s', 158 160 }})"> 159 161 </dtml-if> … … 171 173 <dtml-call "REQUEST.set('details_row',{})" 172 174 ><dtml-call "REQUEST.set('details_submit',getZMILangStr('BTN_INSERT'))" 173 ><dtml-if "REQUEST.get('details_action')=='update '"175 ><dtml-if "REQUEST.get('details_action')=='update_%s'%details['tablename']" 174 176 ><dtml-in "REQUEST['res']" mapping 175 177 ><dtml-call "REQUEST.set('row',_['sequence-item'])" … … 183 185 ><dtml-call "REQUEST.set('row',details_row)"> 184 186 185 <div class="detailelements" id="table_<dtml-var "details['tablename']">" style="<dtml-unless "REQUEST.get('details_action')=='update '">display:none;</dtml-unless>margin: 10px 0px 2px 0px;">187 <div class="detailelements" id="table_<dtml-var "details['tablename']">" style="<dtml-unless "REQUEST.get('details_action')=='update_%s'%details['tablename']">display:none;</dtml-unless>margin: 10px 0px 2px 0px;"> 186 188 <dtml-comment> 187 189 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- -
ZMS/trunk/import/zmssqldb/cd.model.xml
r121 r288 56 56 <item key="fk">cd_id</item> 57 57 <item key="tablename">cdtracks</item> 58 <item key="delete">cascade</item> 59 </dictionary> 60 </item> 61 </dictionary> 62 </item> 63 <item> 64 <dictionary> 65 <item key="id">reviews</item> 66 <item key="hide" type="int">1</item> 67 <item key="label">Reviews</item> 68 <item key="details"> 69 <dictionary> 70 <item key="fk">cd_id</item> 71 <item key="tablename">cdreviews</item> 58 72 <item key="delete">cascade</item> 59 73 </dictionary> … … 127 141 </dictionary> 128 142 </item> 143 <!-- ######################################## 144 ### REVIEWS 145 ######################################## --> 146 <item> 147 <dictionary> 148 <item key="id">cdreviews</item> 149 <item key="label">Reviews</item> 150 <item key="columns"> 151 <list> 152 <item> 153 <dictionary> 154 <item key="id">review_id</item> 155 <item key="hide" type="int">1</item> 156 <item key="label">Id</item> 157 <item key="type">int</item> 158 <item key="pk" type="int">1</item> 159 <item key="auto">insert</item> 160 </dictionary> 161 </item> 162 <item> 163 <dictionary> 164 <item key="id">cd_id</item> 165 <item key="hide" type="int">1</item> 166 <item key="label">CD</item> 167 <item key="fk"> 168 <dictionary> 169 <item key="tablename">cds</item> 170 <item key="fieldname">cd_id</item> 171 <item key="displayfield">cd_title</item> 172 </dictionary> 173 </item> 174 </dictionary> 175 </item> 176 <item> 177 <dictionary> 178 <item key="id">review_author</item> 179 <item key="label">Author</item> 180 </dictionary> 181 </item> 182 <item> 183 <dictionary> 184 <item key="id">review_timestamp</item> 185 <item key="label">Date/Time [YYYY-MM-DD.hh.mm.ss]</item> 186 </dictionary> 187 </item> 188 <item> 189 <dictionary> 190 <item key="id">review_title</item> 191 <item key="label">Title</item> 192 </dictionary> 193 </item> 194 <item> 195 <dictionary> 196 <item key="id">review_content</item> 197 <item key="label">Content</item> 198 </dictionary> 199 </item> 200 </list> 201 </item> 202 </dictionary> 203 </item> 129 204 <!-- ######################################## --> 130 205 </list> -
ZMS/trunk/import/zmssqldb/zgadfly.cd.sql
r121 r288 14 14 insert into cdtracks (cd_id, track_id, track_title, track_duration, track_info, sort_id) values ( 4712, 8, 'Rain Fall Down', '4:54', '', 40); 15 15 insert into cdtracks (cd_id, track_id, track_title, track_duration, track_info, sort_id) values ( 4712, 9, 'Streets of Love', '5:10', '', 50); 16 create table cdreviews (cd_id integer, review_id integer, review_author varchar, review_timestamp varchar, review_title varchar, review_content varchar); 17 insert into cdreviews (cd_id, review_id, review_author, review_timestamp, review_title, review_content) values ( 4711, 1, 'F. Lieberman', '2005-01-01.12.00.00', 'Excellent!', 'Excellent sound, the best Pink Floyd record ever!'); -
ZMS/trunk/version.txt
r274 r288 1 ZMS 2.11.1-1 41 ZMS 2.11.1-15
Note: See TracChangeset
for help on using the changeset viewer.
