can anyone help.
I have copied all the files. But still not working.
When i clicked on the + button it is not showing popup window to choose
files.

On Fri, Jun 26, 2015 at 11:43 AM, Chaitu P <chaitanya.pochampa...@gmail.com>
wrote:

> Hi Paolo,
>
> I have installed your application and it is working perfectly.
> I want have same multiimage upload functionality in my application. So I
> changed one of the table names.
> But unfortunately it is not working. Iam not sure what Iam missing I have
> copied the css and js files as well.  Is there a way that you can help me.
>
> my controller:
> def new():
> # only SQLFORM.factory tested
> form=SQLFORM.factory(db.submission,db.t_photos)
>
> if form.accepts(request, session, onvalidation=lambda form:check(form)): #
> Is it possible to use onvalidation with form.process() syntax ?
> submission_id =
> db.submission.insert(**db.submission._filter_fields(form.vars))
> nfiles = 0
> for var in request.vars:
> if var.startswith('f_photo') and request.vars[var] != '':
> uploaded = request.vars[var]
> if isinstance(uploaded,list):
> # files uploaded through input with "multiple" attribute set on true
> counter=0
> for element in uploaded:
> counter += 1
> nfiles += 1
> file_title = element.name.split(":")[-1] # TODO: could this be made
> better?
>  # I mean, the title must be appended to element's name
>  # or is there another way?
> db.t_photos.insert(
> f_trip_ref=trip_id,
> f_title=file_title+" ("+str(counter)+")" if file_title!="" else file_title,
> f_photo=db.t_photos.f_photo.store(element.file,element.filename))
> else:
> # only one file uploaded
> element = request.vars[var]
> nfiles += 1
> db.t_photos.insert(
> f_trip_ref=trip_id,
> f_title=element.name.split(":")[-1],
> f_photo=db.t_photos.f_photo.store(element.file,element.filename))
>
> session.flash = T('%s photo%s uploaded'%(nfiles, 's' if nfiles>1 else ''))
> redirect(URL('teacher'))
>
> if isinstance(form,FORM):
> # hide f_title form's row. Is there a better way to accomplish it?
> del form[0][3]
>
> return dict(form=form)
>
> view:
>
> {{response.files.extend([URL('static','css/multiupload.css'),URL('static','js/jquery.multiupload.js')])}}
> {{left_sidebar_enabled=right_sidebar_enabled=False}}
> {{extend 'layout.html'}}
> <div>
> {{=form}}
> <script type="text/javascript" charset="utf-8">
> //<!--
> jQuery('input[name="f_photo"]:not(.processed)').multiUpload({
> mw_placeholder:"{{=T('insert a title')}}",
> mw_text_addBtn:"+",
> mw_tooltip_addBtn:"{{=T('add a file')}}",
> mw_text_clearBtn:"x",
> mw_tooltip_clearBtn:"{{=T('remove all')}}",
> mw_tooltip_removeFileBtn:"{{=T('remove this file')}}",
> mw_tooltip_removeGroupBtn:"{{=T('remove this file group')}}",
> mw_group_title:"{{=T('FILE GROUP')}}",
> mw_fileNumber:false,
> mw_maxElementAllowed:5
> });
> //-->
> </script>
> </div>
>
> model:
>
> db.define_table('submission',
> Field('name', requires=[IS_NOT_EMPTY(), IS_ALPHANUMERIC()]),
> Field('email', requires=[IS_NOT_EMPTY(), IS_EMAIL()]),
> #Field('file','upload', requires=IS_NOT_EMPTY()),
> Field('status', readable=False,writable=False),
> Field('posted_on', 'date', default=request.now, readable=False,
> writable=False),
> Field('problem_id','reference problem',readable=False, writable=False))
>
> db.define_table('t_photos',
> Field('f_trip_ref', type='reference submission', notnull=True,
> writable=False, readable=False),
> Field('f_title', type='string', label=T('Title'), notnull=False), #
> notnull=False is required
> Field('f_photo', type='upload',
> uploadfolder=request.folder+'static/pictures', notnull=False, #
> notnull=False is required
> label=T('Photos'),
> represent=lambda x, row:x and A('%s'%(db.t_photos.f_photo.retrieve(x)[0]),
> _href=URL('default','viewer.html',args=x),
> _target="_blank",
> _title=T("open photo"),
> _class='file-reference')
> or ''
> ),
> )
>
>
>
>
> On Friday, June 22, 2012 at 1:46:51 PM UTC-5, Paolo Caruccio wrote:
>>
>> Richard,
>>
>> I'm sorry for late answer. I spent a bit of time playing with bootstrap
>> 2.0.4 and rewriting the code to follow frequent web2py changes.
>>
>> In attached app, you'll find a rewieved version of multiuploads control
>> and some bootstrap features (carousel, web2py flash messages replaced with
>> bootstrap alert, form and form errors).
>>
>> I don't know if the approach  - that you'll see in app - is enough to
>> satisfy your request, but It represents the way I would use.
>>
>> The app is a toy. I mean, you could find many bugs, not optimized code,
>> and so on. Its scope is only to demonstrate multiuploads control  usage in
>> an web2py application.
>>
>>
>>
>> Il giorno venerdì 1 giugno 2012 22:08:06 UTC+2, Richard ha scritto:
>>>
>>> No problem, I don't have time neither maybe for a couples of days too :)
>>>
>>> Richard
>>>
>>> On Fri, Jun 1, 2012 at 3:24 PM, Paolo Caruccio <paolo.ca...@gmail.com>
>>> wrote:
>>>
>>>> Richard,
>>>>
>>>> I made some reflections on what you want to do and it's not easy, since
>>>> the use of control for simultaneous upload of multiple files was aimed to
>>>> replace the standard control. As an example of use, you can see
>>>> http://ochiba77.blogspot.it/2012/01/web2py-slices-sending-email-from-form.html
>>>>  However, we can use a different approach to getting what you want
>>>> through the use of a smartgrid. I'll post soon a demo application (in this
>>>> days I'm very busy in personal matters).
>>>>
>>>> Il giorno giovedì 31 maggio 2012 19:35:02 UTC+2, Richard ha scritto:
>>>>
>>>>> Here where I get as now :
>>>>>
>>>>> Controler :
>>>>> def trip_update():
>>>>>     # only SQLFORM.factory tested
>>>>>     form=SQLFORM.factory(db.t_trip, db.t_photos)
>>>>>     for row in db(db.t_trip.id == request.args(0)).select(db.t_
>>>>> trip.ALL):
>>>>>         for f in db.t_trip.fields:
>>>>>             form.vars[f]=row[f]
>>>>>     photos_files = []
>>>>>     for row in db(db.t_photos.f_trip_ref ==
>>>>> request.args(0)).select(db.t_photos.ALL):
>>>>>         #for f in db.t_photos.fields:
>>>>>         #f_photo_0:CONTENT_OF_f_title
>>>>>         #form.vars['f_photo_'+str(i)+':'+row.f_title]=row
>>>>>         #LI(_title='couleurs (1).png', A('x',
>>>>> _href='javascript:void(0);', _class='mw_delItem', _title='remove this
>>>>> file'), I(B(EM(_class='mw_file-ext-png'))), SPAN('test1'))
>>>>>         photos_files.append(XML(LI(A('x',
>>>>> _href='javascript:void(0);', _class='mw_delItem', _title='remove this
>>>>> file'), EM(_class='mw_file-ext-png'), SPAN(row.f_title),
>>>>> _title=row.f_photo)).xml())
>>>>> #    response.js="""var photos_files_list = "{{=photos_files}}"
>>>>> #    $(document).ready( function () {
>>>>> #        if(photos_files_list != 'None') {
>>>>> #            $.each(photos_files_list, function(i, val) {
>>>>> #                $('ul.mw_list').append(photos_files_list[i]);
>>>>> #            });
>>>>> #        };
>>>>> #    });"""
>>>>>     #response.js="""var photos_files_list = "{{=photos_files}}"
>>>>> $(document).ready( function () {if(photos_files_list != 'None')
>>>>> {$.each(photos_files_list, function(i, val) {$('ul.mw_list').append(
>>>>> photos_files_list[i]);});};});"""
>>>>>         #A(T('Access'),_href=URL(r=request,f='read',args=(
>>>>> request.args(0),str(id))))
>>>>>
>>>>>         #<li title="couleurs (1).png"><a class="mw_delItem"
>>>>> href="javascript:void(0);" title="remove this file">x</a><i><b><em
>>>>> class="mw_file-ext-png"></em></b></i><span>test1</span></li>
>>>>>     if form.accepts(request, session, onvalidation=lambda
>>>>> form:check(form)): # Is it possible to use onvalidation with 
>>>>> form.process()
>>>>> syntax ?
>>>>>         trip_id = request.args(0)
>>>>>         db(db.t_trip.id == trip_id).update(**db.t_trip._
>>>>> filter_fields(form.vars))
>>>>>         nfiles = 0
>>>>>         for var in request.vars:
>>>>>             if var.startswith('f_photo') and request.vars[var] != '':
>>>>>                 uploaded = request.vars[var]
>>>>>                 if isinstance(uploaded,list):
>>>>>                     # files uploaded through input with "multiple"
>>>>> attribute set on true
>>>>>                     counter=0
>>>>>                     for element in uploaded:
>>>>>                         counter += 1
>>>>>                         nfiles += 1
>>>>>                         file_title = element.name.split(":")[-1] #
>>>>> TODO: could this be made better?
>>>>>                                                                  # I
>>>>> mean, the title must be appended to element's name
>>>>>                                                                  # or
>>>>> is there another way?
>>>>>                         db.t_photos.insert(
>>>>>                             f_trip_ref=trip_id,
>>>>>                             f_title=file_title+" ("+str(counter)+")"
>>>>> if file_title!="" else file_title,
>>>>>                             f_photo=db.t_photos.f_photo.
>>>>> store(element.file,element.filename))
>>>>>                 else:
>>>>>                     # only one file uploaded
>>>>>                     element = request.vars[var]
>>>>>                     nfiles += 1
>>>>>                     db.t_photos.insert(
>>>>>                         f_trip_ref=trip_id,
>>>>>                         f_title=element.name.split(":")[-1],
>>>>>                         f_photo=db.t_photos.f_photo.
>>>>> store(element.file,element.filename))
>>>>>
>>>>>         session.flash = T('%s photo%s uploaded'%(nfiles, 's' if
>>>>> nfiles>1 else ''))
>>>>>         redirect(URL('trip_read'))
>>>>>
>>>>>     if isinstance(form,FORM):
>>>>>         # hide f_title form's row. Is there a better way to accomplish
>>>>> it?
>>>>>         del form[0][3]
>>>>>
>>>>>     return dict(form=form, photos_files=photos_files)
>>>>>
>>>>> View :
>>>>>
>>>>> {{response.files.extend([URL('static','css/multiupload.css')
>>>>> ,URL('static','js/jquery.multiupload.js')])}}
>>>>> {{left_sidebar_enabled=right_sidebar_enabled=False}}
>>>>> {{extend 'layout.html'}}
>>>>> <div>
>>>>> {{=form}}
>>>>> <ul>{{=photos_files[0]}}</ul>
>>>>> <script type="text/javascript" charset="utf-8">
>>>>> //<!--
>>>>> jQuery('input[name="f_photo"]:not(.processed)').multiUpload({
>>>>>     mw_placeholder:"{{=T('insert a title')}}",
>>>>>     mw_text_addBtn:"+",
>>>>>     mw_tooltip_addBtn:"{{=T('add a file')}}",
>>>>>     mw_text_clearBtn:"x",
>>>>>     mw_tooltip_clearBtn:"{{=T('remove all')}}",
>>>>>     mw_tooltip_removeFileBtn:"{{=T('remove this file')}}",
>>>>>     mw_tooltip_removeGroupBtn:"{{=T('remove this file group')}}",
>>>>>     mw_group_title:"{{=T('FILE GROUP')}}",
>>>>>     mw_fileNumber:false,
>>>>>     mw_maxElementAllowed:5
>>>>> });
>>>>> //-->
>>>>> </script>
>>>>> </div>
>>>>>
>>>>> <script type="text/javascript" charset="utf-8">
>>>>>     var photos_files_list = {{=photos_files}}
>>>>>     $(document).ready( function () {
>>>>>         if(photos_files_list != 'None') {
>>>>>             $.each(photos_files_list, function(i, val) {
>>>>>                 $('ul.mw_list').append(val); //photos_files_list[i]
>>>>>             });
>>>>>         };
>>>>>     });
>>>>> </script>
>>>>>
>>>>> {{if request.is_local:}}
>>>>> {{=response.toolbar()}}
>>>>> {{pass}}
>>>>>
>>>>>
>>>>> Problem : the items are not showing up in the UL box, because a
>>>>> conversion between python and javascript text format I think (I know the
>>>>> get into the box as plain text), Second thing, the destruction of the 
>>>>> items
>>>>> is not working not sure why. Also there is code refactoring to do since 
>>>>> the
>>>>> rest of the function only manage adding stuff I change a bit for updating
>>>>> stuff, for the first table (maybe for nothing), but it needs to destruct
>>>>> records in the referenced table so I need to code that.
>>>>>
>>>>> Richard
>>>>>
>>>>> On Thu, May 31, 2012 at 12:25 PM, Richard Vézina <
>>>>> ml.richa...@gmail.com> wrote:
>>>>>
>>>>>> response.js will not works, it only works on response and for
>>>>>> component as says the book.
>>>>>>
>>>>>> Putting the js code into the view seems to work if I pass the
>>>>>> photos_files var to the view...
>>>>>>
>>>>>> Now I think I just have to find the way to expose the HTML, XML() not
>>>>>> seems to work.
>>>>>>
>>>>>> Richard
>>>>>>
>>>>>>
>>>>>> On Thu, May 31, 2012 at 12:09 PM, Richard Vézina <
>>>>>> ml.richa...@gmail.com> wrote:
>>>>>>
>>>>>>> Hello Paolo,
>>>>>>>
>>>>>>> Here some fresher code :
>>>>>>>
>>>>>>> def trip_update():
>>>>>>>     # only SQLFORM.factory tested
>>>>>>>     form=SQLFORM.factory(db.t_trip, db.t_photos)
>>>>>>>     for row in db(db.t_trip.id == request.args(0)).select(db.t_
>>>>>>> trip.ALL):
>>>>>>>         for f in db.t_trip.fields:
>>>>>>>             form.vars[f]=row[f]
>>>>>>>     photos_files = []
>>>>>>>     for row in db(db.t_photos.f_trip_ref ==
>>>>>>> request.args(0)).select(db.t_photos.ALL):
>>>>>>>          #for f in db.t_photos.fields:
>>>>>>>         #f_photo_0:CONTENT_OF_f_title
>>>>>>>         #form.vars['f_photo_'+str(i)+':'+row.f_title]=row
>>>>>>>         #LI(_title='couleurs (1).png', A('x',
>>>>>>> _href='javascript:void(0);', _class='mw_delItem', _title='remove this
>>>>>>> file'), I(B(EM(_class='mw_file-ext-png'))), SPAN('test1'))
>>>>>>>         photos_files.append(XML(LI(A('x',
>>>>>>> _href='javascript:void(0);', _class='mw_delItem', _title='remove this
>>>>>>> file'), EM(_class='mw_file-ext-png'), SPAN(row.f_title),
>>>>>>> _title=row.f_photo)))
>>>>>>>     response.js="""var photos_files_list = "{{=photos_files}}"
>>>>>>>     $(document).ready( function () {
>>>>>>>         if(photos_files_list != 'None') {
>>>>>>>             $.each(photos_files_list, function(i, val) {
>>>>>>>                 $('ul.mw_list').append(photos_files_list[i]);
>>>>>>>             });
>>>>>>>         };
>>>>>>>     });"""
>>>>>>>         #A(T('Access'),_href=URL(r=request,f='read',args=(
>>>>>>> request.args(0),str(id))))
>>>>>>>
>>>>>>>         #<li title="couleurs (1).png"><a class="mw_delItem"
>>>>>>> href="javascript:void(0);" title="remove this file">x</a><i><b><em
>>>>>>> class="mw_file-ext-png"></em></b></i><span>test1</span></li>
>>>>>>>     if form.accepts(request, session, onvalidation=lambda
>>>>>>> form:check(form)): # Is it possible to use onvalidation with 
>>>>>>> form.process()
>>>>>>> syntax ?
>>>>>>>         trip_id = db.t_trip.update_record(**db.
>>>>>>> t_trip._filter_fields(form.vars))
>>>>>>>         nfiles = 0
>>>>>>>         for var in request.vars:
>>>>>>>             if var.startswith('f_photo') and request.vars[var] != '':
>>>>>>>                 uploaded = request.vars[var]
>>>>>>>                 if isinstance(uploaded,list):
>>>>>>>                     # files uploaded through input with "multiple"
>>>>>>> attribute set on true
>>>>>>>                     counter=0
>>>>>>>                     for element in uploaded:
>>>>>>>                         counter += 1
>>>>>>>                         nfiles += 1
>>>>>>>                         file_title = element.name.split(":")[-1] #
>>>>>>> TODO: could this be made better?
>>>>>>>                                                                  # I
>>>>>>> mean, the title must be appended to element's name
>>>>>>>                                                                  #
>>>>>>> or is there another way?
>>>>>>>                         db.t_photos.insert(
>>>>>>>                             f_trip_ref=trip_id,
>>>>>>>                             f_title=file_title+" ("+str(counter)+")"
>>>>>>> if file_title!="" else file_title,
>>>>>>>                             f_photo=db.t_photos.f_photo.
>>>>>>> store(element.file,element.filename))
>>>>>>>                 else:
>>>>>>>                     # only one file uploaded
>>>>>>>                     element = request.vars[var]
>>>>>>>                     nfiles += 1
>>>>>>>                     db.t_photos.insert(
>>>>>>>                         f_trip_ref=trip_id,
>>>>>>>                         f_title=element.name.split(":")[-1],
>>>>>>>                         f_photo=db.t_photos.f_photo.
>>>>>>> store(element.file,element.filename))
>>>>>>>
>>>>>>>         session.flash = T('%s photo%s uploaded'%(nfiles, 's' if
>>>>>>> nfiles>1 else ''))
>>>>>>>         redirect(URL('trip_read'))
>>>>>>>
>>>>>>>     if isinstance(form,FORM):
>>>>>>>         # hide f_title form's row. Is there a better way to
>>>>>>> accomplish it?
>>>>>>>         del form[0][3]
>>>>>>>
>>>>>>>     return dict(form=form)
>>>>>>>
>>>>>>> On Wed, May 30, 2012 at 6:23 PM, Paolo Caruccio <
>>>>>>> paolo.ca...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Richard,
>>>>>>>>
>>>>>>>> I saw your email in the discussion regarding bootswatch, but I want
>>>>>>>> to answer here for competence.
>>>>>>>>
>>>>>>>> Multiupload is a my old project. The object of the toy app was
>>>>>>>> demonstrate the usage of multiupload control. It wasn't a complete
>>>>>>>> application.
>>>>>>>>
>>>>>>>> Your intentions, however, are interesting. I will take a look at
>>>>>>>> your code and I will try to find a solution.
>>>>>>>>
>>>>>>>>
>>>>>>>> Il giorno mercoledì 30 maggio 2012 16:15:09 UTC+2, Richard ha
>>>>>>>> scritto:
>>>>>>>>
>>>>>>>>> Hello Paolo,
>>>>>>>>>
>>>>>>>>> Pretty nice!
>>>>>>>>>
>>>>>>>>> Did you implement the update of the records also?
>>>>>>>>>
>>>>>>>>> Is it a straight and easy task or it becomes trickier to implement
>>>>>>>>> than the rest of the app??
>>>>>>>>>
>>>>>>>>> Richard
>>>>>>>>>
>>>>>>>>> On Sat, Oct 29, 2011 at 6:21 PM, Paolo Caruccio <
>>>>>>>>> paolo.ca...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Bruno,
>>>>>>>>>>
>>>>>>>>>> thanks.
>>>>>>>>>>
>>>>>>>>>> What do you think about the upload mechanism? Can it be translate
>>>>>>>>>> in a web2py widget? or is it better to use a different 
>>>>>>>>>> javascript/jquery
>>>>>>>>>> library?
>>>>>>>>>>
>>>>>>>>>> Regards.
>>>>>>>>>>
>>>>>>>>>> Paolo
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>  --
> 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 web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Chaitanya Pochampally

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to