[web2py] Re: Understanding SQLFORM

2010-08-23 Thread Niphlod
+1 for the latter, I totally forgot to point also the error on
form.vars 

@david, try the last one by mdipierro and tell us if the problem of
submitting the form goes away..

Niphlod


On 23 Ago, 03:28, mdipierro  wrote:
> Your code can be simplified as follows:
> This is incorrect:
>    form.vars.user.writable = False
> I assume you mean:
>    db.services.user.writable = False
>
> It is not a good idea to define a form in a if block, i.e. in a
> different scope than the the form.accepts. Try this instead:
>
> @auth.requires_login()
> def services():
>     record = db.services(user=auth.user.id) # returns None if record
> not found
>     db.services.user.writable = False
>     db.services.user.default = auth.user.id
>     form = SQLFORM(db.services, record, deletable=False) # update or
> create depending on record
>     if form.accepts(request.vars, session):
>          response.flash = 'form accepted'
>     elif form.errors:
>          response.flash = 'form has errors'
>     return dict(form=form)
>
> On Aug 22, 3:48 pm, Niphlod  wrote:
>
>
>
> > usually I'll do something like that:
>
> > 1. @auth.requires_login()
> > 2. def services():
> > 3.    record = db(db.services.user==auth.user.id).select().first()
> > 4.    if record:
> > 5.        form = SQLFORM(db.services, record, deletable=False)
> > 6.        form.vars.user.writable = False
> > 7.    else:
> > 8.        form = SQLFORM(db.services)
> > 9.        form.vars.user.default = auth.user.id
> > 10.        form.vars.user.writable = False
> > 11.    if form.accepts(request.vars, session):
> > 12.        response.flash = 'form accepted'
> > 13.    elif form.errors:
> > 14.        response.flash = 'form has errors'
> > 15.    return dict(form=form)
>
> > changes made to your implementation:
> > a) request.args are needed to catch something "after" something/
> > default/services ... that line is copy/pasted from the book but in
> > your context it doesn't mean anything...actually the URL with that is
> > needed to be like something/default/services/xxx where xxx is an
> > identifier of the record to edit. Since you want only one record per
> > user, request.args use is meaningless.
>
> > so, "if len(request.args)" is missing totally.
>
> > b) if there's only one record per user, you can select directly the
> > row with .first() , no need to retain the set (multiple rows object)
> > if there aren't going to be multiple records per user.
> > .first() return a row or None if non-existent, hence the "if record:"
> > on line 4.
>
> > c) if record exists, form will be "editable" of the row "record" (with
> > records[1] you were doing quite a messactually selecting the 2nd
> > row of your set, python enumeration starts from [0], not from
> > [1]!!) .
> > on line 6. and 10. "form.vars.user.writable = False" give yourself
> > some protection  actually if you don't do this you'll end up
> > giving away the chance to your users to change the "user" field,
> > "assigning" his "services" row to another user definitely not the
> > way to go. I'll be happy to set also form.vars.user.readable = False
> > to hide the field at all, but that's your choice.
>
> > Feel free to ask more if you're concerned by something or if you
> > didn't understand all.
>
> > Niphlod- Nascondi testo citato
>
> - Mostra testo citato -


[web2py] Re: auth.settings.retrieve_password_next not being honoured

2010-08-23 Thread Adi
Help me please! :)

On Aug 20, 6:38 pm, Adi  wrote:
> Tried both. No change.
>
> I think retrieve_password is the form where an email to reset password
> is sent. After sending the mail I want to go to my own controller
> function.
>
> On Aug 20, 4:26 pm, mdipierro  wrote:
>
>
>
> > I think you want to set reset_password_next
>
> > auth.settings.retrieve_password_next
>
> > On Aug 20, 6:01 am, Adi  wrote:
>
> > > Hi,
>
> > > I'm setting auth.settings.retrieve_password_next= my_custom_url so
> > > that after sending out reset password mail, the my_custom_url page
> > > should open. However, web2py is taking user to default/index.
>
> > > Any help?


[web2py] Re: nice model, weird things

2010-08-23 Thread Niphlod
nice!
It works perfectly.
Sorry if that annoyed you, but I tend to implement functionality
before nice representing, and the format parameter is quite always the
last one in the development process. I'll try to push up that in the
line of priorities ;-)

Thanks again
Niphlod

On 23 Ago, 03:17, mdipierro  wrote:
> You did not set any validator.Validators will be set outomatically if
> you teach web2py how to represent records in the referenced tables:
>
> db.define_table('tablefoo',
>                 Field('foo', length=5),
>                 format='%(foo)s')
>
> db.define_table('tablebar',
>                 Field('bar', length=5),
>                 format='%(bar)s')
>
> db.define_table('tablefoobar',
>             Field('foo_ref', db.tablefoo),
>             Field('bar_ref', db.tablebar)
>             )
>
> On Aug 22, 4:11 pm, Niphlod  wrote:
>
>
>
> > hello everybody.with this model I get some really strange
> > behavioursis this a bug or a web2py limitation ?
>
> > db.py
>
> > ---
>
> > db.define_table('tablefoo',
> >                 Field('foo', length=5)
> >                 )
>
> > db.define_table('tablebar',
> >                 Field('bar', length=5)
> >                 )
>
> > db.define_table('tablefoobar',
> >             Field('foo_ref', db.tablefoo),
> >             Field('bar_ref', db.tablebar)
> >             )
>
> > ---
>
> > so, I have two tables, tablefoo and tablebar with some values in it
> > and tablefoobar would have to store all the possible "connections"
> > between tablefoo and tablebar.
> > put 5 rows in tablefoo, 5 rows in tablebar and
>
> > 1st weird thing: appadmin/insert/db/tablefoobar returns two text
> > inputs:
> >  > class="reference tablefoo">
> > class is "reference" so there's clearly something wrong with that...
>
> > 2nd weird thing: no costraint on insertion , form is always accepted
> > (obviously if you try later to visualize the field in appadmin/update/
> > db/tablefoobar/1 a ticket is returned)
>
> > 3rd weird thing: appadmin/update/db/tablefoobar/1 if you insert
> > meaningful records (i.e. existing in tablefoo and tablebar,
> > respectively) , it ends up having:
> >  > class="reference tablebar">
> > at least, it's coherent :-P
>
> > I tried also creating a controller and enforcing IS_IN_DB(), then
> > creating a form. I end up having the same bahaviour...- Nascondi testo 
> > citato
>
> - Mostra testo citato -


[web2py] link on browser-based editor: Bespin

2010-08-23 Thread Timmie
Hello,
have yoou heard about Bespin?

https://bespin.mozillalabs.com/docs/userguide/index.html

Maybe a good thing to add to the admin interface.

What do you think?

Regards.


Re: [web2py] link on browser-based editor: Bespin

2010-08-23 Thread Michele Comitini
seems very promising: +1

what everyone think? could be used for helping with this?
http://groups.google.com/group/web2py/browse_thread/thread/cacb3553eea9f0a4/7bf34ec481232e8c?lnk=gst&q=my+editor#7bf34ec481232e8c


2010/8/23 Timmie :
> Hello,
> have yoou heard about Bespin?
>
> https://bespin.mozillalabs.com/docs/userguide/index.html
>
> Maybe a good thing to add to the admin interface.
>
> What do you think?
>
> Regards.


Re: [web2py] Re: Should we have a feature freeze and stability maintenance period in future?

2010-08-23 Thread Michele Comitini
Hi all,

I do develomplent with many different things, different languages
architectures and looking for tools for managing software projects is
a must for me

;-)

I think the "problem" here is that web2py has started to receive the
deserved attention by the user and developer community.
Prof. Massimo is  doing his best to keep with the growing volume of
request. The  question is: "design of new features is slowed by
bugfixing?"

Well I red from Massimo 2 alerts similar to the following (Massimo
feel free to correct me if I am wrong!!):
1. "Please remind me of patches to be applied"
2. "I need to keep track of messages, so no IRC"

Due to web2py success things will get worse, then I would suggest to
start focusing on 2 main points to see if we can find some
ideas/solutions.


1) version control

I perfectly understand Massimo position: dealing with mercurial
(git,bzr) is a pain! Anyhow we must help Massimo
delegate some dirty work to others, since we need Massimo to do the
important stuff.
I think that somehow Massimo's web2py problems resemble those that
Linus' Linux faced at the end of '90s.  I just
remind that Linus to end the thing had written the git system!

Please take time to read this chapter:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html

and this:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#id372519

The model for Linux development IMHO is too much at this time, but
some ideas should be taken into consideration.


2) issue tracking

We *must* setup a ticket system.  Discussion on groups,IRC will
eventually lead to a new ticket, but *only* tickets must be
taken into account for bugfixing. Code snippets, error log, must be
tracked there.


ciao,
mic

