diff --git a/applications/examples/static/css/stupid.css b/applications/examples/static/css/stupid.css index 8514b403..0c8c25d7 100644 --- a/applications/examples/static/css/stupid.css +++ b/applications/examples/static/css/stupid.css @@ -68,7 +68,7 @@ header, footer {with:100%} /*** forms ***/ input:not([type]), input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]), [type=file]:before {outline:none; padding:0.5em 1em; margin:0.5px; border-bottom:1px solid #ddd; width:100%} textarea {width:100%; border:1px solid #ddd; padding:4px 8px; outline:none; outline:none} -select {-webkit-appearance:none; outline:none; padding:0.5em 1em; border-radius:0; margin:0.5px; border-bottom:1px solid #ddd} +select {-webkit-appearance:none; outline:none; padding:0.5em 1em; border-radius:0; margin:0.5px; border-bottom:1px solid #ddd; width:100%;background-color:transparent} input, textarea, select, button {font-size:12px} input:not([type]):hover, input:not([type=checkbox]):not([type=radio]):not([type=button]):not([type=submit]):hover, select:hover, textarea:hover {background-color:#fbf6d9; transition:background-color 1s ease} input:invalid, input.error {background:#cc1f00!important;color:white} diff --git a/gluon/dal.py b/gluon/dal.py index 9fb8ceb5..1c2a76fe 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -72,12 +72,13 @@ def _default_validators(db, field): if not field.notnull: requires = validators.IS_EMPTY_OR(requires) return requires + # does not get here for reference and list:reference if field.unique: - requires.append(validators.IS_NOT_IN_DB(db, field)) - - if field.notnull or field.unique and not field_type in ['string','boolean']: + requires.insert(0,validators.IS_NOT_IN_DB(db, field)) + excluded_fields = ['string','upload','text','password','boolean'] + if (field.notnull or field.unique) and not field_type in excluded_fields: requires.insert(0,validators.IS_NOT_EMPTY()) - elif not field.notnull and requires: + elif not field.notnull and not field.unique and requires: requires[0] = validators.IS_EMPTY_OR(requires[0]) return requires