Ignore:
Timestamp:
07/06/10 12:38:59 (23 months ago)
Author:
dart
Message:

LoReality?:
o Update on squadron/mission

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loreality/loreality/controllers/mission.py

    r2105 r2106  
    2121import uuid 
    2222from pylons.i18n.translation import _, ungettext 
     23class MisField: 
     24    name = "" 
     25    formtype = "" 
     26    def __init__( self, **kwargs): 
     27        self.__dict__.update( kwargs ) 
     28 
    2329 
    2430class MissionController(BaseController): 
     31    misfields = [ 
     32            MisField(name="name"          ,t_name=_("name")          ,formtype="text"), 
     33            MisField(name="description"   ,t_name=_("description")   ,formtype="text"), 
     34            MisField(name="date"          ,t_name=_("date")          ,formtype="text"), 
     35            MisField(name="situation"     ,t_name=_("situation")     ,formtype="textarea"), 
     36            MisField(name="objectives"    ,t_name=_("objectives")    ,formtype="textarea"), 
     37            MisField(name="flightplan"    ,t_name=_("flight plan")   ,formtype="textarea"), 
     38            MisField(name="threat"        ,t_name=_("threat")        ,formtype="textarea"), 
     39            MisField(name="others"        ,t_name=_("others")        ,formtype="textarea") 
     40            ] 
    2541    #-------------------------------------------------------------- 
    2642    def _get_pilots(self, already_pilots): 
     
    2945        for p in pilots: 
    3046            if p not in already_pilots: 
    31                 names.append( p.name ) 
     47                names.append( [p.id, p.name] ) 
    3248        return names 
    3349 
     
    4460        c.heading = mission.name 
    4561        c.mission = mission 
     62        c.misfields = self.misfields 
    4663        c.available_pilots = self._get_pilots(mission.pilots) 
    4764 
     
    7592                    abort(404) 
    7693 
    77                 mission.name = result["name"] 
    78                 mission.description = result["description"] 
    79                 mission.date = result["date"] 
     94                for f in self.misfields: 
     95                    setattr(mission, f.name, result[f.name] ) 
     96 
    8097                meta.Session.commit() 
    8198                return self.view(id=id)  
     
    95112        c.heading = "Edit %s"%mission.name 
    96113        c.mission = mission 
     114        c.misfields = self.misfields 
    97115        c.available_pilots = self._get_pilots(mission.pilots) 
    98116 
    99117        if not values: values = {} 
    100         values["name"] = mission.name 
    101         values["description"] = mission.description 
    102         values["date"] = mission.date 
     118 
     119        for f in self.misfields: 
     120            values[f.name] = getattr(mission, f.name ) 
    103121 
    104122        html = render('/derived/page/mission_edit.html') 
     
    119137            abort(404) 
    120138        pilot_q = meta.Session.query(model.Pilot) 
    121         pilot = pilot_q.filter_by(name=pilotid).first() 
     139        pilot = pilot_q.filter_by(id=uuid.UUID(pilotid)).first() 
    122140        if pilot is None: 
    123141            abort(404) 
Note: See TracChangeset for help on using the changeset viewer.