2010/8/23 mart :
> Hi Again,
>
> So, spending the day with my 3 girls certainly does provide
> perspective on requirements and how well attached we can be to them
> sometimes ;). That in mind, I certainly do understand your personal
> requirements on keeping what you know and what works for you (I
> respect old fashion ;) ). We can work with that, while hopefully
> bringing something efficient, scalable  and most certainly flexible,
> while remaining respectful of what is important to Mr Di Pierro who
> brought us all here.
>
>  Although I haven't spent too much time with Mercurial, most concepts
> don't change, and implementation well... that's all it is really. I
> had look @ your src repository and I find it is very telling of how
> you do things and what is important. As I understand, the goal is to
> meet 2 separate requirements that inevitably impact one another with
> current structure. The desired outcome: no freeze of the code line
> while allowing for planned testing iterations to move forward (while
> enabling Mr Di Pierro to maintain those elements of the current model
> which are important to him). I think it's entirely doable and please
> don't hesitate to stop me if I get carried away... I would like to
> start, if there are no objections, by getting a high level
> understanding of current practices. So, I'll throw a few questions out
> there. (I will try t keep the number of questions short – although it
> may not appear that way). Perhaps, this could be taken to another area
> to minimize the ruckus?
>
> I like the idea of getting a group together and collaborate on
> developing a proposal. As the more input we have, the better we can
> serve this type of development model (the concept of contributors) in
> the web2py dev world in particular. I see that Mr Di Pierro commits
> all changes to the single branch (default).
>
> Here's are a few questions with that:
>
> Where do developers check-in or commit their changes while in
> development?
> Where does the src going to dev come from and at what frequency does
> it get synced with the reference code line (if at all) ?
> Is the reference code line stable (no changes) or is it in constant
> flux?
>
> Since Massimo, is doing the commits, I assume that everybody keeps a
> sandbox copy of the src? Is there a mechanism in place which makes
> sure that everyone is working off the same starting point? If not, how
> are merge conflicts handled presently?
>
> Does the code get reviewed before making its way to Massimo who will
> be committing the changes (or not committing)?
>
> As the “release guy”, my first and most important consumer of builds
> is QA  - the testers usually get first dibs on my time ;) - as they
> are the ones blessing builds and enabling them to move to the next
> levels. I tend to want to have them in mind when writing automation
> and making sure they can interface as smoothly as possible to my
> automation with there own.
>
> When going to Test, what get's handed off (src or build)?
> Is there any regular automated/manual testing? Or is it the case where
> bigger testing efforts are done  later in the release cycle?
> how are builds identified with those test results?
>
>  Good release strategies do help, so here are just a

[web2py] filename length bug in sql.py under win32

2010-08-23 Thread Sw1
Hi,
  I posted some time ago a problem related to uploading a file with a
very long filename under window ( it crashes ). I have been able to
spot that the issue is in sql.py around line 2799( function store ).
So the pb is related to the python interpreter under win32 that
doesn't allow the creation of a file descriptor when the path+filename
is longer than 255 ( the ntfs filesystem does allow this but it seems
to be related to the way python handle it)

I don't really know what to do here but may i suggest to change the
naming scheme so that generated filename is shorter ( something
containing only a uuid and not the encoded part of the filename).

Cheers,


Re: [web2py] link on browser-based editor: Bespin

2010-08-23 Thread Albert Abril
@Michele
Bespin is more an editor more web-oriented, the editor that you are linking
(Stef Editor) is more Desktop oriented.

@Timmie
Bespin is a Mozilla Labs project, it is being developed for many time, maybe
would be a great idea to integrate it in web2py.
Bespin seems a new Vim , but web-oriented :D

Regards.

On Mon, Aug 23, 2010 at 10:32 AM, Michele Comitini <
michele.comit...@gmail.com> wrote:

> seems very promising: +1
>
> what everyone think? could be used for helping with this?
>
> http://groups.google.com/group/web2py/browse_thread/thread/cacb3553eea9f0a4/7bf34ec481232e8c?lnk=gst&q=my+editor#7bf34ec481232e8c
>
>
> 2010/8/23 Timmie :
> > Hello,
> > have yoou heard about Bespin?
> >
> > https://bespin.mozillalabs.com/docs/userguide/index.html
> >
> > Maybe a good thing to add to the admin interface.
> >
> > What do you think?
> >
> > Regards.
>


Re: [web2py] Re: Line continuation problem in new parser?

2010-08-23 Thread Michael Ellis
Probably didn't.  I encountered it while trying to clean up some view code
that was looking messy.  I'm in favor of supporting line continuation if at
all possible or, if not, at least issuing an error message to that effect.



On Sun, Aug 22, 2010 at 9:14 PM, mdipierro  wrote:

> Did this work before? I do not think continuation was ever supported.
>
> Massimo
>
> On Aug 22, 2:13 pm, Michael Ellis  wrote:
> > In Version 1.83.2 (2010-08-15 02:10:01)
> >
> > this works:
> >
> > {{
> > for r in rows:
> > =DIV(SPAN(r[0]), SPAN(fcw[r[0]]), SPAN(fcw[r[1]]))
> > pass
> >
> > }}
> >
> > but this raises a syntax error:
> > {{
> > for r in rows:
> > =DIV(SPAN(r[0]),
> >   SPAN(fcw[r[0]]),
> >   SPAN(fcw[r[1]]))
> > pass
> >
> > }}
> >
> > Tried '\' continuations also.  The parser thinks there are extra chars
> > after the backslash even when there aren't.
> >
> > Apologies if this is a known issue or intentional limitation.
> >
> > Cheers,
> > Mike


[web2py] Re: web2py 3rd edition available in PDF from LULU.com

2010-08-23 Thread mdipierro
It was not done on purpose. They processed the PDF I provided (which I
believe is unlocked).

On Aug 23, 1:55 am, dederocks  wrote:
> I bought the book too, it's great. Just wish comenting & highlighting
> were enabled so that I could bookmark, highlight, fix typos ;-) as I
> go along -- but there must be a reason for locking this PDF feature?
>
> BR,
>
> Andre
>
> On 21 août, 15:31, ra3don  wrote:
>
> > The 3rd edition was released on my birthday. Woohoo!
> > It just wouldn't be right if i didn't buy it.
>
> > On Aug 19, 5:04 pm, Christopher Steel  wrote:
>
> > > well worth the money!
>
> > > On Aug 19, 8:18 am, mdipierro  wrote:
>
> > > > 3 months of work on the book it also cost money. ;-)
>
> > > > On Aug 19, 1:37 am, Robby O'Connor  wrote:>   
> > > > If I'm not out of line: Why not make the PDF available for free? Print
> > > > > costs money, i can understand charging for that...
>
> > > > > On 8/19/2010 1:44 AM, JorgeRpo wrote:
>
> > > > > > BOUGHT!!
> > > > > > ;)
>
> > > > > > On Aug 13, 2:46 am, mdipierro  wrote:
> > > > > >>http://www.lulu.com/product/ebook/official-web2py-manual/12196616
>
> > > > > >> This is the same content as the online book but converted to PDF.
> > > > > >> There are significant additions and changes compared to the 2nd
> > > > > >> edition.
>
> > > > > >> - new chapter on components, plugins and plugin_wiki example
> > > > > >> - many new DAL features including list:reference, list:integer,
> > > > > >> list:string, belongs, contains, computed fields, virtual fields,
> > > > > >> shortcuts
> > > > > >> - new custom login methods (including openid, oauth, prx)
> > > > > >> - new validators
> > > > > >> - new helpers (including markmin)
> > > > > >> - application-level routes and other routes customizations
> > > > > >> - description of new Auth and Crud settings/messages.
> > > > > >> - description of new default layout and how to change it
> > > > > >> - {{blocks}} in template
> > > > > >> - examples are revised to account for new features
> > > > > >> - running background processes
> > > > > >> - sending signed and encrypted emails
> > > > > >> - more info on GAE deployment
> > > > > >> - new screenshots
> > > > > >> - may bug fixes.
>
> > > > > >> It contains 537 pages.
>
> > > > > >> Thanks to Alvaro, Bruno, Denes, Felipe, Graham, Jonathan, Hans, 
> > > > > >> Kyle,
> > > > > >> Mark, Michele, Richard, Robin, Roman, Scott, Shane, Sharriff, 
> > > > > >> Sriram,
> > > > > >> Sterling, Stuart, Thadeus for proofreading this and previous 
> > > > > >> versions
> > > > > >> of the book.
>
> > > > > >> It costs one dollar more than 2nd edition, I guess it is because of
> > > > > >> the increased number of pages. I actually reduced my cut.
>
> > > > > >> Hopefully it will be available in print soon.
>
> > > > > >> I will take some help in converting to ePub.
>
> > > > > >> Massimo


[web2py] Re: auth.settings.retrieve_password_next not being honoured

2010-08-23 Thread mdipierro
One more try please:

auth.settings.request_reset_password_next

On Aug 23, 2:32 am, Adi  wrote:
> Help me please! :)
>
> On Aug 20, 6:38 pm, Adi  wrote:
>
> > Tried both. No change.
>
> > I think retrieve_password is the form where an email to reset password
> > is sent. After sending the mail I want to go to my own controller
> > function.
>
> > On Aug 20, 4:26 pm, mdipierro  wrote:
>
> > > I think you want to set reset_password_next
>
> > > auth.settings.retrieve_password_next
>
> > > On Aug 20, 6:01 am, Adi  wrote:
>
> > > > Hi,
>
> > > > I'm setting auth.settings.retrieve_password_next= my_custom_url so
> > > > that after sending out reset password mail, the my_custom_url page
> > > > should open. However, web2py is taking user to default/index.
>
> > > > Any help?


[web2py] Re: Multiple submit not working on component

2010-08-23 Thread Miguel Lopes
As an update, the issue remains with the following combinations:
* if input type='submit' and different names
* if input type='button', with or without different name attributes

However, input type='text' are present in form.vars.

For the interested a solution for usage in components is to use set a hidden
input text field via the click event of each button.
Miguel


