Changes between Version 9 and Version 10 of BluePrintRESTImplementation


Ignore:
Timestamp:
01/01/09 03:59:26 (16 years ago)
Author:
Fran Boon
Comment:

Shelter example with adtitle in list_create & showing Model & Views

Legend:

Unmodified
Added
Removed
Modified
  • BluePrintRESTImplementation

    v9 v10  
    11Implementation for the [wiki:BluePrintREST BluePrintREST]:
    22
     3== Model ==
     4Simplified:
     5{{{
     6db.define_table('cr_shelter',
     7                SQLField('modified_on','datetime',default=now),
     8                SQLField('uuid',length=64,default=uuid.uuid4()),
     9                SQLField('name'))
     10db.cr_shelter.represent=lambda table:shn_list_item(table,resource='shelter',action='display')
     11}}}
     12
     13== Controller ==
    314{{{
    415# RESTful controller function
    516# Anonymous users can Read
    617# Authentication required for Create/Update/Delete
    7 def organisation():
    8     table=db.or_organisation
     18def shelter():
     19    table=db.cr_shelter
    920    if request.args:
    1021        method=request.args[0]
     
    1425            item=t2.display(table)
    1526            response.view='display.html'
    16             title=T('Organisation Details')
    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'))
    1930            return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list)
    2031        except:
    2132            if method=="create":
    2233                if t2.logged_in:
    23                     t2.messages.record_created=T("Organisation added")
     34                    t2.messages.record_created=T("Shelter added")
    2435                    form=t2.create(table)
    2536                    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'))
    2839                    return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list)
    2940                else:
    30                     t2.redirect('login',vars={'_destination':'organisation/create'})
     41                    t2.redirect('login',vars={'_destination':'shelter/create'})
    3142            elif method=="display":
    3243                item=t2.display(table)
    3344                response.view='display.html'
    34                 title=T('Organisation Details')
    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'))
    3748                return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list)
    3849            elif method=="update":
    3950                if t2.logged_in:
    40                     t2.messages.record_modified=T("Organisation updated")
     51                    t2.messages.record_modified=T("Shelter updated")
    4152                    form=t2.update(table)
    4253                    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'))
    4556                    return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list)
    4657                else:
    47                     t2.redirect('login',vars={'_destination':'organisation/update/%i' % t2.id})
     58                    t2.redirect('login',vars={'_destination':'shelter/update/%i' % t2.id})
    4859            elif method=="delete":
    4960                if t2.logged_in:
    50                     t2.messages.record_deleted=T("Organisation deleted")
    51                     t2.delete(table,next='organisation')
     61                    t2.messages.record_deleted=T("Shelter deleted")
     62                    t2.delete(table,next='shelter')
    5263                    return
    5364                else:
    54                     t2.redirect('login',vars={'_destination':'organisation/delete/%i' % t2.id})
     65                    t2.redirect('login',vars={'_destination':'shelter/delete/%i' % t2.id})
    5566            else:
    5667                # Invalid!
     
    6071        list=t2.itemize(table)
    6172        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')
    6576        if t2.logged_in:
    6677            form=t2.create(table)
    6778            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)
    6981        else:
    70             add=A(T("Add Organisation"),_href=t2.action('organisation','create'))
     82            add=A(T("Add Shelter"),_href=t2.action('shelter','create'))
    7183            response.view='list.html'
    7284            return dict(module_name=module_name,modules=modules,options=options,list=list,title=title,subtitle=subtitle,add=add)
    7385}}}
     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 &#040;<span class='red'> * </span>&#041; are mandatory and must be filled.</p>
     97<div class='form-container'>
     98{{try:}}
     99 {{=form}}
     100{{except:}}
     101{{pass}}
     102</div>
     103<p>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</p>
     176{{try:}}
     177 {{=H3(addtitle)}}
     178{{except:}}
     179{{pass}}
     180<p><b>Key:</b><b class='red'> * </b> - Fields tagged with a star &#040;<span class='red'> * </span>&#041; 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 &#040;<span class='red'> * </span>&#041; are mandatory and must be filled.</p>
     197<div class='form-container'>
     198{{try:}}
     199 {{=form}}
     200{{except:}}
     201{{pass}}
     202</div>
     203<p>&nbsp;</p>
     204{{try:}}
     205 {{=list}}
     206{{except:}}
     207{{pass}}
     208}}}