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