Changes between Version 9 and Version 10 of BluePrintRESTImplementation
- Timestamp:
- 01/01/09 03:59:26 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
BluePrintRESTImplementation
v9 v10 1 1 Implementation for the [wiki:BluePrintREST BluePrintREST]: 2 2 3 == Model == 4 Simplified: 5 {{{ 6 db.define_table('cr_shelter', 7 SQLField('modified_on','datetime',default=now), 8 SQLField('uuid',length=64,default=uuid.uuid4()), 9 SQLField('name')) 10 db.cr_shelter.represent=lambda table:shn_list_item(table,resource='shelter',action='display') 11 }}} 12 13 == Controller == 3 14 {{{ 4 15 # RESTful controller function 5 16 # Anonymous users can Read 6 17 # Authentication required for Create/Update/Delete 7 def organisation():8 table=db. or_organisation18 def shelter(): 19 table=db.cr_shelter 9 20 if request.args: 10 21 method=request.args[0] … … 14 25 item=t2.display(table) 15 26 response.view='display.html' 16 title=T(' OrganisationDetails')17 edit=A(T("Edit"),_href=t2.action(' organisation',['update',t2.id]))18 list=A(T("List Organisations"),_href=t2.action('organisation'))27 title=T('Shelter Details') 28 edit=A(T("Edit"),_href=t2.action('shelter',['update',t2.id])) 29 list=A(T("List Shelters"),_href=t2.action('shelter')) 19 30 return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list) 20 31 except: 21 32 if method=="create": 22 33 if t2.logged_in: 23 t2.messages.record_created=T(" Organisationadded")34 t2.messages.record_created=T("Shelter added") 24 35 form=t2.create(table) 25 36 response.view='create.html' 26 title=T('Add Organisation')27 list=A(T("List Organisations"),_href=t2.action('organisation'))37 title=T('Add Shelter') 38 list=A(T("List Shelters"),_href=t2.action('shelter')) 28 39 return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list) 29 40 else: 30 t2.redirect('login',vars={'_destination':' organisation/create'})41 t2.redirect('login',vars={'_destination':'shelter/create'}) 31 42 elif method=="display": 32 43 item=t2.display(table) 33 44 response.view='display.html' 34 title=T(' OrganisationDetails')35 edit=A(T("Edit"),_href=t2.action(' organisation',['update',t2.id]))36 list=A(T("List Organisations"),_href=t2.action('organisation'))45 title=T('Shelter Details') 46 edit=A(T("Edit"),_href=t2.action('shelter',['update',t2.id])) 47 list=A(T("List Shelters"),_href=t2.action('shelter')) 37 48 return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list) 38 49 elif method=="update": 39 50 if t2.logged_in: 40 t2.messages.record_modified=T(" Organisationupdated")51 t2.messages.record_modified=T("Shelter updated") 41 52 form=t2.update(table) 42 53 response.view='update.html' 43 title=T('Edit Organisation')44 list=A(T("List Organisations"),_href=t2.action('organisation'))54 title=T('Edit Shelter') 55 list=A(T("List Shelters"),_href=t2.action('shelter')) 45 56 return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list) 46 57 else: 47 t2.redirect('login',vars={'_destination':' organisation/update/%i' % t2.id})58 t2.redirect('login',vars={'_destination':'shelter/update/%i' % t2.id}) 48 59 elif method=="delete": 49 60 if t2.logged_in: 50 t2.messages.record_deleted=T(" Organisationdeleted")51 t2.delete(table,next=' organisation')61 t2.messages.record_deleted=T("Shelter deleted") 62 t2.delete(table,next='shelter') 52 63 return 53 64 else: 54 t2.redirect('login',vars={'_destination':' organisation/delete/%i' % t2.id})65 t2.redirect('login',vars={'_destination':'shelter/delete/%i' % t2.id}) 55 66 else: 56 67 # Invalid! … … 60 71 list=t2.itemize(table) 61 72 if list=="No data": 62 list="No Organisations currently registered."63 title=T('List Organisations')64 subtitle=T(' Organisations')73 list="No Shelters currently registered." 74 title=T('List Shelters') 75 subtitle=T('Shelters') 65 76 if t2.logged_in: 66 77 form=t2.create(table) 67 78 response.view='list_create.html' 68 return dict(module_name=module_name,modules=modules,options=options,list=list,form=form,title=title,subtitle=subtitle) 79 addtitle=T('Add Shelter') 80 return dict(module_name=module_name,modules=modules,options=options,list=list,form=form,title=title,subtitle=subtitle,addtitle=addtitle) 69 81 else: 70 add=A(T("Add Organisation"),_href=t2.action('organisation','create'))82 add=A(T("Add Shelter"),_href=t2.action('shelter','create')) 71 83 response.view='list.html' 72 84 return dict(module_name=module_name,modules=modules,options=options,list=list,title=title,subtitle=subtitle,add=add) 73 85 }}} 86 87 == Views == 88 {{{create.html}}} 89 {{{ 90 {{extend 'layout.html'}} 91 92 {{try:}} 93 {{=H2(title)}} 94 {{except:}} 95 {{pass}} 96 <p><b>Key:</b><b class='red'> * </b> - Fields tagged with a star (<span class='red'> * </span>) are mandatory and must be filled.</p> 97 <div class='form-container'> 98 {{try:}} 99 {{=form}} 100 {{except:}} 101 {{pass}} 102 </div> 103 <p> </p> 104 {{try:}} 105 {{=list}} 106 {{except:}} 107 {{pass}} 108 }}} 109 {{{display.html}}} 110 {{{ 111 {{extend 'layout.html'}} 112 113 {{try:}} 114 {{=H2(title)}} 115 {{except:}} 116 {{pass}} 117 {{try:}} 118 {{=edit}} 119 {{except:}} 120 {{pass}} 121 <div class='item-container'> 122 {{try:}} 123 {{=item}} 124 {{except:}} 125 {{pass}} 126 </div> 127 <p> </p> 128 {{try:}} 129 {{=list}} 130 {{except:}} 131 {{pass}} 132 }}} 133 {{{list.html}}} 134 {{{ 135 {{extend 'layout.html'}} 136 137 {{try:}} 138 {{=H2(title)}} 139 {{except:}} 140 {{pass}} 141 <div class='list-container'> 142 {{try:}} 143 {{=H3(subtitle)}} 144 {{except:}} 145 {{pass}} 146 {{try:}} 147 {{=list}} 148 {{except:}} 149 {{pass}} 150 </div> 151 <p> </p> 152 {{try:}} 153 {{=add}} 154 {{except:}} 155 {{pass}} 156 }}} 157 {{{list_create.html}}} 158 {{{ 159 {{extend 'layout.html'}} 160 161 {{try:}} 162 {{=H2(title)}} 163 {{except:}} 164 {{pass}} 165 <div class='list-container'> 166 {{try:}} 167 {{=H3(subtitle)}} 168 {{except:}} 169 {{pass}} 170 {{try:}} 171 {{=list}} 172 {{except:}} 173 {{pass}} 174 </div> 175 <p> </p> 176 {{try:}} 177 {{=H3(addtitle)}} 178 {{except:}} 179 {{pass}} 180 <p><b>Key:</b><b class='red'> * </b> - Fields tagged with a star (<span class='red'> * </span>) are mandatory and must be filled.</p> 181 <div class='form-container'> 182 {{try:}} 183 {{=form}} 184 {{except:}} 185 {{pass}} 186 </div> 187 }}} 188 {{{update.html}}} 189 {{{ 190 {{extend 'layout.html'}} 191 192 {{try:}} 193 {{=H2(title)}} 194 {{except:}} 195 {{pass}} 196 <p><b>Key:</b><b class='red'> * </b> - Fields tagged with a star (<span class='red'> * </span>) are mandatory and must be filled.</p> 197 <div class='form-container'> 198 {{try:}} 199 {{=form}} 200 {{except:}} 201 {{pass}} 202 </div> 203 <p> </p> 204 {{try:}} 205 {{=list}} 206 {{except:}} 207 {{pass}} 208 }}}