示例#1
0
def index():
    request_fields = request.vars.fields or 'default'

################################ The core ######################################
    # Specify structured fields for the multi-line form layout.
    # A "None" indicates an empty line over which the precedent line spans
    if request_fields == 'default':
        fields = [['name', 'category'], 
                  ['code', 'keywords'], 
                  ['publish_start_date', None], 
                  ['publish_end_date', None], 
                  'url',
                  ['description', 'price'], 
                  [None, 'point'], 
                  'memo']
    elif request_fields == 'fields_2':
        fields = [['name', 'category'], 
                  None,
                  ['code', 'keywords']]
    elif request_fields == 'fields_3':
        fields = [['name','category'],
                  [None,'code'],
                  [None,'keywords']]
    elif request_fields == 'fields_4':
        fields = [['id','name'],
                  ['category','code'],
                  [None,'keywords']]
    elif request_fields == 'fields_5':
        fields = [['name','category'],
                  ['id','code'],
                  [None,'keywords']]           
    # Standard usage
    form = SOLIDFORM(db.product, fields=fields)
    # Factory usage
    form_factory = SOLIDFORM.factory([Field('xxx'), Field('yyy'), Field('zzz')], Field('aaa'))
    # Readonly usage
    product = db(db.product.id>0).select().first()
    form_readonly = SOLIDFORM(db.product, product, fields=fields, showid=False, readonly=True)
    # edit form
    form_edit = SOLIDFORM(db.product, product, fields=fields)
################################################################################

    if form.accepts(request.vars, session):
        session.flash = 'submitted %s' % form.vars
        redirect(URL('index'))
    if form_factory.accepts(request.vars, session, formname='factory'):
        session.flash = 'submitted %s' % form_factory.vars
        redirect(URL('index'))
     
    style = STYLE("""input[type="text"], textarea {width:100%; max-height: 50px;} 
                     .w2p_fw {padding-right: 20px; max-width:200px;}
                     .w2p_fl {background: #eee;}""")
    return dict(form=DIV(style, form), 
                form__factory=form_factory, form__readonly=form_readonly, form__edit=form_edit,
                form_args=DIV(A('fields=default', _href=URL(vars={'fields':'default'})), ' ',
                              A('fields=fields_2', _href=URL(vars={'fields':'fields_2'})), ' ',
                              A('fields=fields_3', _href=URL(vars={'fields':'fields_3'})), ' ',
                              A('fields=fields_4', _href=URL(vars={'fields':'fields_4'})), ' ',
                              A('fields=fields_5', _href=URL(vars={'fields':'fields_5'})), ' ',
                               ))
示例#2
0
def contact():
    from plugin_solidform import SOLIDFORM
    from plugin_notemptymarker import mark_not_empty
    
    def _send(to, subject, message):
        if MAIL_SERVER == 'logging':
            from gluon.tools import Mail
            mail = Mail()   
            mail.settings.server = MAIL_SERVER
            mail.settings.sender = MAIL_SENDER
            mail.settings.login = MAIL_LOGIN
            return mail.send(to=to, subject=subject, message=message)
        else:
            import smtplib
            from email.MIMEText import MIMEText
            from email.Utils import formatdate
            
            msg = MIMEText(message)
            msg['Subject'] = subject
            msg['From'] = MAIL_SENDER
            msg['To'] = to
            msg['Date'] = formatdate()
            
            s = smtplib.SMTP(MAIL_SERVER)
            try:
                s.sendmail(MAIL_SENDER, [to], msg.as_string())
                return True
            finally:
                s.close()
            return False
            
    fields = [
        Field('name', label=T('Name'), requires=IS_NOT_EMPTY()),
        Field('email', label=T('Email'), requires=IS_EMAIL()),
        Field('subject', label=T('Subject'), requires=IS_LENGTH(200, 1)),
        Field('message', 'text', label=T('Message'), requires=IS_LENGTH(5000)),
    ]
    mark_not_empty(fields)
    form = SOLIDFORM.factory(submit_button=T('Send'), *fields)
    if form.accepts(request.vars, session):
        _send(
            to=CONTACT_TO,
            subject='sqlabs contact subject: %s' % form.vars.subject,
            message='name: %s\nemail: %s\nmessage: \n%s' % (form.vars.name, form.vars.email, form.vars.message),
        )
        session.flash = '%s %s' % (T('Thank you for your inquiry.'), T('Your message has been sent.'))
        redirect(request.vars.redirect or URL('default', 'index'))
        
    style = STYLE(""".w2p_fl {background: #eee;}""")
    return dict(form=DIV(style, form))
    
示例#3
0
def index():
    request_fields = request.vars.fields or 'default'

    ################################ The core ######################################
    # Specify structured fields for the multi-line form layout.
    # A "None" indicates an empty line over which the precedent line spans
    if request_fields == 'default':
        fields = [['name', 'category'], ['code', 'keywords'],
                  ['publish_start_date', None], ['publish_end_date', None],
                  'url', ['description', 'price'], [None, 'point'], 'memo']
    elif request_fields == 'fields_2':
        fields = [['name', 'category'], None, ['code', 'keywords']]
    elif request_fields == 'fields_3':
        fields = [['name', 'category'], [None, 'code'], [None, 'keywords']]
    elif request_fields == 'fields_4':
        fields = [['id', 'name'], ['category', 'code'], [None, 'keywords']]
    elif request_fields == 'fields_5':
        fields = [['name', 'category'], ['id', 'code'], [None, 'keywords']]
    # Standard usage
    form = SOLIDFORM(db.product, fields=fields)
    # Factory usage
    form_factory = SOLIDFORM.factory(
        [Field('xxx'), Field('yyy'), Field('zzz')], Field('aaa'))
    # Readonly usage
    product = db(db.product.id > 0).select().first()
    form_readonly = SOLIDFORM(db.product,
                              product,
                              fields=fields,
                              showid=False,
                              readonly=True)
    # edit form
    form_edit = SOLIDFORM(db.product, product, fields=fields)
    ################################################################################

    if form.accepts(request.vars, session):
        session.flash = 'submitted %s' % form.vars
        redirect(URL('index'))
    if form_factory.accepts(request.vars, session, formname='factory'):
        session.flash = 'submitted %s' % form_factory.vars
        redirect(URL('index'))

    style = STYLE(
        """input[type="text"], textarea {width:100%; max-height: 50px;} 
                     .w2p_fw {padding-right: 20px; max-width:200px;}
                     .w2p_fl {background: #eee;}""")
    return dict(form=DIV(style, form),
                form__factory=form_factory,
                form__readonly=form_readonly,
                form__edit=form_edit,
                form_args=DIV(
                    A('fields=default', _href=URL(vars={'fields': 'default'})),
                    ' ',
                    A('fields=fields_2',
                      _href=URL(vars={'fields': 'fields_2'})),
                    ' ',
                    A('fields=fields_3',
                      _href=URL(vars={'fields': 'fields_3'})),
                    ' ',
                    A('fields=fields_4',
                      _href=URL(vars={'fields': 'fields_4'})),
                    ' ',
                    A('fields=fields_5',
                      _href=URL(vars={'fields': 'fields_5'})),
                    ' ',
                ))