On Mon, Aug 23, 2010 at 3:54 AM, Miguel Lopes  wrote:

> I'm using the "same name to all input type submits" technique. This is very
> nice because it avoids some js and works like a charm :-)
> In a regular controller the code works flawlessly. However when I try to
> put it in a controller, it fails:
>
> status_form = FORM(_id='status_form')
> for status in OPPTY_STATUS:
> btn = INPUT(_type='submit', _name='status', _value=status,
> _class='status_btn')
> status_form.append(btn)
>
> if status_form.accepts(request.vars, session, formname='status_form'):
> # status_form.vars.status is None in component
> # status_form.vars.status corresponds to whatever submit was pressed in
> regular controller
> ...
>
> It seems like the component mechanisms is ignoring the value of 'status'.
>
> Miguel
>


[web2py] Startup issues

2010-08-23 Thread dederocks
Hello,

I'm trying to run web2py, but as I go into 'the real stuff', problems
start to arise.
Just so you know, I'm running python 2.7 on a windows 7 OS, using the
1.83 source code.

a) I get a warning that cron is disabled because there is no file
locking. Starting the app with administrative rights doesn't change
anything.

b) I can't create a database:

In[1]:

db = DAL('sqlite://storage.db')

Out[1]:

In[2]:

db.define_table('person',Field('name'))

Out[2]:

Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1359, in
define_table
t._create(migrate=migrate, fake_migrate=fake_migrate)
  File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1800, in
_create
self._db._execute(query)
  File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 947, in

self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
ProgrammingError: Cannot operate on a closed database.

a) trying to experiment with the web2py shell, I found a surprising
effect: the shell works if I call it from the 'welcome' application,
but not from the 'examples' application. In the latter case, a ticket
is raised, with sys.exit(1) highlighted:



if import_models:
try:
run_models_in(environment)
except RestrictedError, e:
sys.stderr.write(e.traceback+'\n')
sys.exit(1)

return environment


def exec_pythonrc():

any suggestions?

Thxs & BR,

Andre


[web2py] RFC: validator IS_NOT_IN_SET

2010-08-23 Thread Vidul Petrov
Hi all,

I needed IS_NOT_IN_SET validator and added it in my custom
"validators.py", do you think it is useful?


class IS_NOT_IN_SET(IS_IN_SET):
"""
example::

INPUT(_type='text', _name='name',
  requires=IS_NOT_IN_SET(['max', 'john'],zero=''))

the argument of IS_NOT_IN_SET must be a list or set

>>> IS_NOT_IN_SET(['max', 'john'])('max')
('max', 'value not allowed')
>>> IS_NOT_IN_SET(['max', 'john'])('na')
('na', None)
>>> IS_NOT_IN_SET(('id1','id2'), ['first label','second
label'])('id100')
('id100', None)
>>> IS_NOT_IN_SET(('id1','id2'), ['first label','second
label'])('id1')
('id1', 'value not allowed')
>>> IS_NOT_IN_SET(('id1','id2'), ['first label','second
label'])('id2')
('id2', 'value not allowed')
>>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'})
('id100')
('id100', None)
>>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'})
('id1')
('id1', 'value not allowed')
>>> IS_NOT_IN_SET({'id1':'first label', 'id2':'second label'})
('id2')
('id2', 'value not allowed')
>>> import itertools
>>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6']))
('100')
('100', None)
>>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6']))
('1')
('1', 'value not allowed')
>>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6']))
('6')
('6', 'value not allowed')
>>> IS_NOT_IN_SET(itertools.chain(['1','3','5'],['2','4','6']))
('7')
('7', None)
"""

def __init__(self, *a, **b):
IS_IN_SET.__init__(self, *a, **b)

def __call__(self, value):
value, error = IS_IN_SET.__call__(self, value)
if error == None:
return (value, self.error_message)
else:
return (value, None)


[web2py] redirection question

2010-08-23 Thread david.waldrop
I have a basic update form code that is called via a HREF form another
view and form a menu.  The problem is the redirect to the referrer is
not working.  I looked in the forums and have tried to debug.  I
understand the form is posting back to itself which is why the form is
redirected to itself.  The forums offer several solutions that depend
on a hidden form element embedded in the calling view which are save
as request.vars.  I am not sure how to make this work with a menu.  I
hope there is a clean elegant way to accomplish this.  Any help would
be apprecaited..

@auth.requires_login()
def editmeeting():
if not request.args:
session.flash = 'Invalid parameter'
redirect(URL(r=request, c='default',
f='index'))
meeting = db(db.meeting.id == request.args(0)).select()
if len(meeting):
meeting = meeting[0]
else:
session.flash = 'Invalid meeting'
redirect(URL(r=request,c='default',f='index'))
form=SQLFORM(db.meeting,meeting, submit_button='Update Meeting')
if form.accepts(request.vars, session):
redirect(request.env.http_referer)
elif form.errors:
response.flash = 'Invalid data.'
return dict(form=form)



[web2py] Dropdown List with Select

2010-08-23 Thread David
This seems list a simple task but I can't figure out a way to do it
with Web2Py

I want to have a dropdown list of services that someone can select and
then be taken to the correct profile page etc

I want to build this list of names dynamically from my services model.

How do I pull the different names from the model, with their ID and
build a dropdown that auto selects to the next page?



[web2py] web2py minimalist version

2010-08-23 Thread Jose
I have hosting in webfaction and I am very satisfied with the service
and support.

Yesterday I was trying alwaysdata, which provides a free hosting
alternative. The free option has some limitations, such as used disk
space (10MB) and RAM (40MB).

Following the tutorial [2], in a few minutes was running application
welcome.

I deleted the applications admin and examples, leaving only welcome,
with that used disk space on my account is 6-7 MB.

What else can be deleted, so as to leave the bare minimum in web2py?
docs, scripts, etc?

Jose

[1] http://www.alwaysdata.com/
[2] http://wiki.alwaysdata.com/wiki/D% C3%
A9ployer_une_application_web2py


[web2py] Re: Multiple submit not working on component

2010-08-23 Thread mdipierro
I think this is a bug in the web2py in the form processing system. I
will fix it tonight.

On Aug 22, 9:54 pm, Miguel Lopes  wrote:
> I'm using the "same name to all input type submits" technique. This is very
> nice because it avoids some js and works like a charm :-)
> In a regular controller the code works flawlessly. However when I try to put
> it in a controller, it fails:
>
> status_form = FORM(_id='status_form')
> for status in OPPTY_STATUS:
>     btn = INPUT(_type='submit', _name='status', _value=status,
> _class='status_btn')
>     status_form.append(btn)
>
> if status_form.accepts(request.vars, session, formname='status_form'):
>     # status_form.vars.status is None in component
>     # status_form.vars.status corresponds to whatever submit was pressed in
> regular controller
> ...
>
> It seems like the component mechanisms is ignoring the value of 'status'.
>
> Miguel


[web2py] Re: Startup issues

2010-08-23 Thread mdipierro
there are two issues:

1) file locking. I assume you are using windows and running from
source. You need to install the Mark Hammond win32 extensions.

2) shell error "Cannot operate on a closed database.". This is a known
problem. Do not use the web based shell to interact with the database.
Use the normall shell

python web2py.py -S yourapp -N -M



On Aug 23, 9:18 am, dederocks  wrote:
> Hello,
>
> I'm trying to run web2py, but as I go into 'the real stuff', problems
> start to arise.
> Just so you know, I'm running python 2.7 on a windows 7 OS, using the
> 1.83 source code.
>
> a) I get a warning that cron is disabled because there is no file
> locking. Starting the app with administrative rights doesn't change
> anything.
>
> b) I can't create a database:
>
> In[1]:
>
> db = DAL('sqlite://storage.db')
>
> Out[1]:
>
> In[2]:
>
> db.define_table('person',Field('name'))
>
> Out[2]:
>
> Traceback (most recent call last):
>   File "", line 1, in 
>   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1359, in
> define_table
>     t._create(migrate=migrate, fake_migrate=fake_migrate)
>   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1800, in
> _create
>     self._db._execute(query)
>   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 947, in
> 
>     self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
> ProgrammingError: Cannot operate on a closed database.
>
> a) trying to experiment with the web2py shell, I found a surprising
> effect: the shell works if I call it from the 'welcome' application,
> but not from the 'examples' application. In the latter case, a ticket
> is raised, with sys.exit(1) highlighted:
>
>     if import_models:
>         try:
>             run_models_in(environment)
>         except RestrictedError, e:
>             sys.stderr.write(e.traceback+'\n')
> sys.exit(1)
>
>     return environment
>
> def exec_pythonrc():
>
> any suggestions?
>
> Thxs & BR,
>
> Andre


[web2py] Re: web2py and SEO

2010-08-23 Thread puercoespin
Sorry, but the first link don't work. Insteand, 
http://www.google.com/support/webmasters/
 and, in "help resources" can found the google doc in "search engine
optimization". There are  useful articles and videos SEO related too.

Regards.

