Hello
I have a SQLFORM.grid page
Values for one filed (code) in add or edit view is filed with js code from
values of two other fields.
User can deactivate this "record" - it can not be deleted only status is
set to e.g. 100
If user creates a new record that creates the same values for code field
(two users can have the same values in code field, since it is not based on
id) I would like to remind the user that record with this value already
exist in the db and if he wants to activate the record and not create a new
one.
I hope the question is clear enough
Also if creating value for field sh_code is possible with python I would
rather use it but user has to see the values of sc_code field before db
insert
Thank you
my controler code
def turnusi():
user = auth.user_id
org = db(db.auth_user.id ==
user).select(db.auth_user.organization)[0]["organization"]
db.worker.w_user.default = user
db.worker.w_organisation.default = org
#####Naredimo še grid za šifrant turnusov
db.shift.sh_organisation.default = org
query_shifts = ((db.shift.sh_organisation == org) & (db.shift.sh_status ==
1))
query_inactive = db((db.shift.sh_organisation == org) & (db.shift.sh_status
== 100)).select().as_list()
#print query_inactive
fields_shifts =(
db.shift.sh_code,
db.shift.sh_name,
db.shift.sh_color,
db.shift.sh_start1,
db.shift.sh_end1,
db.shift.sh_length1,
db.shift.sh_start2,
db.shift.sh_end2,
db.shift.sh_length2,
db.shift.sh_duration1,
# db.shift.sh_start3,
# db.shift.sh_end3,
# db.shift.sh_start4,
# db.shift.sh_end4,
# db.shift.sh_start5,
# db.shift.sh_end5,
db.shift.sh_note)
db.shift.sh_organisation.readable = False
db.shift.sh_organisation.writable = False
db.shift.sh_organisation.editable = False
#db.shift.sh_code.editable = db.shift.sh_code.writable = False
#db.shift.sh_duration.writable = False
db.shift.sh_duration1.readable = db.shift.sh_duration1.writable = False
#db.shift.sh_length1.writable = False
#db.shift.sh_start2.readable = db.shift.sh_start2.writable = False
#db.shift.sh_start2.writable = False
#db.shift.sh_end2.readable = db.shift.sh_end2.writable = False
#db.shift.sh_end2.writable = False
#db.shift.sh_length2.readable = db.shift.sh_length2.writable = False
db.shift.sh_start3.readable = db.shift.sh_start3.writable = False
#db.shift.sh_start3.writable = False
db.shift.sh_end3.readable = db.shift.sh_end3.writable = False
#db.shift.sh_end3.writable = False
db.shift.sh_length3.readable = db.shift.sh_length3.writable = False
db.shift.sh_start4.readable = db.shift.sh_start4.writable = False
#db.shift.sh_start4.writable = False
db.shift.sh_length4.readable = db.shift.sh_length4.writable = False
db.shift.sh_end4.readable = db.shift.sh_end4.writable = False
#db.shift.sh_end4.writable = False
db.shift.sh_start5.readable = db.shift.sh_start5.writable = False
#db.shift.sh_start5.writable = False
db.shift.sh_length5.readable = db.shift.sh_length5.writable = False
db.shift.sh_end5.readable = db.shift.sh_end5.writable = False
#db.shift.sh_end5.writable = False#
db.shift.sh_code.widget = SQLFORM.widgets.string.widget
db.shift.sh_name.widget = SQLFORM.widgets.string.widget
db.shift.sh_note.widget = SQLFORM.widgets.string.widget
grid_shifts = SQLFORM.grid(query=query_shifts,
fields=fields_shifts, searchable=False,create=True,
deletable=False, editable=True, paginate=25, buttons_placement = 'right',
showbuttontext = False,formname = 'shiftTable',
formargs=dict(message_onsuccess=T('New record inserted'),
message_onfailure=T('Form has errors')),
#oncreate=myfunction,
ui = dict(widget='',
header='',
content='',
default='',
cornerall='',
cornertop='',
cornerbottom='',
button='button btn btn-default',
buttontext='buttontext button',
buttonadd='icon plus icon-plus glyphicon glyphicon-plus',
buttonback='icon leftarrow icon-arrow-left glyphicon
glyphicon-arrow-left',
buttonexport='icon downarrow icon-download glyphicon
glyphicon-download',
buttondelete='icon trash icon-trash glyphicon glyphicon-trash',
buttonedit='icon pen icon-pencil glyphicon glyphicon-pencil',
buttontable='icon rightarrow icon-arrow-right glyphicon
glyphicon-arrow-right',
buttonview='icon magnifier icon-zoom-in glyphicon
glyphicon-eye-open',
buttonvidov = 'icon glyphicon glyphicon-euro'
),
exportclasses = dict(csv_with_hidden_cols=False, html = False, tsv =
False, tsv_with_hidden_cols=False, json = False))
# for input in grid_shifts.elements('input', _class='string'):
# input['_class'] = 'testniKlass'
if request.args and request.args[0] in ['edit', 'new']:
#dolocamo sirino polj
grid_shifts.element('input[name=sh_color]')['_style']='width:30%'
grid_shifts.element('[title=Back]').parent['_href'] =
URL('settings','turnusi')
return dict(grid_shifts=grid_shifts,query_inactive=query_inactive)
my js code in view to get values for field sh_code
$( ".time" ).change(function() {
//length1
start = $('#shift_sh_start1').val(),
end = $('#shift_sh_end1').val();
var dur = compareTime(start,end)/ 60;
$('#shift_sh_length1').val(dur);
//length2
start2 = $('#shift_sh_start2').val(),
end2 = $('#shift_sh_end2').val();
if (start2){
var codeBeg1 = start.split(":")[0] + start.split(":")[1];
var codeEnd1 = end.split(":")[0] + end.split(":")[1];
var codeBeg2 = start2.split(":")[0] + start2.split(":")[1];
var codeEnd2 = end2.split(":")[0] + end2.split(":")[1];
var tCodeL = codeBeg1 +'-' + codeEnd1 + '&' + codeBeg2 + '-' + codeEnd2;
$('#shift_sh_code').val(tCodeL);
var dur2 = compareTime(start2,end2)/ 60;
$('#shift_sh_length2').val(dur2);
$('#shift_sh_duration').val(dur + dur2);
}
else {
$('#shift_sh_length2').val(null);
//code
var beg = start.split(":")[0] + start.split(":")[1];
var ed = end.split(":")[0] + end.split(":")[1];
var tCode = beg +"-" + ed;
$('#shift_sh_code').val(tCode);
$('#shift_sh_duration').val(dur);
}
});
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.