Module gefahrenprotokoll
[hide private]
[frames] | no frames]

Source Code for Module gefahrenprotokoll

   1  # -*- coding: utf-8 -*- 
   2  # 
   3  # 
   4  #    filename:  gefahrenprotokoll.py 
   5  # 
   6  #    version:   see wxvf.py 
   7  # 
   8  # 
   9  # ---------------------------------------------------------------------------------------- 
  10  # 
  11  # 
  12  #    Copyright (C) 2010  Michael Bellair 
  13  # 
  14  #    This file is part of wxvf. 
  15  # 
  16  #    wxvf is free software: you can redistribute it and/or modify 
  17  #    it under the terms of the GNU General Public License as published by 
  18  #    the Free Software Foundation, either version 3 of the License, or 
  19  #    (at your option) any later version. 
  20  # 
  21  #    wxvf is distributed in the hope that it will be useful, 
  22  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
  23  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  24  #    GNU General Public License for more details. 
  25  # 
  26  #    You should have received a copy of the GNU General Public License 
  27  #    along with wxvf.  If not, see <http://www.gnu.org/licenses/>. 
  28  # 
  29  #    Michael Bellair 
  30  #    Sportplatzstrasse 11 
  31  #    01259 Dresden 
  32  # 
  33  #    E-Mail:    bellair@freenet.de 
  34  #    homepage:  http://freenet-homepage.de/bellair/vf/index.html 
  35  # 
  36  # 
  37  # ---------------------------------------------------------------------------------------- 
  38  # 
  39  import wx 
  40   
  41  from bearbeitesicherheitsanf import BearbeiteSicherheitsanf     # Eingabeformular für PSAnf 
  42   
  43  from bearbeiteprotokolleintrag import BearbeiteProtokolleintrag # Eingabeformular für Übersetzungen 
  44  from bearbeiteuebersetzung import BearbeiteUebersetzung # Eingabeformular für Übersetzungen 
  45   
  46  from universal import zk        # Zeichenketten bearbeiten 
  47   
  48  from wxuniversal import CheckBoxErg             # wx.CheckBox mit Ergänzungen 
  49  from wxuniversal import ComboBoxErg             # wx.ComboBox mit Ergänzungen 
  50  from wxuniversal import farbeBearbeiten                 # Farbe der Objekte, die  bearbeitet werden können 
  51  from wxuniversal import FlexGridSizerWxObjTitel # wxObjekt mit Titel 
  52  from wxuniversal import ListBoxSpWTitel         # ListBox im SplitterWindow mit Titel 
  53  from wxuniversal import ListBoxSpWTitelAL       # ListBox im SplitterWindow m. Titel+AW-Liste 
  54  from wxuniversal import MaskedTextCtrlErg       # wx.MaskedTextCtrl mit Ergänzungen 
  55  from wxuniversal import SiAnfStrktDok                   # Eingabeformular für Sicherheitsanforderungen 
  56  from wxuniversal import SiAnf                           # SiAnf einschl. zugeordneter Strkt, Dok, PE, ... 
  57  from wxuniversal import TextCtrlAuswStatisch            # wx.StaticText mit Auswahlliste 
  58  from wxuniversal import TextCtrlErg             # wx.TextCtrl mit Ergänzungen 
  59  from wxuniversal import TextCtrlSpWTitel        # TextCtrl im SplitterWindow mit Titel 
  60  from wxuniversal import TreeCtrlErg             # TreeCtrl mit Ergänzungen 
  61   
  62   
  63  # 
  64  # 
  65  # 
  66  # ---------------------------------------------------------------------------------------- 
  67  # ---------------------------------------------------------------------------------------- 
  68  # --                                    -------------------------------------------------- 
  69  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
  70  # --                                    -------------------------------------------------- 
  71  # ---------------------------------------------------------------------------------------- 
  72  # ---------------------------------------------------------------------------------------- 
  73  # 
  74  #  
  75  #       -- siehe TODO 'bearbeitesicherheitsanf.py' -- 
  76  # 
  77  # 
  78  # ---------------------------------------------------------------------------------------- 
  79  # 
  80   
  81   
  82   
  83  # 
  84  # 
  85  # 
  86  # ---------------------------------------------------------------------------------------- 
  87  # ---------------------------------------------------------------------------------------- 
  88  # --                                            ------------------------------------------ 
  89  # --    Eingabeformular 'Gefahrenprotokoll'     ------------------------------------------ 
  90  # --                                            ------------------------------------------ 
  91  # ---------------------------------------------------------------------------------------- 
  92  # ---------------------------------------------------------------------------------------- 
  93  # 