On 22 ago, 14:53, puercoespin  wrote:
> On 12 ago, 00:23, mdipierro  wrote:
>
> > Could you provide a list of features you would like to see?
>
> > Massimo
>
> > On Aug 11, 4:52 pm, puercoespin 
> > wrote:
>
> First of all, I want to indicate that I am not an expert inSEO, not
> in Python not inWeb2py. In fact, I am not expert in anything  :)
>
> I think that a good beginning to create a list of possible features
> that, in my opinion, it should haveWeb2pyin reference toSEO, would
> be the Google’s doc " Google's Search Engine Optimization. Starter
> Guide ", and it can be found in " http: 
> //www.google.com/webmasters/docs/search-engine-optimization-starter-gui...
> ". It is a brief document, of only 22 pages, but very interesting and
> whose reading I recommend. In addition, it has links to go deeper into
> some treated topics, as well as to tools for webmaster related toSEO.
>
> What I am going to expose is a small summary of the document, as a
> list, of the elements that a web site must have in order that it could
> obtain a good positioning. I think that in some of them,web2pymight
> facilitate the fulfilment of these elements.
>
> 1.- "Create unique, accurate page titles", "Create unique title tags
> for each page", "Make use of the 'description' meta tag", "Use unique
> descriptions for each page", "Improve the structure of your URLs".
>
> When Google presents us a list of webs as result of a search, he
> presents first the title of the web, a small text, which can - or not
> - match with the text of the meta tag "description", and a url link to
> the web. So is very important put the major care in refilling this
> meta tags. So I think thatWeb2pymust to ask for title and
> description when created a new application. In order that every page
> has a title and a different description, depending on his content,
> maybe doing that the controller returning variables title and
> description??
>
> URL’s must included words that can be found in a user search. And
> reflected the web’s structure, if possible, clean and ordered. Also,
> if a user “cuts” some parts of a url, (www.exemple.com/an/url/very/
> large/  and user cuts /large, for example)  the reply not would be an
> stranger message. About url’s, I thinkweb2pydoes a good job.
>
> 2.-   "Make your site easier to navigate"
>
> Everything related to the user ease of navigation will be appreciated
> by the search engines. In fact, inSEO, accessibility and usability
> counts. So it's recommended a sitemap (lower case), that is a html
> file, generally located in the root, and with a hierarchy links of the
> pages of the site, maybe with its title and description. This file is
> aimed to human visitors.
>
> Also, it's recommended a Sitemap (upper case), That’s a xml file,
> aimed to search engines. With this file, the webmaster can inform to
> search engines about the frequency of changes of the web, or what are
> the most important pages of our sites. In both files, I think thatweb2pyhas 
> job to do.
>
> Another interesting element would be a “breadcrumb”. That’s a row of
> internal links, located in top or/and bottom of the page as title.site> 
> title.page1 > title.page2 > title.page3. There a lot of snippets of
>
> code in Django that implements a breadcrumb. Also, there a project in
> google code in "http://code.google.com/p/django-breadcrumbs/ ";.
> Whats aboutWeb2py??
>
> And last, a 404 personalized page, that kindly redirects users to the
> root, or show a list of links of the most visited pages, its very
> appreciated.
>
> 3.- "Offer quality content and services" , "Write better anchor text",
> “Use heading tags appropriately” “Optimize your use of images”
>
> Well, I think with that, any framework has nothing to do.  :)
>
> 4.- “Make effective use of robots.txt”.
>
> Maybe allweb2pyapplication would be, by default, a robots.txt file
> with, at least, this content:
>
> User-agent: “
> Disallow: /static/
>
> A robots.txt is a good practice, simple to follow.
>
> 5. “Be aware of rel="nofollow" for links”.
>
> As example of use, the google’s document example:
>
> http://www.shadyseo.com/rel=”nofollow”>Comment spammer
>
> Maybe interesting. As point the google doc:
>
> “Setting the value of the "rel" attribute of a link to "nofollow" will
> tell Google that certain links on your
> site shouldn't be followed or pass your page's reputation to the pages
> linked to. […]If your site has a blog with public commenting turned
> on, links within those comments could pass your reputation to pages
> that you may not be comfortable vouching for. Blog comment areas on
> pages are highly susceptible to comment spam. Nofollowing these user-
> added links ensures that you're not giving your page's hard-earned
> reputation t

[web2py] Re: SQLHTML is not defined - Autocomplete Widget

2010-08-23 Thread annet
Changing SQLHTML to SQLFORM solved the SQLHTML not defined problem.
SQLFORM, however, doesn't support limitby.

SQLFORM.widgets.autocomplete(request,db.plaats.plaats,limitby=(0,10),min_length=2)

I am working with web2py 1.83.2.


Kind regards,

Annet.


Re: [web2py] Re: How to start server from within a python file ?

2010-08-23 Thread Stef Mientki
 thanks Massimo,
but it doesn't work by me ...

On 23-08-2010 04:33, mdipierro wrote:
> from gluon.main import HttpServer
here the problem begin, 

Maybe I should start with a more basic question,
what should I do with the sources ?
I don't see a setup file,
so I just dumped the source files in the python site-packages

site-packages\web2py\...

is that enough ?

thanks,
Stef


Re: [web2py] How to start server from within a python file ?

2010-08-23 Thread Stef Mientki
 that's great Jason,

On 23-08-2010 05:22, Jason Brower wrote:
> It's very nice to see you using linux.  If you have any questions that
> are linux related please tell me and I can try to help you. :D
ok here is the first problem

What's the way to start the web2py server from a python script ?

thanks,
Stef

> BR,
> Jason Brower
>
> On Sun, 2010-08-22 at 22:03 +0200, Stef Mientki wrote: 
>> hello,
>>



Re: [web2py] How to start server from within a python file ?

2010-08-23 Thread Michele Comitini
Hi Stef,
 you are using device names and backslashes (they are not understood
by unix the same way windows does), could be that?

http://en.wikipedia.org/wiki/Filename

mic
> and gives the following error message:
> Traceback (most recent call last):
> File "D:\Data_Python_25\support\test.py", line 21, in 
>   execfile ( filename )
> File "P:/Web2Py/web2py_src/web2py/web2py.py", line 16, in 
>   import gluon.import_all
> ImportError: No module named gluon.import_all

2010/8/23 Stef Mientki :
>  that's great Jason,
>
> On 23-08-2010 05:22, Jason Brower wrote:
>> It's very nice to see you using linux.  If you have any questions that
>> are linux related please tell me and I can try to help you. :D
> ok here is the first problem
>
> What's the way to start the web2py server from a python script ?
>
> thanks,
> Stef
>
>> BR,
>> Jason Brower
>>
>> On Sun, 2010-08-22 at 22:03 +0200, Stef Mientki wrote:
>>> hello,
>>>
>
>


Re: [web2py] How to start server from within a python file ?

2010-08-23 Thread Stef Mientki

thanks Mic,
but that's not the problem ( I changed them in single forward slashes),
the problem is the file structure of web2py,
I'm definitely missing something there.

cheers,
Stef

On 23-08-2010 21:46, Michele Comitini wrote:
> Hi Stef,
>  you are using device names and backslashes (they are not understood
> by unix the same way windows does), could be that?
>
> http://en.wikipedia.org/wiki/Filename
>
> mic
>> and gives the following error message:
>> Traceback (most recent call last):
>> File "D:\Data_Python_25\support\test.py", line 21, in 
>>   execfile ( filename )
>> File "P:/Web2Py/web2py_src/web2py/web2py.py", line 16, in 
>>   import gluon.import_all
>> ImportError: No module named gluon.import_all
> 2010/8/23 Stef Mientki :
>>  that's great Jason,
>>
>> On 23-08-2010 05:22, Jason Brower wrote:
>>> It's very nice to see you using linux.  If you have any questions that
>>> are linux related please tell me and I can try to help you. :D
>> ok here is the first problem
>>
>> What's the way to start the web2py server from a python script ?
>>
>> thanks,
>> Stef
>>
>>> BR,
>>> Jason Brower
>>>
>>> On Sun, 2010-08-22 at 22:03 +0200, Stef Mientki wrote:
 hello,

>>



[web2py] Re: Startup issues

2010-08-23 Thread dederocks
Sorry for coming with old hats (to be included in the book?), and
thanks for the quick help!

On 23 août, 18:20, mdipierro  wrote:
> there are two issues:
>
> 1) file locking. I assume you are using windows and running from
> source. You need to install the Mark Hammond win32 extensions.
>
> 2) shell error "Cannot operate on a closed database.". This is a known
> problem. Do not use the web based shell to interact with the database.
> Use the normall shell
>
> python web2py.py -S yourapp -N -M
>
> On Aug 23, 9:18 am, dederocks  wrote:
>
> > Hello,
>
> > I'm trying to run web2py, but as I go into 'the real stuff', problems
> > start to arise.
> > Just so you know, I'm running python 2.7 on a windows 7 OS, using the
> > 1.83 source code.
>
> > a) I get a warning that cron is disabled because there is no file
> > locking. Starting the app with administrative rights doesn't change
> > anything.
>
> > b) I can't create a database:
>
> > In[1]:
>
> > db = DAL('sqlite://storage.db')
>
> > Out[1]:
>
> > In[2]:
>
> > db.define_table('person',Field('name'))
>
> > Out[2]:
>
> > Traceback (most recent call last):
> >   File "", line 1, in 
> >   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1359, in
> > define_table
> >     t._create(migrate=migrate, fake_migrate=fake_migrate)
> >   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 1800, in
> > _create
> >     self._db._execute(query)
> >   File "C:\Users\Andre\Documents\web2py\gluon\sql.py", line 947, in
> > 
> >     self._execute = lambda *a, **b: self._cursor.execute(*a, **b)
> > ProgrammingError: Cannot operate on a closed database.
>
> > a) trying to experiment with the web2py shell, I found a surprising
> > effect: the shell works if I call it from the 'welcome' application,
> > but not from the 'examples' application. In the latter case, a ticket
> > is raised, with sys.exit(1) highlighted:
>
> >     if import_models:
> >         try:
> >             run_models_in(environment)
> >         except RestrictedError, e:
> >             sys.stderr.write(e.traceback+'\n')
> > sys.exit(1)
>
> >     return environment
>
> > def exec_pythonrc():
>
> > any suggestions?
>
> > Thxs & BR,
>
> > Andre


