Anybody see anything wrong with the second controller below that gets 
called by the first one?

The error is that no data gets written to table IdeaComment, but if I 
substitute "smartgrid" for "factory", all suggestions instead of just the 
one selected in the first controller get displayed, and forces me to 
re-choose a suggestion, then it writes it correctly.

No errors displayed when "factory" is used in second controller, but no 
record is written.

Controller

@auth.requires_login()
def add_suggestion_comments(): ## This controller selects a suggestion 
record (db.Idea) and passes selection to controller comment_on_a_suggestion 
below.
    db.Suggestion.ideaID.represent = lambda id, r: A(db.Idea(id).ideaTitle, 
_href=URL('comment_on_a_suggestion', vars=dict(filter=id))) 
    query = ((db.Suggestion.ideaID == db.Idea.id))
    suggestionList = 
SQLFORM.grid(query,create=True,editable=True,deletable=True, 
details=True,links_in_grid=True, paginate=10, 
 fields=[db.Suggestion.ideaID, db.Idea.ideaShortSummary], 
maxtextlength={db.Idea.ideaShortSummary:140})
    return dict(suggestionList = suggestionList)
    
@auth.requires_login() ## This controller receives Idea.id parm from 
add_suggestion_comments controller above.  It then writes user comments to 
table db.IdeaComment
def comment_on_a_suggestion(): 
    db.IdeaComment.ideaID.readable = True
    db.IdeaComment.ideaID.writable = False
    db.auth_user.partyID.readable = db.auth_user.partyID.writable = False   
 
    db.IdeaComment.ideaID.default = request.vars.filter
    db.IdeaComment.ideaStageID.default = 1  ##  make default 'Suggestion'   
 
    db.IdeaComment.ideaStageID.readable = 
db.IdeaComment.ideaStageID.writable = False    
    form=SQLFORM.factory(db.IdeaComment)
    if form.process().accepted:
        response.flash='Thanks for adding a comment to a suggestion.'
    return dict(form=form) 


Model

db.define_table('IdeaComment', ## lets any registered user make a commment 
on suggestion
Field('ideaID','reference Idea'), 
Field('partyID','reference Party', label='Commenter', comment='Party that 
is commenting'), ## this is commenter.  Has to be logged on.
Field('ideaStageID','reference IdeaStageLookupTable', comment='What stage 
of the idea do you want to comment on?  Suggestion, proposal, effort, 
project, program?'),
Field('ideaComment','string', label='Comment', comment='Your comments'),
Field('personClassCode','reference PersonClass', comment='In what capacity 
are you making this comment?'))

## ---------------------------------------------------
db.define_table('Idea',
Field('ideaTitle','string', length=140, label='Idea Title', comment='140 
characters max'),
Field('ideaShortSummary','string', length=280, label='Summary info', 
comment='short summary - 280 characters max'),
Field('ideaStageID','reference IdeaStageLookupTable', label='Idea Stage', 
comment='Idea stage may be part of a series of stages of an idea: 
Suggestion, Proposal, Effort, Project, and Program.  (1) Suggestion - The 
first time an idea is presented; the original concept (2) Proposal - a 
specific plan to fully implement and idea by a specific party (3) Effort - 
the work done on a proposal such as evaluation before the effort is 
transformed into a project.  It may never transform into a project, in 
which case it can be categorized as a task or series of tasks (4) Project - 
sequence of tasks, planned from beginning to end, bounded by time, i.e., 
has start and end date, resources, and required results, defined outcome 
and "deliverables" (5) Program - a permanent or long-term re-occurring 
event, such as the "Head-Start Program" or a warehouse inventory system.'))

## ---------------------------------------------------
db.define_table('Suggestion', 
Field('ideaID', 'reference Idea',label='Suggestion Idea ID'), ## not sure 
if this should not be objectID: Field('objectID', 'reference 
ObjectSuperType'),
Field('objectID', 'reference ObjectSuperType'), ## harmless redundancy, but 
keeps my options open
Field('IPcreatedBy','string'),
Field('partyID','reference Party', label='Party making the suggestion'), ## 
need to make this limited to what person's party capacities are
Field('personClassCode','string'))

thanks,

Alex Glaros

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to