Changes between Version 5 and Version 6 of BluePrintRESTImplementation


Ignore:
Timestamp:
12/31/08 22:47:22 (13 years ago)
Author:
Fran Boon
Comment:

Change to completed Shelter example

Legend:

Unmodified
Added
Removed
Modified
  • BluePrintRESTImplementation

    v5 v6  
    11{{{
    22# RESTful controller function
    3 def feature():
     3# NB No login required:
     4# Anonymous users can Read/Create
     5# Authentication required for Update/Delete
     6def shelter():
     7    table=db.cr_shelter
    48    if request.args:
    59        method=request.args[0]
    610        try:
     11            # 1st argument is ID not method => display
    712            id = int(method)
    8             item=t2.display(db.gis_feature)
    9             response.view='gis/display_feature.html'
    10             return dict(module_name=module_name,modules=modules,options=options,item=item)
     13            item=t2.display(table)
     14            response.view='display.html'
     15            title=T('Shelter Details')
     16            edit=A(T("Edit"),_href=t2.action('shelter',['update',t2.id]))
     17            list=A(T("List Shelters"),_href=t2.action('shelter'))
     18            return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list)
    1119        except:
    1220            if method=="create":
    13                 form=t2.create(db.gis_feature)
    14                 response.view='gis/add_feature.html'
    15                 return dict(module_name=module_name,modules=modules,options=options,form=form)
     21                t2.messages.record_created=T("Shelter added")
     22                form=t2.create(table)
     23                response.view='create.html'
     24                title=T('Add Shelter')
     25                list=A(T("List Shelters"),_href=t2.action('shelter'))
     26                return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list)
    1627            elif method=="display":
    17                 item=t2.display(db.gis_feature)
    18                 response.view='gis/display_feature.html'
    19                 return dict(module_name=module_name,modules=modules,options=options,item=item)
     28                item=t2.display(table)
     29                response.view='display.html'
     30                title=T('Shelter Details')
     31                edit=A(T("Edit"),_href=t2.action('shelter',['update',t2.id]))
     32                list=A(T("List Shelters"),_href=t2.action('shelter'))
     33                return dict(module_name=module_name,modules=modules,options=options,item=item,title=title,edit=edit,list=list)
    2034            elif method=="update":
    2135                if t2.logged_in:
    22                     form=t2.update(db.gis_feature)
    23                     response.view='gis/update_feature.html'
    24                     return dict(module_name=module_name,modules=modules,options=options,form=form)
     36                    t2.messages.record_modified=T("Shelter updated")
     37                    form=t2.update(table)
     38                    response.view='update.html'
     39                    title=T('Edit Shelter')
     40                    list=A(T("List Shelters"),_href=t2.action('shelter'))
     41                    return dict(module_name=module_name,modules=modules,options=options,form=form,title=title,list=list)
    2542                else:
    2643                    t2.redirect('login')
    2744            elif method=="delete":
    28                 t2.delete(db.gis_feature,next='features')
    29                 return
     45                if t2.logged_in:
     46                    t2.messages.record_deleted=T("Shelter deleted")
     47                    t2.delete(table,next='shelter')
     48                    return
     49                else:
     50                    t2.redirect('login')
    3051            else:
    3152                # Invalid!
    3253                return
    3354    else:
    34         # List Features
    35         list=t2.itemize(db.gis_feature)
    36         response.view='gis/list.html'
    37         return dict(module_name=module_name,modules=modules,options=options,list=list)
     55        # No arguments => default to list
     56        list=t2.itemize(table)
     57        if list=="No data":
     58            list="No Shelters currently registered."
     59        response.view='list.html'
     60        title=T('List Shelters')
     61        subtitle=T('Shelters')
     62        add=A(T("Add Shelter"),_href=t2.action('shelter','create'))
     63        return dict(module_name=module_name,modules=modules,options=options,list=list,title=title,subtitle=subtitle,add=add)
    3864}}}