Many values I don't need to show in the view so I have done this:
def join():
    '''
    NOTES:Covers the event bio and any payments if needed.
    '''
    event_details = db.event[request.args(0)]
    if not event_details:
        redirect(URL('default', 'index'))
    attender_count = db(db.event_attender.event == request.args(0)).count()
    event_full = attender_count >= event_details.maximum_attendance
    payment_needed = event_details.ticket_cost
    db.event_attender.event.default = request.args(0)
    bio_form = crud.create(db.event_attender)
    return dict(event_full = event_full,
                payment_needed = payment_needed,
                event_details = event_details,
                bio_form = bio_form)

With this in the view:
<div>
            {{=bio_form.custom.begin}}
            Show Attendance: {{=bio_form.custom.widget.show_attendance}}
            {{=bio_form.custom.widget.bio_text}}
            {{=bio_form.custom.submit}}
            {{=bio_form.custom.end}}</div>
If I print the form with {{=bio_form}} it works just fine, but I see all the extra data fields.
Is there a way to fix this?
For a golden star I have the model as follows:
# -*- coding: utf-8 -*-
db.define_table('event_attender',
            Field('attender', db.auth_user),
            Field('event', db.event),
            Field('role', 'string', default="attender"),
            Field('status', 'string', default="not_present"),
            Field('show_attendance', 'boolean', default=True),
            Field('bio_text', 'text'),
            Field('QR_quick_connect', 'string')
            )

db.event_attender.role.requires = IS_IN_SET(["attender", 'admin', 'organizer', 'speaker', 'booth']) db.event_attender.status.requires = IS_IN_SET(["present", 'not_present', 'banned']) db.event_attender.attender.requires = IS_IN_DB(db,db.auth_user.id,'%(nickname)s')
db.event_attender.event.requires = IS_IN_DB(db,db.event.id,'%(name)s')
db.event_attender.bio_text.widget = lambda field,value: \
SQLFORM.widgets.text.widget(field,value,_class='text nicedit', _style="color:red")
if auth.is_logged_in():
    db.event_attender.attender.default = auth.user.id

Best Regards,
Jason Brower

Reply via email to