94 -class Gefahrenprotokoll( wx.ScrolledWindow ):
95 """ 96 Klasse zur Abbildung des Eingabeformulars 'Gefahrenprotokoll'. ACHTUNG ! im Normalfall soll ein Protokolleintrag angelegt und nicht wieder verändert (modifiziert / gelöscht) werden. Die Modifikation / das Löschen eines Protokolleintrages muß auf Ausnahmen beschränkt werden werden (Korrektur von Rechtschreibfehlern). 97 98 @keyword parent: Es ist der Datenbankbenutzername zu übergeben. 99 @type parent: Zeichenkette 100 @keyword id: Es ist das Kennwort des Datenbankbenutzers zu übergeben. 101 @type id: Zeichenkette 102 @keyword size: Es ist die IP-Adresse anzugeben, über die der PostgreSQL-Datenbankserver ansprechbar ist. 103 @type size: Zeichenkette 104 105 @raise Fehler: ?? Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. ?? 106 """ 107 108 # 109 # ------------------------------------------------------------------------------------ 110 # -- Eingabeformular initialisieren ---------------------------------- 111 # ------------------------------------------------------------------------------------ 112 #
113 - def __init__(self, parent, Statusleiste, dbVerbindung, prjProjekteId, sprSprachenId, psGefszenarioId, id = -1, size = wx.DefaultSize):
114 wx.ScrolledWindow.__init__( self, parent, id, (0, 0), size=size ) 115 116 # 117 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 118 # 119 self.SetName( name = "Gefahrenprotokoll" ) 120 121 122 # 123 # -- Vorgabewerte für ScrolledWindow ------------------------------------------ 124 # 125 self.SetScrollRate( 20, 20 ) 126 self.EnableScrolling( True, True ) 127 128 129 # 130 # -- Statusleiste übernehmen -------------------------------------------------- 131 # 132 self.Statusleiste = Statusleiste 133 134 135 # 136 # -- Datenbankwerte übernehmen (im Konstruktor werden sie nur zum Füllen der 137 # -- Auswahllisten benötigt ) 138 # 139 self.dbVerbindung = dbVerbindung 140 self.prjProjekteId = prjProjekteId 141 self.sprSprachenId = sprSprachenId 142 self.psGefszenarioId = psGefszenarioId 143 self.prtProtokollId = 0 144 self.listeWerte = None 145 146 147 # 148 # -- Protokolleinträge / Verfügbare Protokolleinträge ------------------ 149 # -- Objekt-Id = ------------------ 150 # 151 SplitterWindow = wx.SplitterWindow( self, -1, style = wx.SP_LIVE_UPDATE ) 152 153 self.SiAnfStrktDok__Protokolleintrag = SiAnfStrktDok( parent = SplitterWindow 154 , varId = 6 155 , Statusleiste = self.Statusleiste 156 , dbVerbindung = self.dbVerbindung 157 , prjProjekteId = self.prjProjekteId 158 , sprSprachenId = self.sprSprachenId 159 , psGefszenarioId = self.psGefszenarioId ) 160 161 self.Bind( wx.EVT_TREE_SEL_CHANGED 162 , self.__ereignisNavigation__ 163 , self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt ) 164 165 self.Bind( wx.EVT_TREE_ITEM_ACTIVATED 166 , self.__ereignisBearbeiteGefProt__ 167 , self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt ) 168 169 self.Bind( wx.EVT_TREE_KEY_DOWN 170 , self.__ereignisNeu__ 171 , self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt ) 172 173 174 175 176 self.SiAnfStrktDok__VerfProtokolleintrag = SiAnfStrktDok( parent = SplitterWindow 177 , varId = 5 178 , Statusleiste = self.Statusleiste 179 , dbVerbindung = self.dbVerbindung 180 , prjProjekteId = self.prjProjekteId 181 , sprSprachenId = self.sprSprachenId 182 , psGefszenarioId = self.psGefszenarioId ) 183 184 self.Bind( wx.EVT_TREE_ITEM_ACTIVATED 185 , self.__ereignisPEZuordnen__ 186 , self.SiAnfStrktDok__VerfProtokolleintrag.TreeCtrlErg__Id.wxObjekt ) 187 188 self.Bind( wx.EVT_TREE_ITEM_MIDDLE_CLICK 189 , self.__ereignisPEZuordnen__ 190 , self.SiAnfStrktDok__VerfProtokolleintrag.TreeCtrlErg__Id.wxObjekt ) 191 192 193 194 SplitterWindow.SplitVertically( self.SiAnfStrktDok__Protokolleintrag 195 , self.SiAnfStrktDok__VerfProtokolleintrag 196 , -100 ) 197 198 199 200 # 201 # -- Intern -------------------------------------------------- 202 # -- Objekt-Id = -301 -------------------------------------------------- 203 # 204 self.CheckBox__Intern = FlexGridSizerWxObjTitel( parent = self 205 , wxObj = CheckBoxErg( self 206 , Statusleiste = self.Statusleiste 207 , dbVerbindung = self.dbVerbindung ) 208 , titel = u"Intern:" 209 , orient = wx.VERTICAL ) 210 211 self.CheckBox__Intern.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Der Gefahrenprotokolleintrag wird intern verwendet." 212 213 214 215 # 216 # -- Typ des Protokolleintrages ------------------------------------------ 217 # -- Objekt-Id = -305 ------------------------------------------ 218 # 219 self.TextCtrlAuswStatisch__TypPE = FlexGridSizerWxObjTitel( parent = self 220 , wxObj = TextCtrlAuswStatisch( 221 parent = self 222 , size = ( -1, -1 ) 223 , Statusleiste = self.Statusleiste 224 , dbVerbindung = self.dbVerbindung ) 225 , titel = u"Typ des Protokolleintrages:" 226 , orient = wx.VERTICAL ) 227 228 self.TextCtrlAuswStatisch__TypPE.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Welcher Typ des Gefahrenprotokolleintrages liegt vor ?" 229 230 self.dbVerbindung.init_prtTyp( self.TextCtrlAuswStatisch__TypPE.wxObjekt 231 , self.sprSprachenId 232 , "PE" ) 233 234 235 236 # 237 # -- Beteiligte Personen -------------------------------------------------- 238 # -- Objekt-Id = -310 -------------------------------------------------- 239 # 240 self.ListBoxAL__BetPers = ListBoxSpWTitelAL( parent = self 241 , titel = u"Beteiligte Personen:" 242 , minSize = ( -1, 150 ) 243 , orient = wx.VERTICAL 244 , Statusleiste = self.Statusleiste 245 , dbVerbindung = self.dbVerbindung ) 246 247 self.ListBoxAL__BetPers.ListBox__li.statusLeisteDBSpNameErlaeuterung = u"Welche Personen waren an der Entstehung des Gefahrenprotokolleintrages beteiligt ?" 248 self.ListBoxAL__BetPers.ListBox__re.statusLeisteDBSpNameErlaeuterung = self.ListBoxAL__BetPers.ListBox__li.statusLeisteDBSpNameErlaeuterung 249 250 self.ListBoxAL__BetPers.SplitterWindow.SetSashPosition( 250 ) 251 252 self.dbVerbindung.init_prjPersonen( self.ListBoxAL__BetPers.ListBox__re ) 253 254 255 256 257 # 258 # -- Erledigt -------------------------------------------------- 259 # -- Objekt-Id = -303 -------------------------------------------------- 260 # 261 self.CheckBox__Erledigt = FlexGridSizerWxObjTitel( parent = self 262 , wxObj = CheckBoxErg( self 263 , Statusleiste = self.Statusleiste 264 , dbVerbindung = self.dbVerbindung ) 265 , titel = u"Erledigt:" 266 , orient = wx.VERTICAL ) 267 268 self.CheckBox__Erledigt.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Sind die die Aufgabe(n) zufriedenstellend gelöst ?" 269 270 # 271 # -- Datum des Protokolleintrages ------------------------------------------ 272 # -- Objekt-Id = -307 ------------------------------------------ 273 # 274 self.Ctrl__DatumPE = FlexGridSizerWxObjTitel( parent = self 275 , wxObj = MaskedTextCtrlErg( parent = self 276 , validRequired = True 277 , autoformat = "EUDATEDDMMYYYY." 278 , Statusleiste = self.Statusleiste 279 , dbVerbindung = self.dbVerbindung ) 280 , titel = u"Datum des Protokolleintrages:" 281 , orient = wx.VERTICAL ) 282 self.Ctrl__DatumPE.wxObjekt.SetMaxSize( ( 85, -1 ) ) 283 284 self.Ctrl__DatumPE.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Wann wurde der Gefahrenprotokolleintrag vorgenommen ?" 285 286 287 288 # 289 # -- Termin -------------------------------------------------- 290 # -- Objekt-Id = -323 -------------------------------------------------- 291 # 292 self.Ctrl__Termin = FlexGridSizerWxObjTitel( parent = self 293 , wxObj = MaskedTextCtrlErg( parent = self 294 , validRequired = True 295 , autoformat = "EUDATEDDMMYYYY." 296 , Statusleiste = self.Statusleiste 297 , dbVerbindung = self.dbVerbindung ) 298 , titel = u"Termin:" 299 , orient = wx.VERTICAL ) 300 self.Ctrl__Termin.wxObjekt.SetMaxSize( ( 85, -1 ) ) 301 self.Ctrl__Termin.Enable( False ) 302 303 self.Ctrl__Termin.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Wann soll(en) die Aufgabe(n) gelöst sein ?" 304 305 306 307 308 # 309 # -- Bitte um Antwort versendet am ... ---------------------------------- 310 # -- Objekt-Id = -321 ---------------------------------- 311 # 312 self.Ctrl__AntwDatum = FlexGridSizerWxObjTitel( parent = self 313 , wxObj = MaskedTextCtrlErg( parent = self 314 , validRequired = True 315 , autoformat = "EUDATEDDMMYYYY." 316 , Statusleiste = self.Statusleiste 317 , dbVerbindung = self.dbVerbindung ) 318 , titel = u"Bitte um Antwort versendet am:" 319 , orient = wx.VERTICAL ) 320 self.Ctrl__AntwDatum.wxObjekt.SetMaxSize( ( 85, -1 ) ) 321 self.Ctrl__AntwDatum.Enable( False ) 322 323 self.Ctrl__AntwDatum.wxObjekt.statusLeisteDBSpNameErlaeuterung = u"Wann wurde(n) die Aufgabe(n) gestellt / versendet ?" 324 325 326 327 # 328 # -- Bitte um Antwort an ... ------------------------------------------ 329 # -- Objekt-Id = -326 ------------------------------------------ 330 # 331 self.ListBoxAL__AntwPers = ListBoxSpWTitelAL( parent = self 332 , titel = u"Bitte um Antwort an:" 333 , minSize = ( -1, 150 ) 334 , orient = wx.VERTICAL 335 , Statusleiste = self.Statusleiste 336 , dbVerbindung = self.dbVerbindung ) 337 self.ListBoxAL__AntwPers.SplitterWindow.SetSashPosition( 300 ) 338 self.ListBoxAL__AntwPers.Enable( False ) 339 340 # Es muß mindestens eine Person ausgewählt sein ! 341 self.ListBoxAL__AntwPers.ListBoxLiDarfLeerSein = False 342 343 self.ListBoxAL__AntwPers.ListBox__li.statusLeisteDBSpNameErlaeuterung = u"Wem wurde(n) die Aufgabe(n) gestellt ?" 344 self.ListBoxAL__AntwPers.ListBox__re.statusLeisteDBSpNameErlaeuterung = self.ListBoxAL__AntwPers.ListBox__li.statusLeisteDBSpNameErlaeuterung 345 346 self.dbVerbindung.init_prjPersonen( self.ListBoxAL__AntwPers.ListBox__re ) 347 348 349 350 # 351 # -- Sicherheitsanforderungen ------------------------------------------ 352 # -- Objekt-Id = -255 / -256 ------------------------------------------ 353 # 354 self.SiAnf__SiAnf = SiAnf( 355 parent = self 356 , Statusleiste = self.Statusleiste 357 , dbVerbindung = self.dbVerbindung 358 , prjProjekteId = self.prjProjekteId 359 , sprSprachenId = self.sprSprachenId 360 , psGefszenarioId = self.psGefszenarioId 361 , dlgBearbeiteSicherheitsanf = BearbeiteSicherheitsanf( 362 parent = self 363 , Statusleiste = self.Statusleiste 364 , dbVerbindung = self.dbVerbindung 365 , prjProjekteId = self.prjProjekteId 366 , sprSprachenId = self.sprSprachenId 367 , psGefszenarioId = self.psGefszenarioId ) ) 368 369 self.SiAnf__SiAnf.dlgBearbeiteSicherheitsanf.selektiereKKProtokolleintraege() 370 371 372 373 # 374 # -------------------------------------------------------------------------------- 375 # -- Layout setzen ---------------------------------------------------------- 376 # -------------------------------------------------------------------------------- 377 # 378 GridBagSizer = wx.GridBagSizer( vgap = 10, hgap = 10 ) 379 380 GridBagSizer.AddGrowableCol( idx = 2, proportion = 1 ) 381 382 GridBagSizer.AddGrowableRow( idx = 0, proportion = 2 ) 383 GridBagSizer.AddGrowableRow( idx = 3, proportion = 1 ) 384 GridBagSizer.AddGrowableRow( idx = 5, proportion = 1 ) 385 GridBagSizer.AddGrowableRow( idx = 6, proportion = 1 ) 386 387 388 # 389 # -- 0.) ------------------------------------------------------------------ 390 # 391 GridBagSizer.Add( SplitterWindow 392 , pos = wx.GBPosition( row = 0, col = 0 ) 393 , span = wx.GBSpan( rowspan = 1, colspan = 3 ) 394 , flag = wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND 395 , border = 10 ) 396 397 398 # 399 # -- 1.) ------------------------------------------------------------------ 400 # 401 GridBagSizer.Add( self.TextCtrlAuswStatisch__TypPE 402 , pos = wx.GBPosition( row = 1, col = 0 ) 403 , span = wx.GBSpan( rowspan = 1, colspan = 2 ) 404 , flag = wx.LEFT|wx.EXPAND 405 , border = 10 ) 406 407 GridBagSizer.Add( self.ListBoxAL__BetPers 408 , pos = wx.GBPosition( row = 1, col = 2 ) 409 , span = wx.GBSpan( rowspan = 3, colspan = 1 ) 410 , flag = wx.RIGHT|wx.EXPAND 411 , border = 10 ) 412 413 414 # 415 # -- 2.) ------------------------------------------------------------------ 416 # 417 GridBagSizer.Add( self.CheckBox__Intern 418 , pos = wx.GBPosition( row = 2, col = 0 ) 419 , flag = wx.LEFT|wx.EXPAND 420 , border = 10 ) 421 422 GridBagSizer.Add( self.Ctrl__DatumPE 423 , pos = wx.GBPosition( row = 2, col = 1 ) 424 , flag = wx.EXPAND ) 425 426 427 # 428 # -- 3.) ------------------------------------------------------------------ 429 # 430 431 GridBagSizer.Add( self.CheckBox__Erledigt 432 , pos = wx.GBPosition( row = 3, col = 0 ) 433 , span = wx.GBSpan( rowspan = 1, colspan = 2 ) 434 , flag = wx.LEFT|wx.EXPAND 435 , border = 10 ) 436 437 438 # 439 # -- 4.) ------------------------------------------------------------------ 440 # 441 GridBagSizer.Add( self.Ctrl__Termin 442 , wx.GBPosition( row = 4, col = 0 ) 443 , flag = wx.LEFT|wx.EXPAND 444 , border = 10 ) 445 446 GridBagSizer.Add( self.Ctrl__AntwDatum 447 , wx.GBPosition( row = 4, col = 1 ) 448 , flag = wx.EXPAND ) 449 450 GridBagSizer.Add( self.ListBoxAL__AntwPers 451 , pos = wx.GBPosition( row = 4, col = 2 ) 452 , span = wx.GBSpan( rowspan = 2, colspan = 1 ) 453 , flag = wx.RIGHT|wx.EXPAND 454 , border = 10 ) 455 456 457 # 458 # -- 5.) ------------------------------------------------------------------ 459 # 460 # Notlösung ! 461 # Ich habe den Umgang mit >wx.AddStretchSpacer< nicht verstanden 462 # 463 GridBagSizer.Add( wx.StaticText( self ) 464 , pos = wx.GBPosition( row = 5, col = 0 ) 465 , span = wx.GBSpan( rowspan = 1, colspan = 2 ) 466 , flag = wx.EXPAND ) 467 468 469 # 470 # -- 6.) ------------------------------------------------------------------ 471 # 472 GridBagSizer.Add( self.SiAnf__SiAnf 473 , pos = wx.GBPosition( row = 7, col = 0 ) 474 , span = wx.GBSpan( rowspan = 1, colspan = 3 ) 475 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 476 , border = 10 ) 477 478 479 480 481 # 482 # -- in das Fenster einpassen ------------------------------------------ 483 # 484 self.SetSizerAndFit( GridBagSizer )
485 486 487 488 489 # 490 # ------------------------------------------------------------------------------------ 491 # -- Protokolleinträge bearbeiten ------------------------------------------ 492 # ------------------------------------------------------------------------------------ 493 #
494 - def __ereignisBearbeiteGefProt__( self, ereignis ):
495 """ 496 Anmerkungen zum Gefahrenszenario bearbeiten. 497 498 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 499 @type ereignis: C{wx - Ereignisobjekt} 500 """ 501 502 # 503 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 504 # 505 dlg = BearbeiteUebersetzung( parent = self 506 , Statusleiste = self.Statusleiste 507 , dbVerbindung = self.dbVerbindung 508 , sprSprachenId = self.sprSprachenId 509 , sprUebvarId = ereignis.GetEventObject().gibClientData()[1] 510 , notizen = ereignis.GetEventObject().gibClientData()[2] ) 511 512 513 # 514 # -- Dialog aufrufen ---------------------------------------------------------- 515 # 516 dlg.ShowModal() 517 dlg.Destroy() 518 519 520 # 521 # -- geänderte >spr.uebvar.id< bzw. >notizen< in -------------------------- 522 # -- >prj.pp_prtprotokoll< übernehmen -------------------------- 523 # 524 if( dlg.gibWerte()[0] 525 and ( dlg.gibWerte()[1] != ereignis.GetEventObject().gibClientData()[1] 526 or dlg.gibWerte()[2] != ereignis.GetEventObject().gibClientData()[2] ) ) : 527 528 self.dbVerbindung.schreibe__prjPPPrtProtokoll__UPDATE( 529 sprUebvarId = dlg.gibWerte()[1] 530 , whereId = [ self.prjProjekteId 531 , ereignis.GetEventObject().gibDbId() 532 , ereignis.GetEventObject().gibClientData()[1]] ) 533 534 535 536 # 537 # -- alle zugeordneten Strukturpunkte / Dokumente / -------------------------- 538 # -- Protokolleinträge löschen -------------------------- 539 # 540 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.loescheBaum() 541 542 543 544 # 545 # -- Protokolleinträge neu auslesen ------------------------------------------ 546 # 547 self.dbVerbindung.selektiere__psGefProt( 548 TreeCtrlErg = self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt 549 , prjProjekteId = self.prjProjekteId 550 , sprSprachenId = self.sprSprachenId 551 , psGefszenarioId = self.psGefszenarioId 552 , aspekt = 'PE' ) 553 554 555 556 # 557 # -- Baum anzeigen ---------------------------------------------------------- 558 # 559 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.erzeugeBaum() 560 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.markiereWert() 561 562 563 564 # 565 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 566 # -- ausgewertet werden kann -------------------------- 567 # 568 if( ereignis != None ) : ereignis.Skip( skip = True )
569 570 571 572 573 # 574 # ------------------------------------------------------------------------------------ 575 # -- Navigationsereignisse behandeln ---------------------------------- 576 # ------------------------------------------------------------------------------------ 577 #
578 - def __ereignisNavigation__( self, ereignis ):
579 """ 580 Methode die aufgerufen wird, wenn eine Gefahrenprotokoll-Id ausgewählt wurde. 581 582 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 583 @type ereignis: C{wx - Ereignisobjekt} 584 """ 585 586 # 587 # -- Änderungen in die Datenbank schreiben ---------------------------------- 588 # 589 self.schreibDB() 590 591 592 # 593 # -- Alle Gefahrenprotokolleinträge setzen ---------------------------------- 594 # 595 self.prtProtokollId = self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.gibDbId( eintrag = ereignis.GetItem() ) 596 self.listeWerte = self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.gibClientData() 597 598 self.dbVerbindung.selektiere__prtProtokoll( 599 wxCheckBoxIntern = self.CheckBox__Intern.wxObjekt 600 , wxCheckBoxErledigt = self.CheckBox__Erledigt.wxObjekt 601 , TCASTypPE = self.TextCtrlAuswStatisch__TypPE.wxObjekt 602 , wxmskCtrlDatumPE = self.Ctrl__DatumPE.wxObjekt 603 , LBSpWTALBetPers = self.ListBoxAL__BetPers 604 , wxmskCtrlAntwDatum = self.Ctrl__AntwDatum.wxObjekt 605 , wxmskCtrlTermin = self.Ctrl__Termin.wxObjekt 606 , LBSpWTALAntwPers = self.ListBoxAL__AntwPers 607 , prjProjekteId = self.prjProjekteId 608 , sprSprachenId = self.sprSprachenId 609 , prtProtokollId = self.prtProtokollId ) 610 611 612 # 613 # -- Zusatzfelder bei einer Frage ein-/ausblenden -------------------------- 614 # -- Anhand >prt.typ.id< wird die Frage erkannt -------------------------- 615 # 616 # 1 | 01: Frage 617 # 618 if( self.TextCtrlAuswStatisch__TypPE.wxObjekt.gibClientData()[0] == 1 ) : 619 620 # 621 # -- Felder einblenden ------------------------------------------ 622 # 623 self.Ctrl__AntwDatum.Enable( True ) 624 self.Ctrl__Termin.Enable( True ) 625 self.ListBoxAL__AntwPers.Enable( True ) 626 627 else : 628 629 # 630 # -- Felder ausblenden ------------------------------------------ 631 # 632 self.Ctrl__AntwDatum.Enable( False ) 633 self.Ctrl__Termin.Enable( False ) 634 self.ListBoxAL__AntwPers.Enable( False ) 635 636 637 638 639 # 640 # -- 'Erledigt' ist nur aktiv wenn ---------- 641 # -- -> 1 | 01: Frage ---------- 642 # -- -> 11 | 03: Sicherheitsüberprüfung erforderlich ---------- 643 # -- -> 16 | 04: Funktionsüberprüfung erforderlich ---------- 644 # -- ---------- 645 # -- Anhand >prt.typ.id< wird die Frage erkannt ---------- 646 # 647 if( self.TextCtrlAuswStatisch__TypPE.wxObjekt.gibClientData()[0] in [1, 11, 16] ) : 648 649 self.CheckBox__Erledigt.wxObjekt.Enable( True ) 650 651 else : 652 653 self.CheckBox__Erledigt.wxObjekt.Enable( False ) 654 655 656 657 # 658 # -- Es liegt keine Benutzeränderung vor ---------------------------------- 659 # 660 self.CheckBox__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 661 self.CheckBox__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 662 self.Ctrl__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 663 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 664 self.Ctrl__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 665 self.Ctrl__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 666 self.ListBoxAL__AntwPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
667 668 669 670 671 672 # 673 # ------------------------------------------------------------------------------------ 674 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 675 # ------------------------------------------------------------------------------------ 676 #
677 - def __ereignisNeu__( self, ereignis ):
678 """ 679 Neuen Protokolleintrag anlegen anzeigen. 680 681 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 682 @type ereignis: C{wx - Ereignisobjekt} 683 """ 684 685 # 686 # -- nur >Einfg< akzeptieren -------------------------------------------------- 687 # 688 if( ereignis.GetKeyCode() != wx.WXK_INSERT ) : 689 690 ereignis.Skip( skip = True ) 691 return 692 693 694 695 # 696 # -------------------------------------------------------------------------------- 697 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 698 # -------------------------------------------------------------------------------- 699 # 700 dlg = BearbeiteProtokolleintrag( parent = self 701 , Statusleiste = self.Statusleiste 702 , dbVerbindung = self.dbVerbindung 703 , sprSprachenId = self.sprSprachenId ) 704 705 706 # 707 # -- Dialog aufrufen ---------------------------------------------------------- 708 # 709 dlg.ShowModal() 710 dlg.Destroy() 711 712 713 # 714 # -- Keinen neuen Protokolleintrag anlegen ---------------------------------- 715 # 716 if( dlg.gib__PrtTypId() is None ) : 717 718 ereignis.Skip( skip = True ) 719 return 720 721 722 723 # 724 # -------------------------------------------------------------------------------- 725 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 726 # -------------------------------------------------------------------------------- 727 # 728 729 # 730 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 731 # 732 prtProtokollId_Neu = self.dbVerbindung.schreibe__PrtProtokoll( prtTypId = dlg.gib__PrtTypId() ) 733 734 735 # 736 # -- Standardzeichenkette in DB einlesen ---------------------------------- 737 # 738 spr_uebvar_id = self.dbVerbindung.schreibe__sprNimmWgruppe( sprUebvarId = 0 739 , wortgruppe = u"Neuer Protokolleintrag" 740 , sprSprachenId = self.sprSprachenId ) 741 742 743 # 744 # -- Protokolleintrag projektspezifisch übernehmen -------------------------- 745 # 746 listeWerte = [[ # -- prt.protokoll.id 747 prtProtokollId_Neu 748 # -- prt.protokoll.id 749 , prtProtokollId_Neu 750 # -- spr.uebvar.id 751 , spr_uebvar_id 752 # -- notizen 753 , zk.gibZk( "" ) ]] 754 755 self.dbVerbindung.schreibe__prjPPPrtProtokoll( listeWerte = listeWerte 756 , prjProjekteId = self.prjProjekteId ) 757 758 759 # 760 # -- Protokolleintrag dem Gefahrenszenario zuordnen -------------------------- 761 # 762 self.dbVerbindung.schreibe__prjPlPrtPsGefszenario( listeWerte = zk.gibListeTeilmenge( liste = listeWerte ) 763 , prjProjekteId = self.prjProjekteId 764 , psGefszenarioId = self.psGefszenarioId ) 765 766 767 # 768 # -- Protokolleintrag ist eine Frage / Aufgabe ------------------ 769 # -- 1 | 01: Frage ------------------ 770 # 771 if( dlg.gib__PrtTypId() == 1 ) : 772 773 self.dbVerbindung.schreibe__prjPPPrtProtokoll_Pers( 774 listeWerte = [ # -- teilnehmer 775 'false' 776 # -- termin 777 , 'to_char( clock_timestamp(), \'YYYY-MM-DD HH24:MI:SS\')' 778 # -- duanfrage 779 , 'to_char( clock_timestamp(), \'YYYY-MM-DD HH24:MI:SS\')' 780 # -- notizen 781 , zk.gibZk( "" ) ] 782 , prjProjekteId = self.prjProjekteId 783 , prtProtokollId = prtProtokollId_Neu 784 , prjPersonenId = 1 ) 785 786 787 # 788 # -- Verbindung zum vorhergehenden Protokolleintrag herstellen ---------- 789 # -- Der vorhergehende Protkolleintrag darf kein Hauptknoten sein ---------- 790 # 791 if( ereignis.GetEventObject().gibDbId() > 0 ) : 792 793 self.dbVerbindung.schreibe__prjPPrtVerbindung( prjProjekteId = self.prjProjekteId 794 , prtProtokollIdVorg = self.prtProtokollId 795 , prtProtokollIdNachf = prtProtokollId_Neu ) 796 797 798 # 799 # -- Werte zur Protokoll-Id auslesen ------------------------------------------ 800 # 801 self.liesDB( psGefszenarioId = self.psGefszenarioId ) 802 803 804 # 805 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 806 # -- ausgewertet werden kann -------------------------- 807 # 808 ereignis.Skip( skip = True )
809 810 811 812 813 # 814 # ------------------------------------------------------------------------------------ 815 # -- Protokolleinträge (PE) zuordnen ---------------------------------- 816 # ------------------------------------------------------------------------------------ 817 #
818 - def __ereignisPEZuordnen__( self, ereignis = None ):
819 """ 820 Die aktuelle(n) Sicherheitsanforderungen der gewählten Sicherheitsanforderung (dem Gefahrenszenario) zuordnen. 821 822 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 823 @type ereignis: C{wx - Ereignisobjekt} 824 """ 825 826 # 827 # -- Ereignistypen (ggf. später verbessern) ---------------------------------- 828 # 829 830 # -- Doppelklick 831 evtDClick = 10033 832 # -- Mittlere Maustaste 833 evtMMouse = 10035 834 835 836 # 837 # -- ---------- 838 # -- Generelle Regeln zum Zuordnen (Übernehmen) der PE ------------------ 839 # -- .................................................... ---------- 840 # -- ---------- 841 # -- Die bereits zugeordneten PE (Id wird betrachtet) werden ---------- 842 # -- nicht verändert (Doppelklick / mittl. Maustaste wird ignoriert) ---------- 843 # -- ---------- 844 # -- Den bereits zugeordneten Knoten werden nur die PE hinzugefügt, ---------- 845 # -- die noch nicht vorhanden sind. ---------- 846 # -- ---------- 847 # -- Werden Knoten übernommen, dann werden die untergeordneten ---------- 848 # -- PE ohne Nachfragen ebenfalls übernommen ---------- 849 # -- ---------- 850 # -- ---------- 851 # -- ---------- 852 # -- Doppelklick ausgeführt: ------------------------------------------ 853 # -- ....................... ---------- 854 # -- ---------- 855 # -- PE (ggf. einschl. untergeordneter PE) dem aktuell markierten ---------- 856 # -- PE zuordnen ---------- 857 # -- ---------- 858 # -- ---------- 859 # -- ---------- 860 # -- Mittlere Maustaste betätigt: ---------- 861 # -- ............................ ---------- 862 # -- ---------- 863 # -- PE (ggf. einschl. untergeordneter PE) dem Gefahrenszenario ---------- 864 # -- direkt zuordnen ---------- 865 # -- ---------- 866 # 867 868 # 869 # -- ---------- 870 # -- 1. Zuordnung zum Projekt / Gefahrenszenario -------------------------- 871 # -- ........................................... ---------- 872 # -- ---------- 873 # -- Protokolleintrag dem Gefahrenszenario zuordnen -------------------------- 874 # -- >prj.pl_prtpsgefszenario< ---------- 875 # -- ---------- 876 # -- Protokolleintrag dem Projekt zuordnen (Text/Notizen übernehmen) ---------- 877 # -- >prj.pp_prtprotokoll< ---------- 878 # -- ---------- 879 # -- Teilnehmer / Termin, Bitte um Antwort an... (Frage) zuordnen ---------- 880 # -- >prj.pp_prtprotokoll< ---------- 881 # -- ---------- 882 # 883 self.dbVerbindung.schreibe__prjPlPrtPsGefszenario( 884 listeWerte = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() ) 885 , prjProjekteId = self.prjProjekteId 886 , psGefszenarioId = self.psGefszenarioId ) 887 888 self.dbVerbindung.schreibe__prjPPPrtProtokoll( 889 listeWerte = ereignis.GetEventObject().gibZweigDaten() 890 , prjProjekteId = self.prjProjekteId ) 891 892 # 893 # -- 'Teilnehmer' / 'Termin', 'Bitte um Antwort an...' (bei Frage) ---------- 894 # -- zuordnen ---------- 895 # -- ---------- 896 # -- Liste der personenbezogenen Daten erzeugen, die den gewählten ---------- 897 # -- Protokolleinträgen zugeordnet sind ---------- 898 # 899 tmp = ereignis.GetEventObject().gibZweigDaten() 900 listePrtProtokollIdGewaehlt = [] 901 for i in range( len( tmp ) ) : 902 903 # -- prt.protokoll.id 904 listePrtProtokollIdGewaehlt.append( tmp[i][0] ) 905 906 listeWerte = self.dbVerbindung.gibListePrtProtokollWerte( 907 prjProjekteId = self.prjProjekteId 908 , sprSprachenId = self.sprSprachenId 909 , prtProtokollId = str( listePrtProtokollIdGewaehlt ).replace('[','').replace(']','') 910 , sqlProjekteIdIN = False ) 911 912 913 # 914 # -- Liste der Protokoll-Id erzeugen, die bereits im Projekt ------------------ 915 # -- vorhanden sind ------------------ 916 # 917 tmp = self.dbVerbindung.gibListePrtProtokollWerte( prjProjekteId = self.prjProjekteId 918 , sprSprachenId = self.sprSprachenId ) 919 920 listePrtProtokollId = [] 921 for i in range( len( tmp ) ) : 922 923 # -- prt.protokoll.id 924 if( tmp[i][12] in listePrtProtokollId ) : 925 continue 926 927 # -- prt.protokoll.id 928 listePrtProtokollId.append( tmp[i][12] ) 929 930 931 # 932 # -- Die personenbezogenen Daten den gewählten Protokolleinträgen zuordnen -- 933 # 934 for i in range( len( listeWerte ) ) : 935 936 # 937 # -- bereits im Projekt vorhandene personenbezogene Daten ---------- 938 # -- überspringen (wird an der Protokoll-Id erkannt) ---------- 939 # 940 if( listeWerte[i][12] in listePrtProtokollId ): 941 continue 942 943 self.dbVerbindung.schreibe__prjPPPrtProtokoll_Pers( 944 listeWerte = [ # -- teilnehmer 945 listeWerte[i][7] 946 # -- termin 947 , listeWerte[i][8] 948 # -- duanfrage 949 , listeWerte[i][3] 950 # -- notizen 951 , listeWerte[i][0] ] 952 # -- prj.projekte.id 953 , prjProjekteId = self.prjProjekteId 954 # -- prt.protokoll.id 955 , prtProtokollId = listeWerte[i][12] 956 # -- prj.personen.id 957 , prjPersonenId = listeWerte[i][6] ) 958 959 960 961 # 962 # -- ---------- 963 # -- 2. Verbindung zwischen den Protokolleinträgen -------------------------- 964 # -- ............................................. ---------- 965 # -- ---------- 966 # -- Verbindung herstellen -------------------------------------------------- 967 # -- >prj.p_prtverbindung< ---------- 968 # -- ---------- 969 # -- ---------- 970 # -- Bei Doppelklick Verbindung mit aktuell selektiertem PE herst. ---------- 971 # -- ( Hauptknoten ignorieren ) ---------- 972 # -- ---------- 973 # 974 if( ereignis.GetEventType() == evtDClick 975 and self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.gibDbId() > 0 ) : 976 977 self.dbVerbindung.schreibePrtProtokollVerbindung( 978 TreeCtrlErg = ereignis.GetEventObject() 979 , prjProjekteId = self.prjProjekteId 980 , prtProtokollIdVorg = self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.gibDbId() ) 981 982 983 # 984 # -- 'Verfügbare Protokolleinträge' neu auslesen ------------------ 985 # -- 'Protkolleintrag | Interne Notizen' neu auslesen ------------------ 986 # 987 self.SiAnfStrktDok__VerfProtokolleintrag.__ereignisLiesDBVerfProtokolleintraege__() 988 self.liesDB( psGefszenarioId = self.psGefszenarioId ) 989 990 991 # 992 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 993 # -- ausgewertet werden kann -------------------------- 994 # 995 if( ereignis != None ) : ereignis.Skip( skip = True )
996 997 998 999 # 1000 # ------------------------------------------------------------------------------------ 1001 # -- Datenbank auslesen -------------------------------------------------- 1002 # ------------------------------------------------------------------------------------ 1003 #
1004 - def liesDB( self, psGefszenarioId = None ):
1005 """ 1006 Methode die aufgerufen wird, wenn die Datenbankwerte im Fenster dargestellt werden sollen. 1007 1008 @param psGefszenarioId: Es ist die Identifikationsnummer des Gefahrenszenarios anzugeben. 1009 @type psGefszenarioId: Ganzzahl 1010 """ 1011 1012 1013 # 1014 # -- Gefahrenszenario auslesen (>prj.zeige__psgefszenario<) ------------------ 1015 # 1016 if psGefszenarioId != None: 1017 1018 # 1019 # -- alle zugeordneten Strukturpunkte / Dokumente / ------------------ 1020 # -- Protokolleinträge löschen ------------------ 1021 # 1022 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.loescheBaum() 1023 1024 1025 # 1026 # -- Gefahrenprotokolleinträge ---------------------------------- 1027 # 1028 self.dbVerbindung.selektiere__psGefProt( 1029 TreeCtrlErg = self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt 1030 , prjProjekteId = self.prjProjekteId 1031 , sprSprachenId = self.sprSprachenId 1032 , psGefszenarioId = psGefszenarioId 1033 , aspekt = 'PE' ) 1034 1035 1036 1037 # 1038 # -- Baum anzeigen -------------------------------------------------- 1039 # 1040 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.erzeugeBaum() 1041 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.markiereWert() 1042 1043 1044 # 1045 # -- Sicherheitsanforderungen ---------------------------------- 1046 # 1047 self.SiAnf__SiAnf.liesDB( psGefszenarioId = psGefszenarioId ) 1048 1049 1050 else: 1051 1052 # 1053 # -- Alles löschen -------------------------------------------------- 1054 # 1055 self.SiAnfStrktDok__Protokolleintrag.TreeCtrlErg__Id.wxObjekt.loescheBaum() 1056 self.CheckBox__Intern.wxObjekt.loescheAlles() 1057 self.CheckBox__Erledigt.wxObjekt.loescheAlles() 1058 self.TextCtrlAuswStatisch__TypPE.wxObjekt.selektiereWert( 0 ) 1059 self.Ctrl__DatumPE.wxObjekt.loescheAlles() 1060 self.ListBoxAL__BetPers.schiebeAlleRechts() 1061 self.Ctrl__AntwDatum.wxObjekt.loescheAlles() 1062 self.Ctrl__AntwDatum.wxObjekt.loescheAlles() 1063 self.Ctrl__Termin.wxObjekt.schiebeAlleRechts()
1064 1065 1066 1067 # 1068 # ------------------------------------------------------------------------------------ 1069 # -- Datenbank schreiben -------------------------------------------------- 1070 # ------------------------------------------------------------------------------------ 1071 #
1072 - def schreibDB( self ):
1073 """ 1074 Methode die aufgerufen wird, wenn die Eingabefelder ausgelesen und deren Werte in die Datenbank geschrieben werden sollen. 1075 """ 1076 1077 # 1078 # -- Es gibt keine Benutzeränderungen ---------------------------------- 1079 # -- ---------------------------------- 1080 # -- Der Typ des Protokolleintrages ist momentan nicht veränderbar ---------- 1081 # -- ---------------------------------- 1082 # 1083 if( not( self.CheckBox__Intern.wxObjekt.gibIstVomBenutzerGeaendert() 1084 or self.CheckBox__Erledigt.wxObjekt.gibIstVomBenutzerGeaendert() 1085 or self.Ctrl__DatumPE.wxObjekt.gibIstVomBenutzerGeaendert() 1086 or self.ListBoxAL__BetPers.ListBox__li.gibIstVomBenutzerGeaendert() 1087 or self.Ctrl__AntwDatum.wxObjekt.gibIstVomBenutzerGeaendert() 1088 or self.Ctrl__Termin.wxObjekt.gibIstVomBenutzerGeaendert() 1089 or self.ListBoxAL__AntwPers.ListBox__li.gibIstVomBenutzerGeaendert() ) ) : 1090 return 1091 1092 1093 # 1094 # -- Fallunterscheidung -------------------------------------------------- 1095 # -- ------------------ 1096 # -- 1. projektspezifischer Protokolleintrag ------------------ 1097 # -- 2. beteiligte Personen zuordnen ------------------ 1098 # -- 3. der Protokolleintrag ist eine Frage / Aufgabe ------------------ 1099 # 1100 fallunterscheidung = None 1101 1102 if( self.ListBoxAL__BetPers.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1103 1104 fallunterscheidung = True 1105 1106 if( self.Ctrl__AntwDatum.wxObjekt.gibIstVomBenutzerGeaendert() 1107 or self.Ctrl__Termin.wxObjekt.gibIstVomBenutzerGeaendert() 1108 or self.ListBoxAL__AntwPers.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1109 1110 fallunterscheidung = False 1111 1112 1113 # 1114 # -- prt.protokoll / prj.pp_protokoll ---------------------------------- 1115 # 1116 self.dbVerbindung.schreibePrtProtokoll( 1117 wxCheckBoxIntern = self.CheckBox__Intern.wxObjekt 1118 , wxCheckBoxErledigt = self.CheckBox__Erledigt.wxObjekt 1119 , wxmskCtrlDatumPE = self.Ctrl__DatumPE.wxObjekt 1120 , LBSpWTALBetPers = self.ListBoxAL__BetPers 1121 # -- prj.pp_prtprotokoll.id ------------------------------- 1122 # -- spr_uebvar_id --------------------------------------------- 1123 # -- notizen --------------------------------------------- 1124 , listeWerte = self.listeWerte 1125 , wxmskCtrlAntwDatum = self.Ctrl__AntwDatum.wxObjekt 1126 , wxmskCtrlTermin = self.Ctrl__Termin.wxObjekt 1127 , LBSpWTALAntwPers = self.ListBoxAL__AntwPers 1128 , fallunterscheidung = fallunterscheidung 1129 , prjProjekteId = self.prjProjekteId 1130 , sprSprachenId = self.sprSprachenId 1131 , prtProtokollId = self.prtProtokollId ) 1132 1133 1134 1135 1136 1137 # 1138 # -- hier ausgewertete Benutzeränderungen zurücksetzen ------------------ 1139 # 1140 self.CheckBox__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1141 self.CheckBox__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1142 self.Ctrl__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1143 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1144 self.Ctrl__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1145 self.Ctrl__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1146 self.ListBoxAL__AntwPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
1147