[web2py] Re: IS_IMAGE() broke?

2010-08-23 Thread Joe Wakefield
I was also experiencing this issue, but found that rebuilding the
database only worked until the first valid upload, after which it is
broken again.

In my case, I am using:
Field('photo', 'upload', uploadfield='photo_data',
requires=IS_IMAGE(extensions=('jpeg'))),
Field('photo_data', 'blob', requires=IS_IMAGE(extensions=('jpeg'))),

And was using SQLFORM to display the update form.

When I first added this, it was accepting absolutely everything (pdf,
odt, zip) as an upload. I deleted my database entirely, and had it
rebuilt. I first noticed that it started rejecting non-image uploads.
However, once I had uploaded an image, all subsequent uploads of non-
image types were allowed again. A second database build showed the
exact same behaviour; proper rejection until the first valid upload.

I then made a backup of my web2py folder, and extracted today's
nightly build over my folder. Rebuilding my database one last time, it
shows the exact same behaviour.



On Jul 11, 2:56 pm, Rob  wrote:
> I just recently added:
>
> db.Item.image.requires =IS_IMAGE()
>
> The records that existed prior to adding this line does not obey 
> theIS_IMAGE() (ie: they still allow me to upload a PDF).  All new records
> created DO work - they force me to select an image or else they show
> an error.
>
> steps to reproduce (untested)
> 1)  create DB
> db.define_table('Item',
>                 Field('description'),
>                 Field('need', 'boolean'),
>                 Field('image', 'upload'))
>
> 2) add rows to the table
> 3) add rules:
> db.Item.category.requires = IS_IN_DB(db, db.Category.id,'%(name)s')
> db.Item.description.requires = IS_NOT_EMPTY()
> db.Item.image.requires =IS_IMAGE()
>
> 4) go back to the rows you added to the Item table and add non-image
> files - notice it works
>
> Does that help?
>
> On Jul 11, 11:42 am, mdipierro  wrote:
>
> > Please tell us more. When do you get an error? What is the error?
>
> > On 11 Lug, 11:57, Rob  wrote:
>
> > > This issue only happens for records that were created before I added
> > > the .requires fields.  Error handling on new records works as
> > > expected...  so... is it still a bug?
>
> > > On Jul 11, 9:15 am, Rob  wrote:
>
> > > > db.define_table('Category',
> > > >                 Field('name'))
>
> > > > db.define_table('Item',
> > > >                 Field('category', db.Category),
> > > >                 Field('description'),
> > > >                 Field('need', 'boolean'),
> > > >                 Field('image', 'upload'))
>
> > > > db.Item.category.requires = IS_IN_DB(db, db.Category.id)
> > > > db.Item.description.requires = IS_NOT_EMPTY()
> > > > db.Item.image.requires =IS_IMAGE()
>
> > > > def details():
> > > >     item = request.args(0)
> > > >     form = crud.update(db.Item, item, next=URL(r=request, args=item))
> > > >     return dict(form=form)
>
> > > > It allows me to upload PDFs and flashes 'record updated'
>
>


Re: [web2py] Re: nice model, weird things

2010-08-23 Thread Adrian Klaver

On 08/22/2010 06:17 PM, mdipierro wrote:

You did not set any validator.Validators will be set outomatically if
you teach web2py how to represent records in the referenced tables:

db.define_table('tablefoo',
 Field('foo', length=5),
 format='%(foo)s')

db.define_table('tablebar',
 Field('bar', length=5),
 format='%(bar)s')

db.define_table('tablefoobar',
 Field('foo_ref', db.tablefoo),
 Field('bar_ref', db.tablebar)
 )



I have been following along and I wonder is this documented somewhere? I 
never would have made the connection between an optional format 
representation and validation :)


--
Adrian Klaver
adrian.kla...@gmail.com


[web2py] Re: How to start server from within a python file ?

2010-08-23 Thread mdipierro
No.

you either dubmp the gluon folder in site-packages

   site-packages/gluon

or better

   import sys
   sys.path.append('location/to/web2py/')


On Aug 23, 2:16 pm, Stef Mientki  wrote:
>  thanks Massimo,
> but it doesn't work by me ...
>
> On 23-08-2010 04:33, mdipierro wrote:> from gluon.main import HttpServer
>
> here the problem begin, 
>
> Maybe I should start with a more basic question,
> what should I do with the sources ?
> I don't see a setup file,
> so I just dumped the source files in the python site-packages
>
>     site-packages\web2py\...
>
> is that enough ?
>
> thanks,
> Stef


[web2py] Re: nice model, weird things

2010-08-23 Thread mdipierro
http://web2py.com/book/default/chapter/03?search=would+be+automatic

On Aug 23, 1:30 pm, Adrian Klaver  wrote:
> On 08/22/2010 06:17 PM, mdipierro wrote:
>
>
>
> > You did not set any validator.Validators will be set outomatically if
> > you teach web2py how to represent records in the referenced tables:
>
> > db.define_table('tablefoo',
> >                  Field('foo', length=5),
> >                  format='%(foo)s')
>
> > db.define_table('tablebar',
> >                  Field('bar', length=5),
> >                  format='%(bar)s')
>
> > db.define_table('tablefoobar',
> >              Field('foo_ref', db.tablefoo),
> >              Field('bar_ref', db.tablebar)
> >              )
>
> I have been following along and I wonder is this documented somewhere? I
> never would have made the connection between an optional format
> representation and validation :)
>
> --
> Adrian Klaver
> adrian.kla...@gmail.com


[web2py] Re: IS_IMAGE() broke?

2010-08-23 Thread mdipierro
Something is wrong here

IS_IMAGE(extensions=('jpeg'))

should be

IS_IMAGE(extensions=('jpeg',))

A tuple of one element must contain a comma. Not sure if that may be
the cause of your problem.

On Aug 23, 3:16 pm, Joe Wakefield  wrote:
> I was also experiencing this issue, but found that rebuilding the
> database only worked until the first valid upload, after which it is
> broken again.
>
> In my case, I am using:
> Field('photo', 'upload', uploadfield='photo_data',
> requires=IS_IMAGE(extensions=('jpeg'))),
> Field('photo_data', 'blob', requires=IS_IMAGE(extensions=('jpeg'))),
>
> And was using SQLFORM to display the update form.
>
> When I first added this, it was accepting absolutely everything (pdf,
> odt, zip) as an upload. I deleted my database entirely, and had it
> rebuilt. I first noticed that it started rejecting non-image uploads.
> However, once I had uploaded an image, all subsequent uploads of non-
> image types were allowed again. A second database build showed the
> exact same behaviour; proper rejection until the first valid upload.
>
> I then made a backup of my web2py folder, and extracted today's
> nightly build over my folder. Rebuilding my database one last time, it
> shows the exact same behaviour.
>
> On Jul 11, 2:56 pm, Rob  wrote:
>
> > I just recently added:
>
> > db.Item.image.requires =IS_IMAGE()
>
> > The records that existed prior to adding this line does not obey 
> > theIS_IMAGE() (ie: they still allow me to upload a PDF).  All new records
> > created DO work - they force me to select an image or else they show
> > an error.
>
> > steps to reproduce (untested)
> > 1)  create DB
> > db.define_table('Item',
> >                 Field('description'),
> >                 Field('need', 'boolean'),
> >                 Field('image', 'upload'))
>
> > 2) add rows to the table
> > 3) add rules:
> > db.Item.category.requires = IS_IN_DB(db, db.Category.id,'%(name)s')
> > db.Item.description.requires = IS_NOT_EMPTY()
> > db.Item.image.requires =IS_IMAGE()
>
> > 4) go back to the rows you added to the Item table and add non-image
> > files - notice it works
>
> > Does that help?
>
> > On Jul 11, 11:42 am, mdipierro  wrote:
>
> > > Please tell us more. When do you get an error? What is the error?
>
> > > On 11 Lug, 11:57, Rob  wrote:
>
> > > > This issue only happens for records that were created before I added
> > > > the .requires fields.  Error handling on new records works as
> > > > expected...  so... is it still a bug?
>
> > > > On Jul 11, 9:15 am, Rob  wrote:
>
> > > > > db.define_table('Category',
> > > > >                 Field('name'))
>
> > > > > db.define_table('Item',
> > > > >                 Field('category', db.Category),
> > > > >                 Field('description'),
> > > > >                 Field('need', 'boolean'),
> > > > >                 Field('image', 'upload'))
>
> > > > > db.Item.category.requires = IS_IN_DB(db, db.Category.id)
> > > > > db.Item.description.requires = IS_NOT_EMPTY()
> > > > > db.Item.image.requires =IS_IMAGE()
>
> > > > > def details():
> > > > >     item = request.args(0)
> > > > >     form = crud.update(db.Item, item, next=URL(r=request, args=item))
> > > > >     return dict(form=form)
>
> > > > > It allows me to upload PDFs and flashes 'record updated'


[web2py] Model with many to many defined across multiple database instances

2010-08-23 Thread ron_m
I have a model which has sites and servers with a many-to-many
relation described by site_servers as follows:

