| Version 18 (modified by , 17 years ago) ( diff ) |
|---|
Implementation for the BluePrintREST:
Model
Simplified:
db.define_table('cr_shelter',
SQLField('modified_on','datetime',default=now),
SQLField('uuid',length=64,default=uuid.uuid4()),
SQLField('name'))
db.cr_shelter.represent=lambda table:shn_list_item(table,resource='shelter',action='display')
Controller
# RESTful controller function
# Anonymous users can Read
# Authentication required for Create/Update/Delete
def shelter():
resource='shelter'
table=db['%s_%s' % (module,resource)]
if request.args:
method=request.args[0]
try:
# 1st argument is ID not method => display
id = int(method)
item=t2.display(table)
response.view='display.html'
title=T('Shelter Details')
edit=A(T("Edit"),_href=t2.action(resource,['update',t2.id]))
list_btn=A(T("List Shelters"),_href=t2.action(resource))
return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list_btn=list_btn)
except:
if method=="create":
if t2.logged_in:
t2.messages.record_created=T("Shelter added")
form=t2.create(table)
response.view='create.html'
title=T('Add Shelter')
list_btn=A(T("List Shelters"),_href=t2.action(resource))
return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list_btn=list_btn)
else:
t2.redirect('login',vars={'_destination':'%s/create' % resource})
elif method=="display":
t2.redirect(resource,args=t2.id)
elif method=="update":
if t2.logged_in:
t2.messages.record_modified=T("Shelter updated")
form=t2.update(table)
response.view='update.html'
title=T('Edit Shelter')
list_btn=A(T("List Shelters"),_href=t2.action(resource))
return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list_btn=list_btn)
else:
t2.redirect('login',vars={'_destination':'%s/update/%i' % (resource,t2.id)})
elif method=="delete":
if t2.logged_in:
t2.messages.record_deleted=T("Shelter deleted")
t2.delete(table,next=resource)
return
else:
t2.redirect('login',vars={'_destination':'%s/delete/%i' % (resource,t2.id)})
else:
# Invalid!
return
else:
# No arguments => default to list
list=t2.itemize(table)
if list=="No data":
list="No Shelters currently registered."
title=T('List Shelters')
subtitle=T('Shelters')
if t2.logged_in:
form=t2.create(table)
response.view='list_create.html'
addtitle=T('Add New Shelter')
return dict(module_name=module_name,modules=modules,options=options,list=list,form=form,title=title,subtitle=subtitle,addtitle=addtitle)
else:
add_btn=A(T("Add Shelter"),_href=t2.action(resource,'create'))
response.view='list.html'
return dict(module_name=module_name,modules=modules,options=options,list=list,title=title,subtitle=subtitle,add_btn=add_btn)
Views
create.html
{{extend 'layout.html'}}
{{try:}}
{{=H2(title)}}
{{except:}}
{{pass}}
{{include 'key.html'}}
<div class='form-container'>
{{try:}}
{{=form}}
{{except:}}
{{pass}}
</div>
<p> </p>
{{try:}}
{{=list_btn}}
{{except:}}
{{pass}}
display.html
{{extend 'layout.html'}}
{{try:}}
{{=H2(title)}}
{{except:}}
{{pass}}
{{try:}}
{{=edit}}
{{except:}}
{{pass}}
<div class='item-container'>
{{try:}}
{{=item}}
{{except:}}
{{pass}}
</div>
<p> </p>
{{try:}}
{{=list_btn}}
{{except:}}
{{pass}}
list.html
{{extend 'layout.html'}}
{{try:}}
{{=H2(title)}}
{{except:}}
{{pass}}
{{try:}}
{{=H3(subtitle)}}
{{except:}}
{{pass}}
<div id='list-container'>
{{try:}}
{{=list}}
{{except:}}
{{pass}}
</div>
<p> </p>
{{try:}}
{{=add_btn}}
{{except:}}
{{pass}}
list_create.html
{{extend 'layout.html'}}
{{try:}}
{{=H2(title)}}
{{except:}}
{{pass}}
{{try:}}
{{=H3(subtitle)}}
{{except:}}
{{pass}}
<div id='list-container'>
{{try:}}
{{=list}}
{{except:}}
{{pass}}
</div>
<p> </p>
{{try:}}
{{=H3(addtitle)}}
{{except:}}
{{pass}}
<div class='form-container'>
{{try:}}
{{=form}}
{{except:}}
{{pass}}
</div>
{{include 'key.html'}}
update.html
{{extend 'layout.html'}}
{{try:}}
{{=H2(title)}}
{{except:}}
{{pass}}
{{include 'key.html'}}
<div class='form-container'>
{{try:}}
{{=form}}
{{except:}}
{{pass}}
</div>
<p> </p>
{{try:}}
{{=list_btn}}
{{except:}}
{{pass}}
key.html
<p><b>{{=T('Key')}}:</b><b class='red'> * </b> - {{=T('Fields tagged with a star')}} (<span class='red'> * </span>) {{=T('are mandatory and must be filled')}}.</p>
Note:
See TracWiki
for help on using the wiki.

