Ok great, I have noted:

my_extra_element = TR(LABEL('Test:'), INPUT(_name='test',value='Some
text',_type='text'))
form[0].insert(-1,my_extra_element)


Now, in  view how do I show the field "test" using custom display as in
using {{=form}} its appearing:

{{=form.custom.widget.test}}

Kind regards,


On Thu, Dec 6, 2012 at 9:32 PM, Anthony <abasta...@gmail.com> wrote:

> I haven't looked at this in detail, but if you want to add an extra field
> to a form, see
> http://web2py.com/books/default/chapter/29/07#Adding-extra-form-elements-to-SQLFORM
>  (you
> can also use the DOM manipulation methods described here:
> http://web2py.com/books/default/chapter/29/05#Server-side-DOM-and-parsing
> ).
>
> If you need to load options in a select dynamically based on other
> selections in the form, that gets more complicated. For some solutions, see
> here<http://stackoverflow.com/questions/8146260/best-practice-for-populating-dropdown-based-on-other-dropdown-selection-in-web2p/8152910#8152910>
> .
>
> Anthony
>
>
> On Thursday, December 6, 2012 4:02:37 AM UTC-5, software.ted wrote:
>>
>> Apologies for my ignorance but I want to add a field [list of items] to a
>> SQLFORM created from a table that does not have that field. So to add the
>> field I am using Field.Virtual as follows:
>>
>> db.staff_time_record.**departments = Field.Virtual(db.department)
>>
>> But this does not seem to allow me to create a virtual field with a
>> reference of all departments in the table as a list. Then what I want to do
>> if this works or is possible, use on the change of the drop down list of
>> departments field on the form to list only the offices in the selected
>> department using jQuery in the view as follows:
>>
>> jQuery('#department').on(**function(){
>>      ajax('update_office',['**departments'],
>> 'staff_time_record_office_id')**;
>>
>> My worry here again even if I have not tested this yet is, when the page
>> loads first time, it will load all Offices cause of the db defaults.
>>
>> Please correct me if am way out of line in the normal way of doing things
>> in web2py....I have added various components of application.
>>
>> Model:
>>
>> <code>
>> import datetime
>> now = datetime.datetime.today()
>> db.define_table("department",
>>     Field("name"),
>>     format="%(name)s"
>> )
>> db.define_table("office",
>>     Field("name"),
>>     Field("department_id",
>>     db.department,
>>     requires=IS_IN_DB(db, 'department.id', '%(name)s')),
>>     format="%(name)s"
>> )
>> db.define_table("staff_time_**record",
>>     Field("time_in","datetime", default=now),
>>     Field("office_id", db.office, 
>> requires=IS_IN_DB(db,'office.**id<http://office.id>
>> ','%(name)s'))
>> )
>>
>> </code>
>>
>> Controller:
>>
>> <code>
>> def index():
>>     db.staff_time_record.**departments = Field.Virtual(db.department)
>>     form = SQLFORM(db.staff_time_record)
>>     if form.process().accepted:
>>         response.flash("Time Card for the offer recorded")
>>     elif form.errors:
>>         response.flash("There was an error recording the employee record")
>>     return dict(form=form)
>> def update_office():
>>     return [OPTION(o.name, _value=o.id) for o in
>> db(db.office.department_id == request.vars.departments)]
>> </code>
>>
>> The View:
>>
>> <code>
>>
>> {{extend 'layout.html'}}
>> <h3>Please record time officer reported for work</h3>
>> {{=form.custom.start}}
>> <table>
>> <tr>
>>         <td>Officer Department:</td>
>>         <td>{{=form.custom.widget.**departments}}</td>
>>     </tr>
>>     <tr>
>>         <td>Officer title:</td>
>>         <td>{{=form.custom.widget.**office_id}}</td>
>>     </tr>
>>     <tr>
>>         <td>Time Reported: </td>
>>     <td>{{=form.custom.widget.**time_in}}</td>
>>     </tr>
>>     <tr>
>>         <td></td>
>>         <td>{{=form.custom.submit}}</**td>
>>     </tr>
>> </table>
>> {{=form.custom.end}}
>>
>> <script>
>>     jQuery('#department').on(**function(){
>>     ajax('update_office',['**departments'],
>> 'staff_time_record_office_id')**;
>>     }
>> </script>
>>
>> </code>
>>
>>
>> I think if I get this and understand whats really going on will really
>> want us to be part of web2py conf 2013!!!
>>
>> Ideas to clarify the gray areas above will be appreciated.
>>
>>
>>
>> --
>> ..............................**..............................**
>> ...........................
>> Teddy Lubasi Nyambe
>> Opensource Zambia
>> Lusaka, ZAMBIA
>>
>> Cell: +260 97 7760473
>> website: http://www.opensource.org.zm
>>
>> ~/
>> Human Knowledge belongs to the world! - AntiTrust
>>
>> Man is a tool-using animal. Without tools he is nothing, with tools he is
>> all - Thomas Carlyle 1795-1881
>>
>> /~
>>
>  --
>
>
>
>



-- 
.......................................................................................
Teddy Lubasi Nyambe
Opensource Zambia
Lusaka, ZAMBIA

Cell: +260 97 7760473
website: http://www.opensource.org.zm

~/
Human Knowledge belongs to the world! - AntiTrust

Man is a tool-using animal. Without tools he is nothing, with tools he is
all - Thomas Carlyle 1795-1881

/~

-- 



Reply via email to