# Global table of known sites
db.define_table('sites',
Field('uuid', 'string', length=64, default=str(uuid.uuid4()),
writable=False),
Field('last_modified', 'datetime', default=request.now,
update=request.now, writable=False, readable=False),
Field('name', 'string', length=16, required=True, notnull=True,
unique=True, label='Site name'),
Field('long_name', 'string', length=64, unique=True, label='Site
full name'),
format='%(name)s'
)

# Global table of known servers
db.define_table('servers',
Field('uuid', 'string', length=64, default=str(uuid.uuid4()),
writable=False),
Field('last_modified', 'datetime', default=request.now,
update=request.now, writable=False, readable=False),
Field('hostname', 'string', length=64, required=True,
notnull=True, unique=True, label='Hostname:'),
format='%(hostname)s'
)

# Global table showing which servers perform known functions for which
sites.
# The default is a server provides all services.
db.define_table('site_servers',
Field('uuid', 'string', length=64, default=str(uuid.uuid4()),
writable=False),
Field('last_modified', 'datetime', default=request.now,
update=request.now, writable=False, readable=False),
Field('site_uuid', 'string', length=64),
Field('server_uuid', 'string', length=64),
Field('web_server', 'boolean', default=True),
Field('archiver', 'boolean', default=True)
)
db.site_servers.site_uuid.requires = IS_IN_DB(db, 'sites.uuid', '%
(name)s')
db.site_servers.server_uuid.requires = IS_IN_DB(db, 'servers.uuid', '%
(hostname)s')
sites_and_servers = db((db.sites.uuid==db.site_servers.site_uuid) &
(db.servers.uuid==db.site_servers.server_uuid))


The problem is this line that should be used to test for uniqueness of
the site_servers rows so I don't get duplicate entries in the join
table causes the server line of the site_servers insert form to change
from a drop down selecting from existing servers to a text input line.

# Test for uniqueness across site_uuid and server_uuid
db.site_servers.server_uuid.requires = IS_NOT_IN_DB(db
 
(db.site_servers.site_uuid==request.vars.site_uuid),db.site_servers.server_uuid)

I took thie problem line from several other posts, however they were
not involving uuid and timestamp tables meant for global use across
multiple installations of the database.

I have trimmed some fields from the model to simplify the definition.

Also the example in the DAL chapter third edition of the book under
the heading CSV and Remote Database Synchronization shows the
'modified_on' field setting of default=now which results in undefined
variable now. I believe that should be default=request.now

Thanks for any advice

Ron


Re: [web2py] Re: nice model, weird things

2010-08-23 Thread Adrian Klaver
On Monday 23 August 2010 2:02:53 pm mdipierro wrote:
> http://web2py.com/book/default/chapter/03?search=would+be+automatic
>

Thanks. I was looking in the wrong place, DAL and Form sections.


-- 
Adrian Klaver
adrian.kla...@gmail.com


[web2py] Re: build a row base questionnaire

2010-08-23 Thread Russell
A much more sophisticated solution Massimo!  I completely missed the
orderby='' functionality.

Going back to the original question, the point here is that when you
have a 'normalised' table of question/answers, you need to decouple
from SQLFORM (with SQLFORM.factory) and handle the db interactions
more explicitly.

On Aug 23, 2:31 pm, mdipierro  wrote:
> We need to clarify the goal. The goal is not to propose questions to
> the user. the goal is to check if he answers correctly. Should each
> correct answer be recorded for each user? should incorrect answers be
> recorded? Should the list of proposed questions be recored? Should a
> score be computed? What is the answer is "Darwin" and he answers
> "darwin" or "Charles Darwin"?
>
> Anyway, the above code can be simplified in:
>
> db.define_table('q_and_a',
>     Field('question'),
>     Field('answer'))
>
> def check(correct_answer,answer):
>     if correct_answer.lower() in answer.lower(): return 1
>     return 0
>
> def ask():
>     asked =
> db(db.q_and_a.id>0).select(orderby='',limitby=(0,3))
>     form=SQLFORM.factory(*[Field('a%s'%i, label = a.question) for i,a
> in enumerate(asked)])
>     if form.accepts(request.vars,session):
>            score = sum((check(a.answer,request.vars.get('a%s'%i,''))
> for i,a in enumerate(asked))
>            # do something with score
>     return dict(form=form)
>
> On Aug 22, 6:04 pm, Russell  wrote:
>
> > In my experience, it is a bit awkward to do this using SQLFORM.  You
> > could try something like this:
>
> > db.define_table('q_and_a',
> >     Field('question'),
> >     Field('answer'))
>
> > rows = db(db.q_and_a.id>0).select()
>
> > import random
> > random.seed()
> > asked = random.sample(rows, 3))
>
> > form=SQLFORM.factory(
> >     Field('asked_0', label = asked [0]['question']),
> >     Field('asked_1 ', label = asked [1]['question']),
> >     Field('asked_2 ', label = asked [2]['question']))
>
> > But this can create more problems than it solves.  Ultimately it might
> > be easier to put your questions in a wide table and use something like
> > Massimo proposed here:
>
> >http://groups.google.com/group/web2py/browse_thread/thread/d0093fa190...
>
> > On Aug 20, 1:10 pm, dlin  wrote:
>
> > > Tks, Bruno.
> > > I seems haven't describe the 'row base' questionaire.
>
> > > That is:
>
> > > I've already a table like:
> > > Question Answer
> > > Q1...           A1
> > > Q2...           A2
> > > Q3...           A3
> > > ...
> > > Q13...           A1
>
> > > Then, I'll random choose three(or by customized) questions to ask.
>
> > > Question  Answer
> > > Q3.      
> > > Q8.      
> > > Q9.      
> > >  [submit]
>
> > > sometimes, it
> > > Question  Answer
> > > Q7.      
> > > Q9.      
> > > Q13.      
> > >  [submit]
>
> > > I think it is not proper to save it fixed on 3 field on table.
>
> > > I'm thinking should I use following steps:
> > > 1. SQLTABLE to select some random rows from my question and answer .
> > > 2. try to form a FORM() (I haven't idea now)
> > > 3. when user submit form, then try to compare the answer and store the
> > > scores of user in another table.
>
> > > On Aug 19, 7:54 am, Bruno Rocha  wrote:
>
> > > > You can use FORM(), and also use the table configuration to define
> > > > questions,
> > > > you can use the arguments "label" and "comment" on field definition.
>
> > > > After that, you can use CSS to improve the form layout.
>
> > > > You can't create a new field to store the login info and putting by 
> > > > default
> > > > the auth.user value?
>
> > > > 2010/8/18 dlin 
>
> > > > > I want a form like:
>
> > > > > Question  Answer
> > > > > Q1.      
> > > > > Q2.      
> > > > > Q3.      
> > > > > [submit]
>
> > > > > Q1,Q2,Q3 and correct answer is stored in a table.
> > > > > But the 'Answer' field should combined with login user's answer.
>
> > > > > What's the best way to display the form to user?
> > > > > Do you suggest use FORM() in control or use  in view?
>
> > > > --
>
> > > >http://rochacbruno.com.br


Re: [web2py] Re: How to start server from within a python file ?

2010-08-23 Thread Stef Mientki
 hi Massimo,


On 23-08-2010 22:56, mdipierro wrote:
> No.
>
> you either dubmp the gluon folder in site-packages
>
>site-packages/gluon
then it crashes on not having a version number
> or better
>
>import sys
>sys.path.append('location/to/web2py/')
the program just hangs completely:

import os, sys
filepath = r'P:/Web2Py/web2py_src/web2py'
sys.path.append ( filepath )
os.chdir ( filepath ) ## <== absolutely necessary to get the 
version number !!!
from gluon.main import HttpServer
server = HttpServer ( password='xxx' ) #ip,port,admin_password)
server.start()
print 'piep'

and never says 'piep' :-(

cheers,
Stef
>
> On Aug 23, 2:16 pm, Stef Mientki  wrote:
>>  thanks Massimo,
>> but it doesn't work by me ...
>>
>> On 23-08-2010 04:33, mdipierro wrote:> from gluon.main import HttpServer
>>
>> here the problem begin, 
>>
>> Maybe I should start with a more basic question,
>> what should I do with the sources ?
>> I don't see a setup file,
>> so I just dumped the source files in the python site-packages
>>
>> site-packages\web2py\...
>>
>> is that enough ?
>>
>> thanks,
>> Stef



[web2py] Re: Model with many to many defined across multiple database instances

2010-08-23 Thread ron_m
To simplify I just used standard id fields, copied the scaffold
(welcome) application with create new application in admin and then

in db.py
changed the db line to match MySQL and created the database
else: # else use a normal
relational database
#   db = DAL('sqlite://storage.sqlite')   # if not, use SQLite or
other DB
db = DAL('mysql://xxx:y...@localhost/testing') # testing

then added the following to the bottom of the model file db.py


# Global table of known sites
db.define_table('sites',
Field('name', 'string', length=16, required=True, notnull=True,
unique=True, label='Site name'),
Field('long_name', 'string', length=64, unique=True, label='Site
full name'),
format='%(name)s'
)

# Global table of known servers
db.define_table('servers',
Field('hostname', 'string', length=64, required=True,
notnull=True, unique=True, label='Hostname:'),
format='%(hostname)s'
)

# Global table showing which servers perform known functions for which
sites.
# The default is a server provides all services.
db.define_table('site_servers',
Field('site_id', db.sites),
Field('server_id', db.servers),
Field('web_server', 'boolean', default=True),
Field('archiver', 'boolean', default=True)
)
db.site_servers.site_id.requires = IS_IN_DB(db, 'sites.id', '%
(name)s')
db.site_servers.server_id.requires = IS_IN_DB(db, 'servers.id', '%
(hostname)s')
sites_and_servers = db((db.sites.id==db.site_servers.site_id) &
(db.servers.id==db.site_servers.server_id))

Commenting out the following lines shows servers as a drop down list
on the insert site_servers form, leaving the line active causes the
servers line to be a text input field.

# Test for uniqueness across site_id and server_id
db.site_servers.server_id.requires = IS_NOT_IN_DB(db
 
(db.site_servers.site_id==request.vars.site_id),db.site_servers.server_id)





[web2py] Re: integrate editarea in application

2010-08-23 Thread Cory Coager
I checked the manual and didn't see anything regarding TEXTAREA.  Is
there a way to enable the editarea editor on TEXTAREA fields?

On Aug 21, 1:41 am, KMax  wrote:
> What does mean 'without going through the admin interface' ?
> Try search TEXTAREA in book?


[web2py] Re: ajax post before ajax reload

2010-08-23 Thread KMax
This is link to example
http://web2py.ru/test
Click on 'show me' then on any in link of list and update. Second
update will reflect changes in first time
On 23 авг, 11:52, KMax  wrote:
> ## to db.py added
> db.define_table('mytable',Field('myfield','string'))
> ## controllers/default.py
> def index():
>     """
>     example action using the internationalization operator T and flash
>     rendered by views/default/index.html or views/generic.html
>     """
>     onclick =
> XML( "ajax('"+str(URL(r=request,f='loadlist.load',args=[]))+"',
> ['test'], 'content');return false;" )
>     linkdiv=DIV(DIV(A('show me',_href='#',
> _onclick=onclick)),DIV(_id='content'))
>     return dict(linkdiv=linkdiv)
>
> def loadlist():
>     return dict()
>
> def list():
>     result = []
>     for i in db(db.mytable.id > 0).select():
>         onclick=XML( "jQuery('#form"+str(i.id)
> +"').slideToggle();return false;" )
>
> form=crud.update(db.mytable,i.id,onaccept=crud.archive,deletable=False)
>
> result.append(DIV(DIV(A(XML(i.myfield),_href='#',_onclick=onclick)),
>         DIV(form,_id = 'form'+str(i.id),_class = 'hidden')))
>     return dict(results=result)
>
> ## views/default/list.load
> {{response.headers['Content-Type']='text/
> html';response.headers['web2py-response-flash']=response.flash}}
> 
> {{for result in results:}}{{ =TR(TD(result))}}{{pass}}
> 
> ## views/default/loadlist.load
> {{response.headers['Content-Type']='text/
> html';response.headers['web2py-response-flash']=response.flash}}
> {{=LOAD ('default','list.load',args=[],ajax=True)}}
>
> -
> Adding to mytables some strings to see the list of them in example
> code.
> Clicking on 'show me' give a list of table rows.
> Clicking on any of row shows form for string update.
> But if you submit changes, they does not reflect in list of items (but
> the same time db table row was updated)
> Next time submit updates the list of items was made last time.
>
> Question: how to make update of db table before updating list of item
> of the same table?
>
> On 23 авг, 08:19, mdipierro  wrote:
>
>
>
> > I think I need more explanation, a practical example of usage and an
> > example of code. I do not understand.


[web2py] Re: integrate editarea in application

2010-08-23 Thread Martin.Mulone
Perhaps you are looking for widgets in controls, to extend textarea as
editor. Check similar example at  
http://www.web2pyslices.com/main/slices/take_slice/18

On 23 ago, 20:01, Cory Coager  wrote:
> I checked the manual and didn't see anything regarding TEXTAREA.  Is
> there a way to enable the editarea editor on TEXTAREA fields?
>
> On Aug 21, 1:41 am, KMax  wrote:
>
>
>
> > What does mean 'without going through the admin interface' ?
> > Try search TEXTAREA in book?


[web2py] Re: How to start server from within a python file ?

2010-08-23 Thread mdipierro
It does not hang. It starts the server. The server blocks. If you want
to start the server is a new thread:

import os, sys, thread, time
filepath = r'P:/Web2Py/web2py_src/web2py'
sys.path.append ( filepath )
os.chdir ( filepath ) ## <== absolutely necessary to
get the version number !!!
from gluon.main import HttpServer
server = HttpServer ( password='xxx' ) #ip,port,admin_password)
thread.start_new_thread(server.start,(,))
print 'piep'
time.sleep(1)

will print piep but will only live for 1. It is up to you to
handle concurrency.



On Aug 23, 5:07 pm, Stef Mientki  wrote:
>  hi Massimo,
>
> On 23-08-2010 22:56, mdipierro wrote:> No.
>
> > you either dubmp the gluon folder in site-packages
>
> >    site-packages/gluon
>
> then it crashes on not having a version number> or better
>
> >    import sys
> >    sys.path.append('location/to/web2py/')
>
> the program just hangs completely:
>
> import os, sys
> filepath = r'P:/Web2Py/web2py_src/web2py'
> sys.path.append ( filepath )
> os.chdir ( filepath )                 ## <== absolutely necessary to get the 
> version number !!!
> from gluon.main import HttpServer
> server = HttpServer ( password='xxx' ) #ip,port,admin_password)
> server.start()
> print 'piep'
>
> and never says 'piep' :-(
>
> cheers,
> Stef
>
>
>
> > On Aug 23, 2:16 pm, Stef Mientki  wrote:
> >>  thanks Massimo,
> >> but it doesn't work by me ...
>
> >> On 23-08-2010 04:33, mdipierro wrote:> from gluon.main import HttpServer
>
> >> here the problem begin, 
>
> >> Maybe I should start with a more basic question,
> >> what should I do with the sources ?
> >> I don't see a setup file,
> >> so I just dumped the source files in the python site-packages
>
> >>     site-packages\web2py\...
>
> >> is that enough ?
>
> >> thanks,
> >> Stef


[web2py] Re: filename length bug in sql.py under win32

2010-08-23 Thread mdipierro
This is a complex issue. The length of a filename is limited to 200
chars + extension.

There is no way to limit the length of path+filename since the path
depends on where web2py is installed and it outside web2py control.
Even we were to limit len(filename) to 1 character, this function may
still fail if len(path+filename)>255. I say this is a major windows
bug.

Massimo

On Aug 23, 5:11 am, Sw1  wrote:
> Hi,
>   I posted some time ago a problem related to uploading a file with a
> very long filename under window ( it crashes ). I have been able to
> spot that the issue is in sql.py around line 2799( function store ).
> So the pb is related to the python interpreter under win32 that
> doesn't allow the creation of a file descriptor when the path+filename
> is longer than 255 ( the ntfs filesystem does allow this but it seems
> to be related to the way python handle it)
>
> I don't really know what to do here but may i suggest to change the
> naming scheme so that generated filename is shorter ( something
> containing only a uuid and not the encoded part of the filename).
>
> Cheers,


[web2py] Re: Multiple submit not working on component

2010-08-23 Thread mdipierro
well... it is a bug not not in web2py, in jQuery:

http://www.johnnycode.com/blog/2010/04/08/jquery-form-serialize-doesnt-post-submit-and-button-values-duh/

We cannot fork jQuery to fix this. Eventually they will fix it.

Massimo

On Aug 23, 8:46 am, Miguel Lopes  wrote:
> As an update, the issue remains with the following combinations:
> * if input type='submit' and different names
> * if input type='button', with or without different name attributes
>
> However, input type='text' are present in form.vars.
>
> For the interested a solution for usage in components is to use set a hidden
> input text field via the click event of each button.
> Miguel
>
> On Mon, Aug 23, 2010 at 3:54 AM, Miguel Lopes  wrote:
> > I'm using the "same name to all input type submits" technique. This is very
> > nice because it avoids some js and works like a charm :-)
> > In a regular controller the code works flawlessly. However when I try to
> > put it in a controller, it fails:
>
> > status_form = FORM(_id='status_form')
> > for status in OPPTY_STATUS:
> >     btn = INPUT(_type='submit', _name='status', _value=status,
> > _class='status_btn')
> >     status_form.append(btn)
>
> > if status_form.accepts(request.vars, session, formname='status_form'):
> >     # status_form.vars.status is None in component
> >     # status_form.vars.status corresponds to whatever submit was pressed in
> > regular controller
> > ...
>
> > It seems like the component mechanisms is ignoring the value of 'status'.
>
> > Miguel


[web2py] crud.archive issue with "unique"

2010-08-23 Thread Jurgis Pralgauskis
Hello,
if I have "unique" field in mytable.
How should crud.archive deal with it?

I tried setting it after mytable and mytable_archive declaration, but
then it doesn't apply it to mytable...

db.mytable.name.unique=True



ps.: in
http://web2py.com/book/default/chapter/07#Record-Versioning
and in docstrings
there is said, thtat crud.archive creates "mytable_history",
but it creates "mytable_archive" ..


[web2py] Re: crud.archive issue with "unique"

2010-08-23 Thread mdipierro
you cannot set the unique attribute after the table definition.

Moreover it would be a problem with archive unless you make the
archive table manually with fields that corrspond to the table to be
archived but with unique=False.

Massimo

On Aug 23, 10:14 pm, Jurgis Pralgauskis 
wrote:
> Hello,
> if I have "unique" field in mytable.
> How should crud.archive deal with it?
>
> I tried setting it after mytable and mytable_archive declaration, but
> then it doesn't apply it to mytable...
>
> db.mytable.name.unique=True
>
> ps.: inhttp://web2py.com/book/default/chapter/07#Record-Versioning
> and in docstrings
> there is said, thtat crud.archive creates "mytable_history",
> but it creates "mytable_archive" ..


[web2py] Web2py and threads

2010-08-23 Thread pierreth
Hello,

I would like to know how Web2py is managing threads. Is it like Java
servlets where requests are mapped to servlets while one servlet
object can be used by multiple threads at the same time to serve many
requests?

Are some users here using Jython with Web2py to get around the ugly
Pyhton GIL? I would to know about your experience.

--
Pierre


[web2py] Re: My editor ...

2010-08-23 Thread Johan
Is it possible to post a free version of this _as it is_ ?
Some of us my find it very useful.
Or even, a version without the wysiwyg, if that's the problem.


[web2py] Re: Web2py and threads

2010-08-23 Thread mdipierro
In Java a serverlet, as far as I understand, is a class which conforms
to some API that allows it to serve one http request. Each instance is
executed in its own thread. The Python equivalent of the serverlet API
is a WSGI application and web2py is based on WSGI, therefore the
parallelization mechanism is equivalent to Java serverlets.

In web2py (the same in Django, Pylons, any any WSGI app) each http
request is executed in its own thread. Threads are recycled to server
non-concurrent requests and reuse database connections (pooling)
without need to close and reopen them. The web server can be
configured for a min number and a max number of threads.

I think the GIL in this context is a false problem. In fact in
production you can use Apache and run as many processes as the number
of cores that you have. Each process will create as many threads as it
needs to server multiple requests. The GIL is a problems only if one
process runs multiple threads on multiple cores. It is possible there
are some caveats with many cores but I have not really played with
apache configurations and benchmarks.

I do not think using Jython helps anything. According to these tests:
  
http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/
  http://pyevolve.sourceforge.net/wordpress/?p=1189
Jython is 2x-3x slower than cpython. So you may get better scaling
with multiple cores but you pay huge perfomance hit.

Web2py runs on Jython but there is a known bug in Java regular
expressions that Sun marked as "won'tfix" that can cause runaway
problems when parsing complex templates. This is not a web2py specific
problem but we have seen effects of the bug in some web2py apps.

Massimo





On Aug 23, 11:29 pm, pierreth  wrote:
> Hello,
>
> I would like to know how Web2py is managing threads. Is it like Java
> servlets where requests are mapped to servlets while one servlet
> object can be used by multiple threads at the same time to serve many
> requests?
>
> Are some users here using Jython with Web2py to get around the ugly
> Pyhton GIL? I would to know about your experience.
>
> --
> Pierre


[web2py] Re: Web2py and threads

2010-08-23 Thread mdipierro
P.S. In the end the bottle neck is ALWAYS database access.

On Aug 24, 12:20 am, mdipierro  wrote:
> In Java a serverlet, as far as I understand, is a class which conforms
> to some API that allows it to serve one http request. Each instance is
> executed in its own thread. The Python equivalent of the serverlet API
> is a WSGI application and web2py is based on WSGI, therefore the
> parallelization mechanism is equivalent to Java serverlets.
>
> In web2py (the same in Django, Pylons, any any WSGI app) each http
> request is executed in its own thread. Threads are recycled to server
> non-concurrent requests and reuse database connections (pooling)
> without need to close and reopen them. The web server can be
> configured for a min number and a max number of threads.
>
> I think the GIL in this context is a false problem. In fact in
> production you can use Apache and run as many processes as the number
> of cores that you have. Each process will create as many threads as it
> needs to server multiple requests. The GIL is a problems only if one
> process runs multiple threads on multiple cores. It is possible there
> are some caveats with many cores but I have not really played with
> apache configurations and benchmarks.
>
> I do not think using Jython helps anything. According to these tests:
>  http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-p...
>  http://pyevolve.sourceforge.net/wordpress/?p=1189
> Jython is 2x-3x slower than cpython. So you may get better scaling
> with multiple cores but you pay huge perfomance hit.
>
> Web2py runs on Jython but there is a known bug in Java regular
> expressions that Sun marked as "won'tfix" that can cause runaway
> problems when parsing complex templates. This is not a web2py specific
> problem but we have seen effects of the bug in some web2py apps.
>
> Massimo
>
> On Aug 23, 11:29 pm, pierreth  wrote:
>
> > Hello,
>
> > I would like to know how Web2py is managing threads. Is it like Java
> > servlets where requests are mapped to servlets while one servlet
> > object can be used by multiple threads at the same time to serve many
> > requests?
>
> > Are some users here using Jython with Web2py to get around the ugly
> > Pyhton GIL? I would to know about your experience.
>
> > --
> > Pierre


[web2py] Re: Should we have a feature freeze and stability maintenance period in future?

2010-08-23 Thread Paul Gerrard
Hi all,

Sounds like there's a little momentum in this :-)

Here's what I can contribute to the party:

1. Part of the test management tool I am writing is a 'case
management' facility. It is basic, but it supports multiple case
types. Cases can be issues/incidents/defects, to do/actions, and
notifications to review changes to other entities in the system (in my
case, requirements, stories, tests etc...). There is a messaging/
notifications module, uploads/attachments and a case notes history.
This functionality is part of the system we will will make available
as a free hosted option to Agile Development teams. I'd be delighted
to offer this to "the team" to use. I benefit by getting feedback and
ideas for improvement. I also get a little kudos with the testing
market :O)

2. As a sideline we have (currently 4) servers colocated at a data
centre that is a mile away from where I live (Maidenhead UK).
Currently, all are using Windows 2008 and I have my dev web2py set up
on one of them. I would like to deploy on Linux, I use Mysql at the
moment - the only proprietary code I currently use is Windows and I
want to be 100% open source. So I'd be happy to provide a Linux box
for a Linux expert to set up apache/mail/web2py. I'm familiar with
Ubuntu, but if there's a preferred distribution - please advise - I'll
use that. I anticipate this would host the tools required of the team,
plus my own development environment. I would deploy on another server.
I guess there should be a mirror of the web2py team content somewhere
else on the planet. (I could also use my Amazon web services account,
but this is a tad more expensive for me).

3. I'm sure none of us want to be drawn into a bureacratic, committee
based group- but a little organisation is required. I also host three
community stes using Druapl CMS. One is public (www.uktmf.com) and I
have two private ones that are probably a better model for a small
group).I also use Drupal for my own company website.I'd be happy to
host (initially on Windows, but I'd migrate to the Linux box later) a
Drupal site for the group to use. The value of a CMS is we could
define a brief terms of reference for the group, assign roles etc and
make a start. Mailing lists are a bit cumbersome :O)

4. There's also a slight possibility I can corral some professional
testers into helping us. There's an interesting group I know who do
weekend testing for fun - mainly exploratory, but if we released apps
that needed some testing, I can publicise this in my testing network
we might get them on board. Just a thought.

This is what I can contribute.

Paul.

On Aug 23, 10:47 am, Michele Comitini 
wrote:
> Hi all,
>
> I do develomplent with many different things, different languages
> architectures and looking for tools for managing software projects is
> a must for me
>
> ;-)
>
> I think the "problem" here is that web2py has started to receive the
> deserved attention by the user and developer community.
> Prof. Massimo is  doing his best to keep with the growing volume of
> request. The  question is: "design of new features is slowed by
> bugfixing?"
>
> Well I red from Massimo 2 alerts similar to the following (Massimo
> feel free to correct me if I am wrong!!):
> 1. "Please remind me of patches to be applied"
> 2. "I need to keep track of messages, so no IRC"
>
> Due to web2py success things will get worse, then I would suggest to
> start focusing on 2 main points to see if we can find some
> ideas/solutions.
>
> 1) version control
>
> I perfectly understand Massimo position: dealing with mercurial
> (git,bzr) is a pain! Anyhow we must help Massimo
> delegate some dirty work to others, since we need Massimo to do the
> important stuff.
> I think that somehow Massimo's web2py problems resemble those that
> Linus' Linux faced at the end of '90s.  I just
> remind that Linus to end the thing had written the git system!
>
> Please take time to read this 
> chapter:http://hgbook.red-bean.com/read/collaborating-with-other-people.html
>
> and 
> this:http://hgbook.red-bean.com/read/collaborating-with-other-people.html#...
>
> The model for Linux development IMHO is too much at this time, but
> some ideas should be taken into consideration.
>
> 2) issue tracking
>
> We *must* setup a ticket system.  Discussion on groups,IRC will
> eventually lead to a new ticket, but *only* tickets must be
> taken into account for bugfixing. Code snippets, error log, must be
> tracked there.
>
> ciao,
> mic
>
> 2010/8/23 mart :
>
>
>
> > Hi Again,
>
> > So, spending the day with my 3 girls certainly does provide
> > perspective on requirements and how well attached we can be to them
> > sometimes ;). That in mind, I certainly do understand your personal
> > requirements on keeping what you know and what works for you (I
> > respect old fashion ;) ). We can work with that, while hopefully
> > bringing something efficient, scalable  and most certainly flexible,
> > while remaining respectful of what is important to Mr Di P