On 9/8/06, Enrico Morelli <[EMAIL PROTECTED]> wrote:
> I offer you an italian pizza for another suggestion. Please, you are
> free to tell me if I disturb you.

Thank you, I do like pizzas :) -- Don't worry, if I didn't have time
to help I wouldn't :)

> The administrator can insert the user that he wants in the input fields.
> Now, when the admin press Save button the program receive a
> dictionary (**kw) in the form:
> {'day' : ['user','user','','','user',......],
>  'day' : ['user','user','','','user',......],
> ..}
>
> Where day is 1 to how many days has the month, and the array for
> each day contains the values for the instruments (the username if there
> is an user or an empty string) in the instrument table order.
>
> I'm in trouble to save or update the plan table with the data coming
> from the form.
>
> At the first time I'd tried:
>
> for k,v in kw.items():
>  for instr in self.instruments:
>     
> newdata=self.mysession.query(PlanEntry).selectfirst(and_(self.plan.c.year==year,
> self.plan.c.month==month, self.plan.c.day==k,
> self.plan.c.instrument_id==instr.instrument_id))

Isn't there something missing here? I don't see any use of "v" for example.

If I'm understanding correctly what you want to do, something like this:

instruments = self.mysession.query(Instrument).select()
for day,nameslist in kw.items():
  for name, instr in zip(nameslist, instruments):
    # First see if the instrument is already planned
    # this leaves pe = None if it wasn't
    pe = self.mysession.query(PlanEntry).get_by(
                 year=year, month=month, day=day,
                 instrument_id=instr.instrument_id)
    if pe is None and name = '':
      continue  # nothing to do
    elif pe is None:
      # since name != '' - create a new entry
      pe = PlanEntry()
      pe.year, pe.month, pe.day = year, month, day
      pe.instrument = instr
      pe.data = name
      self.mysession.save(pe)
    elif name == None:
      # Here pe is not None (existing plan) but name is ''
      # so we need to remove the entry
      self.mysession.delete(pe)
    else:
      # existing entry and name != '', update the entry
      pe.data = name

Arnar


> to associate to each newdata the new entries and save its.
> But I think that this is a bad approach. In your opinion there are some
> other ways to do this?
>
> Thanks again for your help.
> --
> -------------------------------------------------------------------
>        (o_
> (o_    //\  Coltivate Linux che tanto Windows si pianta da solo.
> (/)_   V_/_
> +------------------------------------------------------------------+
> |     ENRICO MORELLI         |  email: [EMAIL PROTECTED]       |
> | *     *       *       *    |  phone: +39 055 4574269             |
> |  University of Florence    |  fax  : +39 055 4574253             |
> |  CERM - via Sacconi, 6 -  50019 Sesto Fiorentino (FI) - ITALY    |
> +------------------------------------------------------------------+
>

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to