*** titopbs has quit IRC *** dcmwai has quit IRC *** dimas has joined #gnuenterprise *** cilkay has joined #gnuenterprise *** cilkay has left #gnuenterprise *** dcmwai has joined #gnuenterprise *** Amorphous has quit IRC *** Amorphous has joined #gnuenterprise *** dimas has quit IRC *** chillywilly has quit IRC *** ajmitch_ has quit IRC *** mnemoc has quit IRC *** ajmitch has quit IRC *** reinhard has joined #gnuenterprise *** irc.freenode.net sets mode: +n *** dimas has joined #gnuenterprise *** mnemoc has joined #gnuenterprise *** ajmitch_ has joined #gnuenterprise *** ajmitch has joined #gnuenterprise *** chillywilly has joined #gnuenterprise *** ajmitch_ has quit IRC *** chillywilly has quit IRC *** dimas has quit IRC *** ajmitch has quit IRC *** mnemoc has quit IRC *** sjc has joined #gnuenterprise *** dimas has joined #gnuenterprise *** ajmitch_ has joined #gnuenterprise *** chillywilly has joined #gnuenterprise *** johannesV has joined #gnuenterprise good morning *** mnemoc has joined #gnuenterprise *** ajmitch has joined #gnuenterprise good morning all good morning *** SachaS has joined #gnuenterprise *** btami has joined #gnuenterprise good morning good morning *** kilo_ has joined #gnuenterprise *** SachaS has quit IRC good morning hi btami, kilo *** SachaS has joined #gnuenterprise *** sjc has quit IRC reinhard: what debuglevel is for sql outputs? 3 thx great, i finally managed to create an autolayouted about-box for wx driver ... :) phu, wx sucks a bit ... johannesV: let me introduce you a beast named Win32API kilo_, will do that in the afternoon *lol* rotfl cooooool btami, kilo_ could you point me to some docs ? how can i get a current svn-snapshot onto my win notebook ? dont you have svn client there yet? no does it exist for xp ? yep tortoisesvn.tigris.org is the easiest one commandline svn exists too oh, then i'd like to have that one but needs more time to set up :) i'm using it with putty ok, which would be the best way to setup things ... are we all going on win32 now? :) dimas, no it's just for doing some hacks on the win32 uidriver and for testing adodbapi huh nobody who really likes to work with computers uses something like win* or am i wrong ? :) btami, what's the difference between gnue-appserver-0.4.1.exe and gnue-appserver-0.4.1-debug.exe ? latter can output debug msgs ah, ok is it better to use that windows installation files or can i install that exe's and later override it by svn, or shall i stick with the svn completely ? for the svn-only you need some prerequisits i think http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/wincontrols.asp http://www.gnuenterprise.org/cgi-bin/twiki/view/Main/WindowsQuickStart the *.exe files for endusers ok, thanks ... will try it np *** rynik has joined #gnuenterprise *** holycow has quit IRC Hi. How do I implement enumeration type for a property? Only way I see is referencing another class and instantiate that class to list the enumeration. Is this a good idè? It seems a bit bulky. Example: ... ... Where typename have the entries; asset, expense, incom, ... why is this bulky? Mostly because the type isn't defind until the database is populated, Anyway, I was first of all interested about if I was on the right track or if you had a nicer soloution. *** tiredbones has joined #gnuenterprise i think your solution is ok and the simplest one Thanks. What about locale, how does it translate? rynik: this is exactly how appserver's sample does the country definition and lookup rynik: you mean localising a gcd file? hang on, gcd is... No, not realy. What goes in the database. The .gsd file. Isn't it? you can add another property to acctype class like lang and filter your gcd similar to fiscal year or company filter in gnue-luca Yes, right. And use an index for the program logic. I didn't get luca up and running :( svn co svn://svn.gnuenterprise.org/var/svn/gnue-luca/trunk gnue-luca it's reinhard's baby, we have no up and running luca here too... and he just started it, then swiched to clean up gnue-common Yes, I'll try again. I did get someting like demoa is not a valid filter but right now I have the .deb appserver running that seems to cause some confusion for the svn tools:) sure :) OK. And thank you for now. I'll just continue walk the ice. You will hear from me again when I fall through... rynik: gnue-luca should be runnable with debs i think :~/gnue-luca/finance$ gnue-forms acc-main.gfd (entering demoa and 2005) geasSession.py raises InvalidFilterValueError demoa Although I have no problem starting the sample.gfd ok that's not your fault did you import base/demo.gsd? hmm I think I'll commit a sample gsd for finance part if you update your svn, you should have a finance/sample.gsd you can import that into your database with OK. Then again, whats in the database? Separating data and logic is good. Isn't implementing enumerationtypes as instances like separating logic from logic? gnue-schema --connection=gnue finance/sample.gsd reinhard:Thanks rynik: we tried to keep the number of data types reasonably small you could not only think of enumerations, but also of sets, structs (as in C struct{}), and many more lists hashes just see python's long list of supported data types up to complex numbers however we chose to support only a very small number of data types natively and go for emulation in the db for the rest like we emulate a list or set with a master/detail table relationship etc so we win the database independence as not many databases support all those nifty special types natively Yes, only it seems so vulnerable to verson missmatch etc, hmm One portion of the database stores the users data and one stores program logic. I think if you mix things from different versions you will always get problems yes that's right and AFAICT that's a quite common approach OK. If your comfortable with it I will probably be too... given some time... Still same error with luca. But nevermind I'm sure you have more important things to do. did you run gnue-schema? updating table 'base_company' ... Rows: 1 inserted, 0 updated, 0 unchanged. updating table 'gl_year' ... Rows: 1 inserted, 0 updated, 0 unchanged. updating table 'gl_period' ... Rows: 12 inserted, 0 updated, 0 unchanged. updating table 'base_currency' ... Rows: 3 inserted, 0 updated, 0 unchanged. updating table 'base_parameters' ... Rows: 1 inserted, 0 updated, 0 unchanged. ok now actually demoa and 2005 should be valid filter values reinhard: You can't let go, can you :) . I shoul probably have two databases. One for the svn and one for the .deb. Versioning problems. You know...:) I have run both gnue-setupdb and the svn version on the DB. please note to restart appserver after populating filter-values Aha.. arrgghh I always forget that, thanks johannesV! yeah, i know ... :) maybe we have to do some 'redesign' to that *** titopbs has joined #gnuenterprise btw. i've got gnue up and running on my notebook (using svn from network folder) *** dcmwai has quit IRC mabye the program logic part of the DB should have a vresion number residing in the DB for the appserver to check against its classes versions just an idè Yeah, luca is alive! btami, kilo_ , how can i use the svn-version of gnue-forms instead of that one copied into site-packages/gnue/forms ? : there is a gnue-forms python script in Python's scripts dir just it has no .py extension When I select Tools -> Run Form in Designer nothing happens. Is this broke or am I doing something wrong? as the wiki suggested i have a gf.bat containing: python c:\python23\scripts\gnue-forms %1 %2 %3 %4 %5 %6 %7 btami, yeah i've noticed that, but this runs the code-base from c:\programs\python23\lib\site-packages\gnue\forms sure ok, and that's exactly what i don't want to since this is not my svn-code-base have to run for kids bbl *** btami has quit IRC *** SachaS has quit IRC *** SachaS has joined #gnuenterprise *** kilo_ has quit IRC uiuiui ... that win32 stuff looks very complicated ... why can't one do just dlg = Dialog (...) to get another dialog instance ... instead one needs to do a hundreds of calls ... how great and easy pygtk is :) hmm maybe i can find a tutorial later ... i think working on the curses driver is more importaint ... *** jamest has joined #gnuenterprise Is the filter property of the class tag documented somewere? I dont understand what it is. rynik: i don't know but I'm sure reinhard or johannesV will * jamest just got here so doesn't know if they are in atm johannesV: Can U help me? *** rynik has quit IRC *** rynik has joined #gnuenterprise rynik, if a class 'foo' has a filter 'bar' it will get an additional property of the type "bar"; so the class 'bar' is automatically a master of 'foo' and you will get automatically added filters for this property; which means a login-prompt for the 'bar' class (selecting a master-value) which will be added to all queries of classes having that filter-type if you insert a new record into the class foo, it's bar-property will be set to the value you've specified in login-dialog rynik, have you read developers guid in appserver/doc ? yes (but i'm not sure if filters are already documented there) dont think so it's not there :( i have a dumb question the idea behind filters is to implement multi company within a single database you have a class base_company that defines all the companies and the classes with filter="base_company" are company dependent (i.e. you have separate data per company) which would be more pythonic in nature and those without are not company dependent i.e. all companies share the same data myListOfAddressLines = address.getFormattedForMailing or address.formatForMailing the function names hmmm not that it would have something to do with python reinhard and johannesV have inspired me to take my internal stuff to more python official style i'd use get myself but i'm tainted w/ java but generally verbal function names do... format... change... import.. whatever sound like the state of the object will change if called and get... sounds like the object remains unchanged but you just request something RecordSet.post() DataSource.connect() makes sense all do something * jamest is also having one heck of a morning even though they may or may not return something i've forgotten to eat the last 4 meals and DataSource.getField does nothing but just returns a value jamest: lol and currently have 2 open cans of soda in front of me with no idea why i opened 2 OK. I've got the clue on filters.Who is nursing the dev guide? What you just wrote should be in there. rynik: I don't know who wrote the dev guide j/k if I try hard I think I can remember that it was... ... ...me :( derek? reinhart:Dont be sorry! Just cut and paste. If a class 'foo' has a filter 'bar' it will get an additional property of the type "bar"; so the class 'bar' is automatically a master of 'foo' and you will get automatically added filters for this property; which means a login-prompt for the 'bar' class (selecting a master-value) which will be added to all queries of classes having that filter-type if you insert a new record into the class foo, it's bar-property will be set to the value you've specified in login-dialog The idea behind filters is to implement multi company within a single database You have a class base_company that defines all the companies and the classes with filter="base_company" are company dependent (i.e. you have separate data per company) and those without are not company dependent reinhard, is startup-time of forms better now ? johannesV: let me svn up quickly *** btami has joined #gnuenterprise johannesV: it's a bit faster now (although I had to remove the gfd files from the dialogs directory) ? morning you shouldn't since i've changed GFClient to not import those dialogs *** titopbs has quit IRC *** johannesV_ has joined #gnuenterprise *** johannesV has quit IRC *** mnemoc_ has joined #gnuenterprise hmmm gException claims to be the same as the builtin python Exception but seems to add group support which I can't find mentioned in the python docs jamest: gException is defined in gnue-common/src/apps/errors.py just like group support in general yes but the docstring says it's the same as python's Exception which it isn't, is it? as there is this group thing, which I'm still reading thru the code to figure out what that's for reinhard, adodbapi is working well ... i'm connected to the MS SQL server ... browsing tables from rondoab :) i'm trying to figure out if I should use gException in my inhouse exceptions jamest: the basic idea behind gException is 2 things 1. i18n support (unicode support) 2. classification of exceptions into groups btw, gnue-designer looks nice on xp where a custom exception handler can decide how to react depending on the group jamest: example: gtk2 forms exception handler displays a simple message box for "user" type exceptions *** mnemoc has quit IRC like "wrong password" or "this field must be integer" and such stuff *** SachaS has quit IRC and for "system" type exception it displays a dialog telling "you have found a bug in gnue, please report it to gnue-dev@gnu.org" and a Detail>> button that unfolds the traceback so you can copy and paste any reasons this stuff shouldn't be used outside gnue apps? no reason also a nice thing of gException (IIRC) is that it supports "detail overrwriting" i was reading that too :) *** titopbs has joined #gnuenterprise looks like I can call getException() from withing a except block yes and have better control of the output right what kind of error would you classify something like AddressIncomplete in my test case probably user as at one point users didn't enter it but at this point in the game its running headless :) our main decision criteria always was who should be notified if the user should be able to fix himself, "user" if he has to call his system admin (e.g. db setup hosed), "admin" well, in my address example if I put it in a GUI app then the user would need to fix it if he has to call the programmer who wrote the gfd/gcd/program, "application" if lets same I'm processing info coming in from the web this is a batch job or i'm generating an invoice then it's a batch job so no users involved at that point yes, it should have been caught before this point still I would say "user" another rule of thumb is and of course it'll never happen that one doesn't get through :) if a traceback could help, don't use "user" if a traceback will only confuse, do "user" at least for forms well actually you could even define more groups if you do non-gnue apps this is all outside of forms custom stuff where the traceback would get emailed to me so it wouldn't matter ok, just getting a feel for it is all except for maybe you would want to have a group where you need the traceback in the mail (which i then would make "admin" ) and another where you don't need a traceback (which I would make "user") sample for detail overwriting could be I am planning to use detail overwriting for database exceptions as for a db backend error (like foreign key violation or so) a traceback usually doesn't help but the actual SQL statements and the parameter list would help so I would overwrite "detail" when generating the exception and when the user presses >>Detail in the error message he won't get a traceback, but the SQL string in this case the class could end up in both places (in front of a user, but also in a cron'd job) so I stick with user I guess reinhard: that sql thing will be handy hmmmm i see it imports itself into __builtin__ we also use detail overwriting to pass server side tracebacks to the client yep in that case I have lots of custom classes, Address, Invoice, Uzah by the time I came to not liking this importing into global namespace, it was too late :( * jamest is trying to recall what's going to happen if I put exceptions in each class i'd have to put the import for gException in each class btw you would probably want to use UserError, AdminError etc. instead of directly using gException anyway yip yep, I would recommend import errors in every file python only imports that once right well so the __builtin__ reassign only gets called once python runs the init code only once, yes ah, but the builtin will get hit each time as it's outside the class i guess that's ok no the code directly in the file (outside "def") will only be executed once but the identifiers will be imported into every module you import from again the __builtin__ is only assigned once I'm looking at the contact.gfd file in the examples directory. The logic section has 4 blocks. There are three pages. On the first page we have block1 and block2. In the layout section the entry fileds are associated with block1 and block2. Q. Why was the fist pages diveded into tow blocks? titopbs: i think there were 2 reasons 1. derek was on crack bbl 2. i seem to recall the contact system where he worked to be hyper normalized and consisted of lots and lots of tables so maybe his demo contact gfd reflects some of that complexity but I vote 1 jamest:lol any objections against removing gnue-integrator from the web page build script? do you know about a 'product' to use gnu-appserver from zope? mnemoc_: no reinhard: :( reinhard: no jamest: ok done Support for not fully qualified property names throughout the language interface how is that work? instead of x = new ("address_person") x.address_name = "Dimitry" x.address_street = "Moscow Road" you can do setcontext ("address") x = new ("person") x.name = "Dimitry" x.street = "Moscow Road" great! in case your code is a procedure of a class, setcontext is automatically done for the module the procedure is defined in *** sjc has joined #gnuenterprise reinhard: for x.street the most common example still would be "The Lenin's Ave." :( *** SachaS has joined #gnuenterprise someone from UK? sjc is from UK as it seems. hi there sjc are you around? i think so :) whats the problem sjc: as an employee of a UK company are you entitled to 4 weeks paid leave? by law ? I am not qualified to answer that one. I am freelance contractor and do not employ anyone but I think that does sound right thanks. we have some very strange laws in this country that favor the worker and not the business owner. I have heard business owners complain about having to pay for long holiday periods * sjc thinks the business owner should be protected first before worrying about the employees i have not had a holiday for years :( sjc: some owners would take advantage of that though yes hehehe *evilgrin* ;-) rofl *** johannesV_ has quit IRC ask johannesV_ err rofl watch out johannes! he left just in the right moment :) the problem it seems is it is very hard to get rid of someone who does not pull their weight I just subcontract to others instead I assume johannesV_ is an employer? :) johannesV_ is my employee :) oic :) now it all makes sense reinhard works him without mercy what he needs is 4 weeks paid holiday :D * sjc starts to stir the pot something like 8 hours a day I'd imagine that poor johannes has to slave away for the man but all that suffering makes gnue better so I'm cool with it :) 8 hour days? i did not know a day was _that_ long :) * sjc 's clock starts at 12 noon unless I start the day late , of course :) only joking, but i do believe that its what you can do in an hour that counts, not how many hours you work. My best code is written for a couple of hours first thing in the morning ...and sometimes a few hours after midnight sjc: do you know if UK employers MUST pay overtime (talking about a permanent contract)? we have a minimum wage per hour set by government. I think there is a limit to compulsory hours worked too. But i think a contract can override the maximum hours reinhard: as google is allow for its employee to spend 20% of the time for the projects they like i think a recommended weeks work is somewhere between 35 and 40 hours . But thinking about it I dont think its actually compulsory. you would tell johannes that you require 8 hours for gnue and the rest he is allowed to do anything he likes he will do gnue anyway he has probably one of the best jobs anyway :) it would be set in the persons employment contract though. Would be a breach of contract if exceeded without extra payment I would guess I wouldnt sign a contract that asks me to work unpaid overtime. Could end up working all night for nothing extra. Very dodgy dimas: no kidding when he had a surgery and had to stay in bed he took the notebook with him and hacked on gnue in bed reinhard: what dedication :) however he still has to work other stuff too as gnue doesn't (yet) pay the bills save the wages :) *** kilo_ has joined #gnuenterprise oops btami: thanks for your fixes np reinhard: there is a problem with base_name as property name using firebird (gnue-luca base/base.gcd) it's an Interbase keyword ! gack! huh is that the reason for the traceback you had today? yep just find it in interbase langref.pdf is there a list of interbase reserved words? oh where can i find that? wait a min... http://www.ibphoenix.com/downloads/60LangRef.zip thanks all Interbase/Firebird docs: http://www.firebirdsql.org/index.php?op=doc&id=userdoc night all *** btami has quit IRC how could i check from python code if link exists and points properly to certain directory? >>> help(os.readlink) Help on built-in function readlink: readlink(...) readlink(path) -> path Return a string representing the path to which the symbolic link points. nickr: great, thanks weee I hack around in python for *years* now never seen the help function wow even works with gnue functions it just prints the docstring :) but still cool @pydoc os.readlink kilo_: readlink(path) -> path. Return a string representing the path to which the symbolic link points. reinhard: bigbro also can help you... @pydoc gnue.common.i18n.utranslate :-P lol this works with help() ;-) i18n problem reinhard: wicked *** wendall911 has joined #gnuenterprise *** dsmith has joined #gnuenterprise *** jamest has left #gnuenterprise *** dsmith has quit IRC *** sjc has quit IRC *** kilo_ has quit IRC night all *** reinhard has quit IRC *** rynik has quit IRC *** wendall911 has quit IRC *** titopbs has quit IRC *** titopbs has joined #gnuenterprise *** dsmith-h has joined #gnuenterprise *** titopbs has quit IRC *** dsmith-h has quit IRC *** dcmwai has joined #gnuenterprise *** holycow has joined #gnuenterprise *** titopbs has joined #gnuenterprise *** titopbs has quit IRC