Hello:
I've written an application for database management with some features that might interest you:
- RTable builds a kind of spreadsheet from any table. The columns are html input for fields of type string or number, selects for references or when the options are limited, and so on. There is also RSheet that is useful for relations of the type "to each product and person, assign the quantity that the person has ordered of that product": it places products on the rows, person on the column, etcetera. Both are navigable with keyboard, and support paste from spreadsheet or csv, to some extent. They both admit parameters, which means some of the table fields have prescribed values. They are taylored to my needs, and I'd definitely call that work in progress.
- The form for introducing new elements has links to introduce new fields of referenced tables. For example, I want to introduce a person, but her country is not in the list. I click the link "country", fill the form for a new country, then I'm redirected to the form for a new person, but the field "country" is filled with the country I just introduced. This can be iterated as many times as needed.
- Searching is derived from smartgrid, but extends smart_query for queries with parenthesis and joins, provides drop menus for joins, a menu to group results and allows to store and recall popular queries. The results of the query are displayed as a jquery fixheadertable, and can be downloaded as a pretty_csv in which references are not displayed as numbers, but with the table _format attribute.
- It has a file manager that I got from the web2py appliance:
https://github.com/mdipierro/web2py-appliances/tree/master/FileManager
from the corefive file manager. I updated some javascript files to newer versions and added functionality to unzip zipped files, to save time when uploading many files.
- plugin_wiki has a super-simple html5 video widget.
- All the above, however, will crash if you ask for big data sets, there is no check for size of results, for example.
The app that I adjoin (AnotherAdmin) shows most of the above, except for:
- RSheet
- RTable.factory
- RTable with parameters
I'll soon give an example for those, I wrote them for a different application. You can still read the code if you are curious.
Everything in AnotherAdmin works with any database (except for some known "bugs" I'm fond of), so you should be able to upload it and change only the file db.py. The current example is in Spanish, hope you don't mind.
You can try that at:
https://rabia.mat.uam.es/AnotherAdmin/
with login:
tes...@example.com
testeramI
Does any of the above interest you? Do you have suggestions for improvement?
Thanks for your attention
> RTable builds a kind of spreadsheet from any table. The columns are html input for fields of type string or number, selects for
> references or when the options are limited, and so on.
Unless I'm missing something, that's exactly what web2py/contrib/spreadsheet.py does. It seems that some web2py features are not so visible/documented as others and it results in the same functionality being reimplemented unnecessarily.
If you think it can be helpful for other applications, consider converting it to a plugin, so it can be ported to any app instalation.
Login is an email, and got obfuscated.It is tester at the domain example.com:
tester (a) example.com
El viernes, 12 de abril de 2013 01:17:21 UTC+2, Anthony escribió:
How do I know if it's useful for other people, other than asking here?. ... Is that more useful than a RTable plugin?
- plugin_wiki has a super-simple html5 video widget.
Hello:
I've written an application for database management with some features that might interest you:
- RTable builds a kind of spreadsheet from any table. The columns are html input for fields of type string or number, selects for references or when the options are limited, and so on. There is also RSheet that is useful for relations of the type "to each product and person, assign the quantity that the person has ordered of that product": it places products on the rows, person on the column, etcetera. Both are navigable with keyboard, and support paste from spreadsheet or csv, to some extent. They both admit parameters, which means some of the table fields have prescribed values. They are taylored to my needs, and I'd definitely call that work in progress.
- The form for introducing new elements has links to introduce new fields of referenced tables. For example, I want to introduce a person, but her country is not in the list. I click the link "country", fill the form for a new country, then I'm redirected to the form for a new person, but the field "country" is filled with the country I just introduced. This can be iterated as many times as needed.
- Searching is derived from smartgrid, but extends smart_query for queries with parenthesis and joins, provides drop menus for joins, a menu to group results and allows to store and recall popular queries. The results of the query are displayed as a jquery fixheadertable, and can be downloaded as a pretty_csv in which references are not displayed as numbers, but with the table _format attribute.
- It has a file manager that I got from the web2py appliance:
https://github.com/mdipierro/web2py-appliances/tree/master/FileManager
from the corefive file manager. I updated some javascript files to newer versions and added functionality to unzip zipped files, to save time when uploading many files.
- plugin_wiki has a super-simple html5 video widget.
db.define_table('pais',
Field('nombre', unique=True),
Field('continente', 'string', requires=IS_IN_SET(CONTINENTES)),
Field('es_UE', 'boolean', default=False),
format='%(nombre)s', )
@auth.requires_login()
def sheet():
tablename = request.args[0]
table = db[tablename]
for k in request.vars:
if k.startswith('_table_name_')
:
id_t = t[12:]
break
else:
id_t = None
sheet = ERTable(table, id=id_t)
if sheet.accepts(request.vars):
session.flash=T('Datos modificados')
redirect(URL(f='sheet', args = request.args))
return dict(sheet=sheet)