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, 2011  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://vf.michaelbellair.de/index.html 
  35  # 
  36  # 
  37  # ---------------------------------------------------------------------------------------- 
  38  # 
  39  import wx 
  40   
  41  from bearbeiteprotokolleintrag import BearbeiteProtokolleintrag # Eingabeformular für Übersetzungen 
  42  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
  43   
  44  from universal import zk                                        # Zeichenketten bearbeiten 
  45   
  46  from wxuniversal import CheckBoxErg             # wx.CheckBox mit Ergänzungen 
  47  from wxuniversal import farbeBearbeiten                 # Farbe der Objekte, die  bearbeitet werden können 
  48  from wxuniversal import FlexGridSizerWxObjTitel # wxObjekt mit Titel 
  49  from wxuniversal import ListBoxErgSpWTitelAL    # ListBox im SplitterWindow m. Titel+AW-Liste 
  50  from wxuniversal import MaskedTextCtrlErg       # wx.MaskedTextCtrl mit Ergänzungen 
  51  from wxuniversal import SiAnf                           # SiAnf einschl. zugeordneter Strkt, Dok, PE, ... 
  52  from wxuniversal import TextCtrlErgAuswStatisch         # wx.StaticText mit Auswahlliste 
  53  from wxuniversal import TextCtrlErg             # wx.TextCtrl mit Ergänzungen 
  54  from wxuniversal import TreeCtrlErg             # TreeCtrl mit Ergänzungen 
  55  from wxuniversal import VerfuegbareProtokolleintraege   # eigene Klasse für verf. Protokolleinträge 
  56   
  57  from wxuniversal import HK_PE 
  58   
  59   
  60  # 
  61  # 
  62  # 
  63  # ---------------------------------------------------------------------------------------- 
  64  # ---------------------------------------------------------------------------------------- 
  65  # --                                    -------------------------------------------------- 
  66  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
  67  # --                                    -------------------------------------------------- 
  68  # ---------------------------------------------------------------------------------------- 
  69  # ---------------------------------------------------------------------------------------- 
  70  # 
  71  #  
  72  #       -- siehe TODO 'gefahrenprotokoll.py' -- 
  73  # 
  74  # 
  75  # ---------------------------------------------------------------------------------------- 
  76  # 
  77   
  78   
  79   
  80   
  81  # 
  82  # ---------------------------------------------------------------------------------------- 
  83  # ---------------------------------------------------------------------------------------- 
  84  # --                                    -------------------------------------------------- 
  85  # --    Layout 'Protokolleinträge'     -------------------------------------------------- 
  86  # --                                    -------------------------------------------------- 
  87  # ---------------------------------------------------------------------------------------- 
  88  # ---------------------------------------------------------------------------------------- 
  89  # 
90 -class LayoutProtokolleintraege( wx.Panel ):
91 """ 92 Klasse zur Abbildung des Teil-Eingabeformulars der Protokolleinträge 93 """ 94 95 # 96 # ------------------------------------------------------------------------------------ 97 # -- Eingabeformular initialisieren ---------------------------------- 98 # ------------------------------------------------------------------------------------ 99 #
100 - def __init__( self, parent, Notizen, dbVerbindung ):
101 wx.Panel.__init__( self, parent = parent ) 102 103 # 104 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 105 # 106 self.SetName( name = "LayoutProtokolleintraege" ) 107 108 109 110 # 111 # -------------------------------------------------------------------------------- 112 # -- Randbedingungen übernehmen ------------------------------------------ 113 # -------------------------------------------------------------------------------- 114 # 115 self.__Notizen__ = Notizen 116 self.__dbVerbindung__ = dbVerbindung 117 118 119 120 # 121 # -------------------------------------------------------------------------------- 122 # -- Eingabeobjekte anlegen -------------------------------------------------- 123 # -------------------------------------------------------------------------------- 124 # 125 self.TreeCtrlErg__Protokolleintrag = FlexGridSizerWxObjTitel( parent = self 126 , wxObj = TreeCtrlErg( self 127 , Notizen = self.__Notizen__ ) 128 , titel = "Dem Gefahrenszenario zugeordnete Protokolleinträge" 129 , orient = wx.VERTICAL ) 130 131 self.TreeCtrlErg__Protokolleintrag.wxObjekt.SetMinSize( ( -1, 300 ) ) 132 133 self.TreeCtrlErg__Protokolleintrag.wxObjekt.nimmWerteStatusleiste( 134 DBSpNameErlaeuterung = "Relevante Aufzeichnungen zum aktuellen Gefahrenszenario/Sicherheitsanforderung." 135 , DBSpName = "prt.protokoll/prj.pp_prtprotokoll/prj.p_prtverbindung/prj.pl_prtpsgefszenario" ) 136 137 self.TreeCtrlErg__Protokolleintrag.wxObjekt.nimmTooltip( "Doppelklick:\nVerbindung zum aktuellen Gefahrenszenario bzw. dem aktuell gewählten Protokolleintrag aufheben.\n\nEinfg:\nNeuen Protokolleintrag dem aktuellen Gefahrenszenario bzw. dem aktuell gewählten Protokolleintrag zuordnen.\n\nF3:\nÜbersetzung des Protokolleintrages bearbeiten" ) 138 139 self.TreeCtrlErg__Protokolleintrag.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeBearbeiten ) ) 140 141 142 143 144 145 # 146 # -------------------------------------------------------------------------------- 147 # -- Layout setzen ---------------------------------------------------------- 148 # -------------------------------------------------------------------------------- 149 # 150 FlexGridSizer = wx.FlexGridSizer( rows = 1, cols = 1, vgap = 0, hgap = 0 ) 151 152 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 ) 153 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 154 155 FlexGridSizer.Add( self.TreeCtrlErg__Protokolleintrag 156 , flag = wx.EXPAND ) 157 158 self.SetSizerAndFit( FlexGridSizer )
159 160 161 162 163 # 164 # 165 # 166 # ---------------------------------------------------------------------------------------- 167 # ---------------------------------------------------------------------------------------- 168 # -- ------------------------------------------ 169 # -- Eingabeformular 'Gefahrenprotokoll' ------------------------------------------ 170 # -- ------------------------------------------ 171 # ---------------------------------------------------------------------------------------- 172 # ---------------------------------------------------------------------------------------- 173 #
174 -class Gefahrenprotokoll( wx.Panel ):
175 """ 176 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). 177 178 @keyword parent: Es ist der Datenbankbenutzername zu übergeben. 179 @type parent: Zeichenkette 180 @keyword id: Es ist das Kennwort des Datenbankbenutzers zu übergeben. 181 @type id: Zeichenkette 182 @keyword size: Es ist die IP-Adresse anzugeben, über die der PostgreSQL-Datenbankserver ansprechbar ist. 183 @type size: Zeichenkette 184 185 @raise Fehler: ?? Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. ?? 186 """ 187 188 # 189 # ------------------------------------------------------------------------------------ 190 # -- Eingabeformular initialisieren ---------------------------------- 191 # ------------------------------------------------------------------------------------ 192 #
193 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung, id = -1, size = wx.DefaultSize ):
194 wx.Panel.__init__( self, parent = parent ) 195 196 197 198 # 199 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 200 # 201 self.SetName( name = "Gefahrenprotokoll" ) 202 203 204 # 205 # -- Randbedingungen übernehmen ------------------------------------------ 206 # 207 self.__Notizen__ = Notizen 208 self.__Fortschritt__ = Fortschritt 209 self.__dbVerbindung__ = dbVerbindung 210 self.__prtProtokollId__ = 0 211 212 213 # 214 # -- Protokolleinträge / Verfügbare Protokolleinträge ------------------ 215 # 216 SplitterWindow = wx.SplitterWindow( parent = self, style = wx.SP_LIVE_UPDATE ) 217 218 219 220 # 221 # -- Protokolleinträge ... -------------------------------------------------- 222 # 223 self.LayoutProtokolleintraege = LayoutProtokolleintraege( parent = SplitterWindow 224 , Notizen = self.__Notizen__ 225 , dbVerbindung = self.__dbVerbindung__ ) 226 227 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.Bind( wx.EVT_TREE_SEL_CHANGED 228 , self.__ereignisNavigation__ ) 229 230 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.Bind( wx.EVT_TREE_KEY_DOWN 231 , self.__ereignisNeu__ ) 232 233 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.Bind( wx.EVT_TREE_KEY_DOWN 234 , self.__ereignisBearbeiteGefProt__ ) 235 236 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.Bind( wx.EVT_TREE_ITEM_ACTIVATED 237 , self.__ereignisTrennen__ ) 238 239 240 # 241 # -- ... Verfügbare Protokolleinträge ---------------------------------- 242 # 243 self.VerfuegbareProtokolleintraege = VerfuegbareProtokolleintraege( parent = SplitterWindow 244 , Notizen = self.__Notizen__ 245 , dbVerbindung = self.__dbVerbindung__ ) 246 247 self.VerfuegbareProtokolleintraege.TreeCtrlErg__VerfProtokolleintraege.wxText.SetLabel( label = "Verfügbare Protokolleinträge" ) 248 249 self.VerfuegbareProtokolleintraege.TreeCtrlErg__VerfProtokolleintraege.wxObjekt.nimmTooltip( "Doppelklick:\nProtokolleintrag dem aktuellen Gefahrenszenario bzw. dem aktuell gewählten Protokolleintrag zuordnen.\n\nEntf:\nProtokolleintrag aus der Datenbank entfernen." ) 250 251 self.VerfuegbareProtokolleintraege.TreeCtrlErg__VerfProtokolleintraege.wxObjekt.Bind( wx.EVT_TREE_ITEM_ACTIVATED 252 , self.__ereignisPEZuordnen__ ) 253 254 self.VerfuegbareProtokolleintraege.TreeCtrlErg__VerfProtokolleintraege.wxObjekt.Bind( wx.EVT_TREE_KEY_DOWN 255 , self.__ereignisPELoeschen__ ) 256 257 258 259 SplitterWindow.SplitVertically( window1 = self.LayoutProtokolleintraege 260 , window2 = self.VerfuegbareProtokolleintraege ) 261 262 263 264 # 265 # -- Typ des Protokolleintrages ------------------------------------------ 266 # 267 self.TextCtrlErgAuswStatisch__TypPE = FlexGridSizerWxObjTitel( parent = self 268 , wxObj = TextCtrlErgAuswStatisch( parent = self 269 , Notizen = self.__Notizen__ ) 270 , titel = u"Typ des Protokolleintrages" 271 , orient = wx.VERTICAL ) 272 273 self.TextCtrlErgAuswStatisch__TypPE.wxObjekt.nimmWerteStatusleiste( 274 DBSpNameErlaeuterung = u"Der Typ des Gefahrenprotokolleintrages" 275 , DBSpName = "prt.typ / prt.protokoll / prj.pp_prtprotokoll /prj.pl_prtpsgefszenario" ) 276 277 278 279 # 280 # -- Intern -------------------------------------------------- 281 # 282 self.CheckBoxErg__Intern = FlexGridSizerWxObjTitel( parent = self 283 , wxObj = CheckBoxErg( self 284 , Notizen = self.__Notizen__ ) 285 , titel = u"Intern" 286 , orient = wx.VERTICAL ) 287 288 self.CheckBoxErg__Intern.wxObjekt.nimmWerteStatusleiste( 289 DBSpNameErlaeuterung = u"Der Gefahrenprotokolleintrag wird nur intern verwendet." 290 , DBSpName = "prj.pp_prtprotokoll" ) 291 292 293 294 # 295 # -- Datum des Protokolleintrages ------------------------------------------ 296 # 297 self.MTCtrlErg__DatumPE = FlexGridSizerWxObjTitel( parent = self 298 , wxObj = MaskedTextCtrlErg( parent = self 299 , validRequired = True 300 , autoformat = "EUDATEDDMMYYYY." 301 , Notizen = self.__Notizen__ ) 302 , titel = u"Datum" 303 , orient = wx.VERTICAL ) 304 305 self.MTCtrlErg__DatumPE.wxObjekt.nimmWerteStatusleiste( 306 DBSpNameErlaeuterung = u"Datum des mittels Protokolleintrag aufgezeichneten Ereignisses." 307 , DBSpName = "prj.pp_prtprotokoll" ) 308 309 310 311 # 312 # -- Beteiligte Personen -------------------------------------------------- 313 # 314 self.ListBoxAL__BetPers = ListBoxErgSpWTitelAL( parent = self 315 , titel = u"Beteiligte Personen" 316 , minSize = ( -1, 150 ) 317 , orient = wx.VERTICAL 318 , Notizen = self.__Notizen__ ) 319 320 self.ListBoxAL__BetPers.ListBox__li.nimmWerteStatusleiste( 321 DBSpNameErlaeuterung = u"Am aufgezeichneten Ereignis beteiligte Personen." 322 , DBSpName = "prj.personen / prj.pp_prtprotokoll" ) 323 324 self.ListBoxAL__BetPers.ListBox__re.nimmWerteStatusleiste( 325 DBSpNameErlaeuterung = u"In der Datenbank verfügbare Personen." 326 , DBSpName = "prj.personen" ) 327 328 self.ListBoxAL__BetPers.SplitterWindow.SetSashPosition( 250 ) 329 330 331 # 332 # -- Termin -------------------------------------------------- 333 # 334 self.MTCtrlErg__Termin = FlexGridSizerWxObjTitel( parent = self 335 , wxObj = MaskedTextCtrlErg( parent = self 336 , validRequired = True 337 , autoformat = "EUDATEDDMMYYYY." 338 , Notizen = self.__Notizen__ ) 339 , titel = u"Termin" 340 , orient = wx.VERTICAL ) 341 self.MTCtrlErg__Termin.Enable( False ) 342 343 self.MTCtrlErg__Termin.wxObjekt.nimmWerteStatusleiste( 344 DBSpNameErlaeuterung = u"Termin, zu dem die im Protokolleintrag formulierten Aufgaben zu lösen sind." 345 , DBSpName = "prj.pp_prtprotokoll" ) 346 347 348 349 350 # 351 # -- Bitte um Antwort versendet am ... ---------------------------------- 352 # 353 self.MTCtrlErg__AntwDatum = FlexGridSizerWxObjTitel( parent = self 354 , wxObj = MaskedTextCtrlErg( parent = self 355 , validRequired = True 356 , autoformat = "EUDATEDDMMYYYY." 357 , Notizen = self.__Notizen__ ) 358 , titel = u"Versendet am" 359 , orient = wx.VERTICAL ) 360 self.MTCtrlErg__AntwDatum.Enable( False ) 361 362 self.MTCtrlErg__AntwDatum.wxObjekt.nimmWerteStatusleiste( 363 DBSpNameErlaeuterung = u"Zeitpunkt, zu dem die Aufgaben gestellt/versendet wurden." 364 , DBSpName = "prj.pp_prtprotokoll" ) 365 366 367 368 369 # 370 # -- Erledigt -------------------------------------------------- 371 # 372 self.CheckBoxErg__Erledigt = FlexGridSizerWxObjTitel( parent = self 373 , wxObj = CheckBoxErg( self 374 , Notizen = self.__Notizen__ ) 375 , titel = u"Erledigt" 376 , orient = wx.VERTICAL ) 377 378 self.CheckBoxErg__Erledigt.wxObjekt.nimmWerteStatusleiste( 379 DBSpNameErlaeuterung = u"Die im Protokolleintrag formulierten Aufgaben wurden gelöst." 380 , DBSpName = "prj.pp_prtprotokoll" ) 381 382 383 384 # 385 # -- Ansprechpartner -------------------------------------------------- 386 # 387 self.ListBoxAL__Ansprechpartner = ListBoxErgSpWTitelAL( parent = self 388 , titel = u"Ansprechpartner" 389 , minSize = ( -1, 150 ) 390 , orient = wx.VERTICAL 391 , Notizen = self.__Notizen__ ) 392 self.ListBoxAL__Ansprechpartner.SplitterWindow.SetSashPosition( 250 ) 393 self.ListBoxAL__Ansprechpartner.Enable( False ) 394 395 # Es muß mindestens eine Person ausgewählt sein ! 396 self.ListBoxAL__Ansprechpartner.ListBoxLiDarfLeerSein = False 397 398 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmWerteStatusleiste( 399 DBSpNameErlaeuterung = u"Personen, die für die Lösung der Aufgaben verantwortlich sind." 400 , DBSpName = "prj.personen / prj.pp_prtprotokoll" ) 401 402 self.ListBoxAL__Ansprechpartner.ListBox__re.nimmWerteStatusleiste( 403 DBSpNameErlaeuterung = u"In der Datenbank verfügbare Personen." 404 , DBSpName = "prj.personen" ) 405 406 407 408 # 409 # -------------------------------------------------------------------------------- 410 # -- Layout setzen ---------------------------------------------------------- 411 # -------------------------------------------------------------------------------- 412 # 413 414 # 415 # -- Datum ------------------------------------------------------------------ 416 # 417 FlexGridSizer_Datum = wx.FlexGridSizer( rows = 1, cols = 5, vgap = 0, hgap = 10 ) 418 419 FlexGridSizer_Datum.AddGrowableCol( idx = 1, proportion = 1 ) 420 FlexGridSizer_Datum.AddGrowableCol( idx = 2, proportion = 1 ) 421 FlexGridSizer_Datum.AddGrowableCol( idx = 3, proportion = 1 ) 422 423 424 FlexGridSizer_Datum.Add( self.CheckBoxErg__Intern 425 , flag = wx.EXPAND ) 426 427 FlexGridSizer_Datum.Add( self.MTCtrlErg__DatumPE 428 , flag = wx.EXPAND ) 429 430 FlexGridSizer_Datum.Add( self.MTCtrlErg__Termin 431 , flag = wx.EXPAND ) 432 433 FlexGridSizer_Datum.Add( self.MTCtrlErg__AntwDatum 434 , flag = wx.EXPAND ) 435 436 FlexGridSizer_Datum.Add( self.CheckBoxErg__Erledigt 437 , flag = wx.EXPAND ) 438 439 440 441 # 442 # -- Personen -------------------------------------------------- 443 # 444 FlexGridSizer_Personen = wx.FlexGridSizer( rows = 1, cols = 2, vgap = 0, hgap = 10 ) 445 446 FlexGridSizer_Personen.AddGrowableRow( idx = 0, proportion = 0 ) 447 448 FlexGridSizer_Personen.AddGrowableCol( idx = 0, proportion = 1 ) 449 FlexGridSizer_Personen.AddGrowableCol( idx = 1, proportion = 1 ) 450 451 452 FlexGridSizer_Personen.Add( self.ListBoxAL__BetPers 453 , flag = wx.EXPAND ) 454 455 FlexGridSizer_Personen.Add( self.ListBoxAL__Ansprechpartner 456 , flag = wx.EXPAND ) 457 458 459 460 # 461 # -- Hauptlayout ---------------------------------------------------------- 462 # 463 FlexGridSizer = wx.FlexGridSizer( rows = 4, cols = 1, vgap = 10, hgap = 0 ) 464 465 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 ) 466 FlexGridSizer.AddGrowableRow( idx = 3, proportion = 1 ) 467 468 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 469 470 FlexGridSizer.Add( SplitterWindow 471 , flag = wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT 472 , border = 10 ) 473 474 FlexGridSizer.Add( self.TextCtrlErgAuswStatisch__TypPE 475 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT 476 , border = 10 ) 477 478 FlexGridSizer.Add( FlexGridSizer_Datum 479 , flag = wx.EXPAND|wx.LEFT|wx.RIGHT 480 , border = 10 ) 481 482 FlexGridSizer.Add( FlexGridSizer_Personen 483 , flag = wx.EXPAND|wx.LEFT|wx.BOTTOM|wx.RIGHT 484 , border = 10 ) 485 486 487 # 488 # -- in das Fenster einpassen ------------------------------------------ 489 # 490 self.SetSizerAndFit( FlexGridSizer ) 491 492 493 # 494 # -- erstes (automatisches Auslösen) von >__ereignisNavigation__()< ---------- 495 # -- abfangen ---------- 496 # 497 self.istErstesEreignisNavigation = True
498 499 500 501 # 502 # ------------------------------------------------------------------------------------ 503 # -- Protokolleinträge bearbeiten ------------------------------------------ 504 # ------------------------------------------------------------------------------------ 505 #
506 - def __ereignisBearbeiteGefProt__( self, ereignis ):
507 """ 508 Anmerkungen zum Gefahrenszenario bearbeiten. 509 510 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 511 @type ereignis: C{wx - Ereignisobjekt} 512 """ 513 514 # 515 # -- Element 'Protokolleinträge' (root) nicht auswerten ------------------ 516 # -- nur >Entf< akzeptieren ------------------ 517 # 518 if( ereignis.GetEventObject().istHauptknoten() 519 or ereignis.GetKeyCode() != wx.WXK_F3 ) : 520 521 if( ereignis != None ) : ereignis.Skip( skip = True ) 522 return 523 524 525 526 # 527 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 528 # 529 dlg = BearbeiteUebersetzung( parent = self 530 , Notizen = self.__Notizen__ 531 , Fortschritt = self.__Fortschritt__ 532 , dbVerbindung = self.__dbVerbindung__ 533 , sprUebvarId = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][3] 534 , notizen_db = None 535 , notizenKontext_db = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][1] ) 536 537 538 # 539 # -- Dialog aufrufen ---------------------------------------------------------- 540 # 541 dlg.ShowModal() 542 dlg.Destroy() 543 544 545 546 # 547 # -- Fortschrittsdialog -------------------------------------------------- 548 # -- Delta = 100 / ( 1 ) -------------------------------------------------- 549 # 550 self.__Fortschritt__.nimmDelta( delta = 100 / 1 ) 551 552 553 554 555 # 556 # -- geänderte >spr.uebvar.id< bzw. >notizen< in -------------------------- 557 # -- >prj.pp_prtprotokoll< übernehmen -------------------------- 558 # 559 if( dlg.gibWerte()[0] 560 and ( dlg.gibWerte()[1] != self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][3] 561 or dlg.gibWerte()[2] != self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][1] ) ) : 562 563 # 564 # -- Werte bereitstellen ------------------------------------------ 565 # 566 duanfrage = None 567 termin = None 568 if( len( self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][7] ) > 0 ) : 569 570 duanfrage = "'" + self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][7] + "'" 571 572 if( len( self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][6] ) > 0 ) : 573 574 termin = "'" + self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][6] + "'" 575 576 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 577 , listeWerte = [[ # 578 # -- 0) id 579 # 580 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][4] 581 # 582 # -- 1) notizen 583 # 584 , dlg.gibWerte()[2] 585 # 586 # -- 2) datuhrz 587 # 588 , "'" + self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][5] + "'" 589 # 590 # -- 3) duanfrage 591 # 592 , duanfrage 593 # 594 # -- 4) erledigt 595 # 596 , self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][9] 597 # 598 # -- 5) intern 599 # 600 , self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][8] 601 # 602 # -- 6) prj_personen_id 603 # 604 , 0 605 # 606 # -- 7) prt_protokoll_id 607 # 608 , self.__prtProtokollId__ 609 # 610 # -- 8) spr_uebvar_id 611 # 612 , dlg.gibWerte()[1] 613 # 614 # -- 9) teilnehmer 615 # 616 , None 617 # 618 # -- 10) termin 619 # 620 , termin ]] ) 621 622 623 624 # 625 # -- permanente Datenstrukturen aktualisieren -------------------------- 626 # 627 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt.clear() 628 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 629 630 631 632 # 633 # -- Fortschrittsdialog schließen ------------------------------------------ 634 # 635 self.__Fortschritt__.loescheFortschritt() 636 637 638 639 # 640 # -- alle zugeordneten Strukturpunkte / Dokumente / -------------------------- 641 # -- Protokolleinträge löschen -------------------------- 642 # 643 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.loescheAlles() 644 645 646 647 # 648 # -- Protokolleinträge neu auslesen ------------------------------------------ 649 # 650 self.__dbVerbindung__.selektiere__prtProtokoll__Sprache__Projekt( 651 TreeCtrlErg = self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt 652 , istGefProt = True 653 , prtTypId = None 654 , prtProtokollId = self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 655 656 657 658 # 659 # -- Baum anzeigen ---------------------------------------------------------- 660 # 661 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.erzeugeBaum() 662 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.markiereWert() 663 664 665 666 # 667 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 668 # -- ausgewertet werden kann -------------------------- 669 # 670 if( ereignis != None ) : ereignis.Skip( skip = True )
671 672 673 674 675 676 # 677 # ------------------------------------------------------------------------------------ 678 # -- Navigationsereignisse behandeln ---------------------------------- 679 # ------------------------------------------------------------------------------------ 680 #
681 - def __ereignisNavigation__( self, ereignis ):
682 """ 683 Methode die aufgerufen wird, wenn eine Gefahrenprotokoll-Id ausgewählt wurde. 684 685 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 686 @type ereignis: C{wx - Ereignisobjekt} 687 """ 688 689 # 690 # -- Änderungen in die Datenbank schreiben ---------------------------------- 691 # -- ( erstes (automatisches Auslösen) von ---------------------------------- 692 # -- >__ereignisNavigation__()< abfangen ---------------------------------- 693 # 694 if( self.istErstesEreignisNavigation ) : 695 696 self.istErstesEreignisNavigation = False 697 698 else : 699 700 self.schreibDB() 701 702 703 704 # 705 # -- Alle Gefahrenprotokolleinträge setzen ---------------------------------- 706 # 707 self.__prtProtokollId__ = self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.gibDbId() 708 709 710 711 # 712 # -- Notizen löschen -------------------------------------------------- 713 # 714 self.__Notizen__.TextCtrlErg__li.nimmWert( "" ) 715 716 717 718 # 719 # -- Eingabefelder zurücksetzen / deaktivieren -------------------------- 720 # 721 self.TextCtrlErgAuswStatisch__TypPE.wxObjekt.selektiereWert( dbId = 0 ) 722 self.CheckBoxErg__Intern.wxObjekt.nimmWert( wert = False ) 723 self.MTCtrlErg__DatumPE.wxObjekt.loescheAlles() 724 self.MTCtrlErg__Termin.wxObjekt.loescheAlles() 725 self.MTCtrlErg__AntwDatum.wxObjekt.loescheAlles() 726 self.CheckBoxErg__Erledigt.wxObjekt.nimmWert( wert = False ) 727 self.ListBoxAL__BetPers.schiebeAlleRechts() 728 self.ListBoxAL__Ansprechpartner.schiebeAlleRechts() 729 730 self.CheckBoxErg__Intern.wxObjekt.Enable( False ) 731 self.MTCtrlErg__DatumPE.wxObjekt.Enable( False ) 732 self.MTCtrlErg__Termin.wxObjekt.Enable( False ) 733 self.MTCtrlErg__AntwDatum.wxObjekt.Enable( False ) 734 self.CheckBoxErg__Erledigt.wxObjekt.Enable( False ) 735 self.ListBoxAL__BetPers.Enable( False ) 736 self.ListBoxAL__Ansprechpartner.Enable( False ) 737 738 739 740 # 741 # -- Protokoll-Id nicht vorhanden ------------------------------------------ 742 # 743 if( self.__prtProtokollId__ not in self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt ) : 744 745 return 746 747 748 749 # 750 # -- linken Bereich der Statusleiste setzen ---------------------------------- 751 # 752 if( not ereignis.GetEventObject().istHauptknoten() ) : 753 754 self.__Notizen__.TextCtrlErg__li.nimmWert( self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][1] ) 755 756 757 758 759 # 760 # -- 'Typ des Protokolleintrages' ------------------------------------------ 761 # 762 prtTypId = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][10] 763 self.TextCtrlErgAuswStatisch__TypPE.wxObjekt.selektiereWert( dbId = prtTypId ) 764 765 766 767 # 768 # -- Personen mit Aufgaben und Teilnehmer setzen -------------------------- 769 # 770 self.__dbVerbindung__.selektiere__ProtId_PersId__Projekt( ListBoxErgSpWTitelAL = self.ListBoxAL__Ansprechpartner 771 , prtProtokollId = self.__prtProtokollId__ 772 , istAufgabe = True ) 773 774 self.__dbVerbindung__.selektiere__ProtId_PersId__Projekt( ListBoxErgSpWTitelAL = self.ListBoxAL__BetPers 775 , prtProtokollId = self.__prtProtokollId__ 776 , istAufgabe = False ) 777 778 self.CheckBoxErg__Intern.wxObjekt.Enable( True ) 779 self.MTCtrlErg__DatumPE.wxObjekt.Enable( True ) 780 self.ListBoxAL__BetPers.Enable( True ) 781 782 783 # 784 # -- Datum-Texteingabefelder setzen ------------------------------------------ 785 # 786 self.MTCtrlErg__DatumPE.wxObjekt.nimmWert( 787 wert = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][5] ) 788 self.MTCtrlErg__Termin.wxObjekt.nimmWert( 789 wert = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][6] ) 790 self.MTCtrlErg__AntwDatum.wxObjekt.nimmWert( 791 wert = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][7] ) 792 793 794 # 795 # -- Check-Box setzen -------------------------------------------------- 796 # 797 self.CheckBoxErg__Intern.wxObjekt.nimmWert( 798 wert = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][8] ) 799 self.CheckBoxErg__Erledigt.wxObjekt.nimmWert( 800 wert = self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][9] ) 801 802 803 804 # 805 # -- Zusatzfelder bei einer Frage ein-/ausblenden -------------------------- 806 # -- Anhand >prt.typ.id< wird die Frage erkannt -------------------------- 807 # 808 # 1 | 01: Frage 809 # 810 if( prtTypId == 1 ) : 811 812 # 813 # -- Felder einblenden ------------------------------------------ 814 # 815 self.MTCtrlErg__AntwDatum.Enable( True ) 816 self.MTCtrlErg__Termin.Enable( True ) 817 self.ListBoxAL__Ansprechpartner.Enable( True ) 818 819 else : 820 821 # 822 # -- Felder ausblenden ------------------------------------------ 823 # 824 self.MTCtrlErg__AntwDatum.Enable( False ) 825 self.MTCtrlErg__Termin.Enable( False ) 826 self.ListBoxAL__Ansprechpartner.Enable( False ) 827 828 829 # 830 # -- 'Erledigt' ist nur aktiv wenn ---------- 831 # -- -> 1 | 01: Frage ---------- 832 # -- -> 11 | 03: Sicherheitsüberprüfung erforderlich ---------- 833 # -- -> 16 | 04: Funktionsüberprüfung erforderlich ---------- 834 # -- ---------- 835 # -- Anhand >prt.typ.id< wird die Frage erkannt ---------- 836 # 837 if( prtTypId in [1, 11, 16] ) : 838 839 self.CheckBoxErg__Erledigt.wxObjekt.Enable( True ) 840 841 else : 842 843 self.CheckBoxErg__Erledigt.wxObjekt.Enable( False ) 844 845 846 847 # 848 # -- Es liegt keine Benutzeränderung vor ---------------------------------- 849 # 850 self.CheckBoxErg__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 851 self.CheckBoxErg__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 852 self.MTCtrlErg__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 853 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 854 self.MTCtrlErg__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 855 self.MTCtrlErg__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 856 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
857 858 859 860 861 862 # 863 # ------------------------------------------------------------------------------------ 864 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 865 # ------------------------------------------------------------------------------------ 866 #
867 - def __ereignisNeu__( self, ereignis ):
868 """ 869 Neuen Protokolleintrag anlegen anzeigen. 870 871 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 872 @type ereignis: C{wx - Ereignisobjekt} 873 """ 874 875 876 # 877 # -- nur >Einfg< akzeptieren -------------------------------------------------- 878 # 879 if( ereignis.GetKeyCode() != wx.WXK_INSERT ) : 880 881 ereignis.Skip( skip = True ) 882 return 883 884 885 886 # 887 # -------------------------------------------------------------------------------- 888 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 889 # -------------------------------------------------------------------------------- 890 # 891 dlg = BearbeiteProtokolleintrag( parent = self 892 , Notizen = self.__Notizen__ 893 , dbVerbindung = self.__dbVerbindung__ ) 894 895 896 # 897 # -- Dialog aufrufen ---------------------------------------------------------- 898 # 899 dlg.ShowModal() 900 dlg.Destroy() 901 902 903 # 904 # -- Keinen neuen Protokolleintrag anlegen ---------------------------------- 905 # 906 if( dlg.gib__PrtTypId() is None ) : 907 908 ereignis.Skip( skip = True ) 909 return 910 911 912 913 # 914 # -------------------------------------------------------------------------------- 915 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 916 # -------------------------------------------------------------------------------- 917 # 918 919 920 # 921 # -- Fortschrittsdialog -------------------------------------------------- 922 # -- Delta = 100 / ( 4 ) -------------------------------------------------- 923 # 924 self.__Fortschritt__.nimmDelta( delta = 100 / 4 ) 925 926 927 928 # 929 # -- Neuen Protokolleintrag anlegen ------------------------------------------ 930 # 931 prtProtokollId_Neu = self.__dbVerbindung__.schreibe__PrtProtokoll( Fortschritt = self.__Fortschritt__ 932 , prtTypId = dlg.gib__PrtTypId() ) 933 934 935 # 936 # -- Standardzeichenkette in DB einlesen ---------------------------------- 937 # 938 spr_uebvar_id = self.__dbVerbindung__.schreibe__sprNimmWgruppe( 939 Fortschritt = self.__Fortschritt__ 940 , sprUebvarId = 0 941 , wortgruppe = "Neuer Protokolleintrag" 942 , sprSprachenId = self.__dbVerbindung__.filter__spr_sprachen_id ) 943 944 945 946 # 947 # -- Protokolleintrag dem Gefahrenszenario zuordnen -------------------------- 948 # 949 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario( Fortschritt = self.__Fortschritt__ 950 , listePrtProtokollId = [ prtProtokollId_Neu ] 951 , psGefszenarioId = self.__dbVerbindung__.ps_gefszenario_id ) 952 953 # 954 # -- permanente Datenstruktur aktualisieren ---------------------------------- 955 # 956 self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt.clear() 957 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__ ) 958 959 960 961 # 962 # -- Personen zuordnen ------------------------------------------ 963 # -- 1. Teilnehmer ------------------------------------------ 964 # -- 2. ggf. Ansprechpartner ------------------------------------------ 965 # 966 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 967 , listeWerte = [[ # 968 # -- 0) id 969 # 970 None 971 # 972 # -- 1) notizen 973 # 974 , None 975 # 976 # -- 2) datuhrz 977 # 978 , None 979 # 980 # -- 3) duanfrage 981 # 982 , None 983 # 984 # -- 4) erledigt 985 # 986 , None 987 # 988 # -- 5) intern 989 # 990 , None 991 # 992 # -- 6) prj_personen_id 993 # 994 , 1 995 # 996 # -- 7) prt_protokoll_id 997 # 998 , prtProtokollId_Neu 999 # 1000 # -- 8) spr_uebvar_id 1001 # 1002 , None 1003 # 1004 # -- 9) teilnehmer 1005 # 1006 , True 1007 # 1008 # -- 10) termin 1009 # 1010 , None ]] 1011 , istPerson = True ) 1012 1013 duanfrage_termin = None 1014 1015 if( dlg.gib__PrtTypId() == 1 ) : 1016 1017 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1018 , listeWerte = [[ # 1019 # -- 0) id 1020 # 1021 None 1022 # 1023 # -- 1) notizen 1024 # 1025 , None 1026 # 1027 # -- 2) datuhrz 1028 # 1029 , None 1030 # 1031 # -- 3) duanfrage 1032 # 1033 , None 1034 # 1035 # -- 4) erledigt 1036 # 1037 , None 1038 # 1039 # -- 5) intern 1040 # 1041 , None 1042 # 1043 # -- 6) prj_personen_id 1044 # 1045 , 1 1046 # 1047 # -- 7) prt_protokoll_id 1048 # 1049 , prtProtokollId_Neu 1050 # 1051 # -- 8) spr_uebvar_id 1052 # 1053 , None 1054 # 1055 # -- 9) teilnehmer 1056 # 1057 , False 1058 # 1059 # -- 10) termin 1060 # 1061 , None ]] 1062 , istPerson = True ) 1063 1064 duanfrage_termin = 'to_char( clock_timestamp(), \'YYYY-MM-DD HH24:MI:SS\')' 1065 1066 # 1067 # -- Aktualisierung der permanenten Datenstruktur erzwingen ---------- 1068 # 1069 self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt.clear() 1070 1071 1072 # 1073 # -- Protokolleintrag projektspezifisch übernehmen -------------------------- 1074 # 1075 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1076 , listeWerte = [[ # 1077 # -- 0) id 1078 # 1079 None 1080 # 1081 # -- 1) notizen 1082 # 1083 , zk.gibZk( "" ) 1084 # 1085 # -- 2) datuhrz 1086 # 1087 , 'to_char( clock_timestamp(), \'YYYY-MM-DD HH24:MI:SS\')' 1088 # 1089 # -- 3) duanfrage 1090 # 1091 , duanfrage_termin 1092 # 1093 # -- 4) erledigt 1094 # 1095 , None 1096 # 1097 # -- 5) intern 1098 # 1099 , None 1100 # 1101 # -- 6) prj_personen_id 1102 # 1103 , 0 1104 # 1105 # -- 7) prt_protokoll_id 1106 # 1107 , prtProtokollId_Neu 1108 # 1109 # -- 8) spr_uebvar_id 1110 # 1111 , spr_uebvar_id 1112 # 1113 # -- 9) teilnehmer 1114 # 1115 , None 1116 # 1117 # -- 10) termin 1118 # 1119 , duanfrage_termin ]] ) 1120 1121 1122 1123 # 1124 # -- permanente Datenstrukturen aktualisieren -------------------------- 1125 # 1126 self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt.clear() 1127 self.__dbVerbindung__.init__ProtId_PersId__Projekt( Fortschritt = self.__Fortschritt__ ) 1128 1129 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt.clear() 1130 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1131 1132 1133 1134 # 1135 # -- Verbindung zum vorhergehenden Protokolleintrag herstellen ---------- 1136 # -- Der vorhergehende Protkolleintrag darf kein Hauptknoten sein ---------- 1137 # 1138 if( ereignis.GetEventObject().gibDbId() > 0 ) : 1139 1140 self.__dbVerbindung__.schreibe__prjPPrtVerbindung( 1141 Fortschritt = self.__Fortschritt__ 1142 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id 1143 , prtProtokollIdVorg = self.__prtProtokollId__ 1144 , prtProtokollIdNachf = prtProtokollId_Neu ) 1145 1146 # 1147 # -- permanente Datenstrukturen aktualisieren -------------------------- 1148 # 1149 self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt.clear() 1150 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1151 1152 1153 1154 # 1155 # -- Fortschrittsdialog schließen ------------------------------------------ 1156 # 1157 self.__Fortschritt__.loescheFortschritt() 1158 1159 1160 1161 # 1162 # -- Werte zur Protokoll-Id auslesen ------------------------------------------ 1163 # 1164 self.liesDB() 1165 1166 1167 # 1168 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 1169 # -- ausgewertet werden kann -------------------------- 1170 # 1171 ereignis.Skip( skip = True )
1172 1173 1174 1175 1176 # 1177 # ------------------------------------------------------------------------------------ 1178 # -- Protokolleinträge (PE) löschen ------------------------------------------ 1179 # ------------------------------------------------------------------------------------ 1180 #
1181 - def __ereignisPELoeschen__( self, ereignis = None ):
1182 """ 1183 Den aktuellen Protokolleintrag aus der Datenbank entfernen. 1184 1185 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 1186 @type ereignis: C{wx - Ereignisobjekt} 1187 """ 1188 1189 # 1190 # -- Element 'Protokolleinträge' (root) nicht auswerten ------------------ 1191 # -- nur >Entf< akzeptieren ------------------ 1192 # 1193 if( ereignis.GetEventObject().istHauptknoten() 1194 or ereignis.GetKeyCode() != wx.WXK_DELETE ) : 1195 1196 if( ereignis != None ) : ereignis.Skip( skip = True ) 1197 return 1198 1199 1200 1201 # 1202 # -- Nachfolger vorhanden, nicht löschen ---------------------------------- 1203 # 1204 if( len( ereignis.GetEventObject().gibZweigDaten() ) > 1 ) : 1205 1206 dlg = wx.MessageDialog( self 1207 , "Dem zu löschenden Gefahrenprotokolleintrag dürfen keine weiteren Gefahrenprotokolleinträge zugeordnet sein.\n\nDer Gefahrenprotokolleintrag wird nicht entfernt." 1208 , "Gefahrenprotokolleintrag wird nicht entfernt !" 1209 , wx.OK | wx.ICON_INFORMATION ) 1210 dlg.CenterOnScreen() 1211 dlg.ShowModal() 1212 dlg.Destroy() 1213 1214 if( ereignis != None ) : ereignis.Skip( skip = True ) 1215 return 1216 1217 1218 1219 # 1220 # -- Gefahrenszenario zugeordnet, nicht löschen -------------------------- 1221 # 1222 prtProtokollId = ereignis.GetEventObject().gibDbId() 1223 for i in self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt.iteritems() : 1224 1225 # 1226 # -- Bereits vorhandene Verbindung ---------------------------------- 1227 # 1228 if( [prtProtokollId] in i[1] ) : 1229 1230 dlg = wx.MessageDialog( self 1231 , "Der zu löschende Gefahrenprotokolleintrag darf keinem Gefahrenszenario zugeordnet.\n\nDer Gefahrenprotokolleintrag wird nicht entfernt." 1232 , "Gefahrenprotokolleintrag wird nicht entfernt !" 1233 , wx.OK | wx.ICON_INFORMATION ) 1234 dlg.CenterOnScreen() 1235 dlg.ShowModal() 1236 dlg.Destroy() 1237 1238 if( ereignis != None ) : ereignis.Skip( skip = True ) 1239 return 1240 1241 # 1242 # -- Fortschrittsdialog -------------------------------------------------- 1243 # -- Delta = 100 / ( 2 ) -------------------------------------------------- 1244 # 1245 self.__Fortschritt__.nimmDelta( delta = 100 / 2 ) 1246 1247 1248 # 1249 # -- ggf. Verbindung zum Vorgänger aufheben ---------------------------------- 1250 # 1251 if( prtProtokollId in self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt ) : 1252 1253 for i in self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt[prtProtokollId] : 1254 1255 self.__dbVerbindung__.schreibe__prjPPrtVerbindung( 1256 Fortschritt = self.__Fortschritt__ 1257 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id 1258 , prtProtokollIdVorg = i[0] 1259 , prtProtokollIdNachf = prtProtokollId ) 1260 1261 # 1262 # -- permanente Datenstrukturen aktualisieren -------------------------- 1263 # 1264 self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt.clear() 1265 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1266 1267 1268 1269 # 1270 # -- Protokolleintrag aus dem Projekt entfernen -------------------------- 1271 # 1272 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1273 , listeWerte = [[ # 1274 # -- 0) id 1275 # 1276 None 1277 # 1278 # -- 1) notizen 1279 # 1280 , None 1281 # 1282 # -- 2) datuhrz 1283 # 1284 , None 1285 # 1286 # -- 3) duanfrage 1287 # 1288 , None 1289 # 1290 # -- 4) erledigt 1291 # 1292 , None 1293 # 1294 # -- 5) intern 1295 # 1296 , None 1297 # 1298 # -- 6) prj_personen_id 1299 # 1300 , None 1301 # 1302 # -- 7) prt_protokoll_id 1303 # 1304 , prtProtokollId 1305 # 1306 # -- 8) spr_uebvar_id 1307 # 1308 , None 1309 # 1310 # -- 9) teilnehmer 1311 # 1312 , None 1313 # 1314 # -- 10) termin 1315 # 1316 , None ]] 1317 , istPerson = False 1318 , entfernen = True ) 1319 1320 1321 1322 # 1323 # -- Protokolleintrag aus der Datenbank entfernen -------------------------- 1324 # 1325 self.__dbVerbindung__.schreibe__PrtProtokoll( Fortschritt = self.__Fortschritt__ 1326 , prtTypId = None 1327 , notizen = None 1328 , prtProtokollId = prtProtokollId 1329 , entfernen = True ) 1330 1331 1332 1333 # 1334 # -- permanente Datenstrukturen aktualisieren -------------------------- 1335 # 1336 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt.clear() 1337 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1338 1339 1340 1341 # 1342 # -- Fortschrittsdialog schließen ------------------------------------------ 1343 # 1344 self.__Fortschritt__.loescheFortschritt() 1345 1346 1347 1348 # 1349 # -- 'Im Projekt Verfügbare Protokolleinträge' neu auslesen ---------- 1350 # -- 'Dem Gefahrenszenario zugeordnete Protkolleinträge neu auslesen ---------- 1351 # 1352 self.liesDB() 1353 1354 1355 1356 # 1357 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 1358 # -- ausgewertet werden kann -------------------------- 1359 # 1360 if( ereignis != None ) : ereignis.Skip( skip = True )
1361 1362 1363 1364 1365 1366 1367 1368 # 1369 # ------------------------------------------------------------------------------------ 1370 # -- Protokolleinträge (PE) zuordnen ---------------------------------- 1371 # ------------------------------------------------------------------------------------ 1372 #
1373 - def __ereignisPEZuordnen__( self, ereignis = None ):
1374 """ 1375 Die aktuelle(n) Protokolleinträge dem aktuellen Gefahrenszenario (ggf. dem gewählten Protokolleintrag) zuordnen. 1376 1377 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 1378 @type ereignis: C{wx - Ereignisobjekt} 1379 """ 1380 1381 # 1382 # -- Element 'Protokolleinträge' (root) nicht auswerten ------------------ 1383 # 1384 if( ereignis.GetEventObject().istHauptknoten() ) : 1385 1386 if( ereignis != None ) : ereignis.Skip( skip = True ) 1387 return 1388 1389 1390 1391 # 1392 # -- Fortschrittsdialog -------------------------------------------------- 1393 # -- Delta = 100 / ( 2 ) -------------------------------------------------- 1394 # 1395 self.__Fortschritt__.nimmDelta( delta = 100 / 2 ) 1396 1397 1398 1399 1400 # 1401 # -- -- 1402 # -- nichtgeprüfte Vorraussetzung / Bedingung: -- 1403 # -- Die übergebenen Gefahrenprotokoll-Id sind im Projekt vorhanden ! -- 1404 # -- -- 1405 # 1406 1407 # 1408 # -- ------------------ 1409 # -- Protokolleintrag dem Gefahrenszenario zuordnen ------------------ 1410 # -- >prj.pl_prtpsgefszenario< ------------------ 1411 # -- ------------------ 1412 # -- ------------------ 1413 # -- Bereits zugeordnete Protokolleinträge werden in ------------------ 1414 # -- >schreibe__prjPlPrtPsGefszenario()< übersprungen ------------------ 1415 # 1416 listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() ) 1417 1418 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario( Fortschritt = self.__Fortschritt__ 1419 , listePrtProtokollId = listePrtProtokollId 1420 , psGefszenarioId = self.__dbVerbindung__.ps_gefszenario_id ) 1421 1422 # 1423 # -- permanente Datenstruktur aktualisieren ---------------------------------- 1424 # 1425 self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt.clear() 1426 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__ ) 1427 1428 1429 1430 # 1431 # -- ---------- 1432 # -- Verbindung zum selektierten Protokolleintrag herstellen ---------- 1433 # -- >prj.p_prtverbindung< ---------- 1434 # -- ---------- 1435 # -- ---------- 1436 # -- Bereits zugeordnete Protokolleinträge werden in ---------- 1437 # -- >schreibe__prjPPrtVerbindung()< übersprungen ---------- 1438 # -- ---------- 1439 # 1440 if( not self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.istHauptknoten() ) : 1441 1442 fmeldung = self.__dbVerbindung__.schreibe__prjPPrtVerbindung( 1443 Fortschritt = self.__Fortschritt__ 1444 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id 1445 , prtProtokollIdVorg = self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.gibDbId() 1446 , prtProtokollIdNachf = ereignis.GetEventObject().gibDbId() ) 1447 1448 1449 if( fmeldung is not None ) : 1450 1451 dlg = wx.MessageDialog( self 1452 , fmeldung.replace( 'Protokoll', 'Gefahrenprotokoll' ) + "\n\nDie Gefahrenprotokolleinträge werden nicht miteinander verbunden." 1453 , "Gefahrenprotokolleintrag wird nicht zugeordnet !" 1454 , wx.OK | wx.ICON_INFORMATION ) 1455 dlg.CenterOnScreen() 1456 dlg.ShowModal() 1457 dlg.Destroy() 1458 1459 return 1460 1461 1462 # 1463 # -- permanente Datenstruktur aktualisieren -------------------------- 1464 # 1465 self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt.clear() 1466 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1467 1468 1469 # 1470 # -- Fortschrittsdialog schließen ------------------------------------------ 1471 # 1472 self.__Fortschritt__.loescheFortschritt() 1473 1474 1475 1476 # 1477 # -- 'Im Projekt Verfügbare Protokolleinträge' neu auslesen ---------- 1478 # -- 'Dem Gefahrenszenario zugeordnete Protkolleinträge neu auslesen ---------- 1479 # 1480 self.liesDB() 1481 1482 1483 # 1484 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 1485 # -- ausgewertet werden kann -------------------------- 1486 # 1487 if( ereignis != None ) : ereignis.Skip( skip = True )
1488 1489 1490 1491 1492 1493 # 1494 # ------------------------------------------------------------------------------------ 1495 # -- Protokolleintrag vom Gefahrenszenario loesen -------------------------- 1496 # ------------------------------------------------------------------------------------ 1497 #
1498 - def __ereignisTrennen__( self, ereignis ):
1499 """ 1500 Protokolleintrag vom Gefahrenszenario bzw. davorliegenden Protokolleintrag lösen. 1501 1502 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 1503 @type ereignis: C{wx - Ereignisobjekt} 1504 """ 1505 1506 # 1507 # -- Element 'Protokolleinträge' (root) nicht auswerten ------------------ 1508 # -- nur >Entf< akzeptieren ------------------ 1509 # 1510 if( ereignis.GetEventObject().istHauptknoten() ) : 1511 1512 if( ereignis != None ) : ereignis.Skip( skip = True ) 1513 return 1514 1515 1516 1517 # 1518 # -- Gefahrenszenario zugeordnet, nicht löschen -------------------------- 1519 # 1520 nichtLoeschen = False 1521 for i in zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() ) : 1522 1523 # 1524 # -- Verbindungen zwischen SiAnf und GefProt durchlaufen ---------- 1525 # 1526 for j in self.__dbVerbindung__.daten__prtProtokoll_siAnf_gefProt__Sprache__Projekt.values() : 1527 1528 if( i in zk.gibListeTeilmenge( liste = j ) ) : 1529 1530 nichtLoeschen = True 1531 break 1532 1533 if( nichtLoeschen ) : 1534 1535 dlg = wx.MessageDialog( self 1536 , "Keiner der vom Gefahrenszenario zu lösenden Gefahrenprotokolleinträge darf einer Sicherheitsanforderung zugeordnet sein.\n\nDie Gefahrenprotokolleinträge werden nicht vom Gefahrenszenario getrennt." 1537 , "Verbindung nicht aufheben !" 1538 , wx.OK | wx.ICON_INFORMATION ) 1539 dlg.CenterOnScreen() 1540 dlg.ShowModal() 1541 dlg.Destroy() 1542 1543 if( ereignis != None ) : ereignis.Skip( skip = True ) 1544 return 1545 1546 1547 # 1548 # -- Fortschrittsdialog -------------------------------------------------- 1549 # -- Delta = 100 / ( 2 ) -------------------------------------------------- 1550 # 1551 self.__Fortschritt__.nimmDelta( delta = 100 / 2 ) 1552 1553 1554 1555 # 1556 # -- -- 1557 # -- Verbindung zwischen Protokolleintrag und Gefahrenszenario aufheben -- 1558 # -- >prj.pl_prtpsgefszenario< -- 1559 # -- -- 1560 # 1561 listePrtProtokollId = zk.gibListeTeilmenge( liste = ereignis.GetEventObject().gibZweigDaten() ) 1562 self.__dbVerbindung__.schreibe__prjPlPrtPsGefszenario( Fortschritt = self.__Fortschritt__ 1563 , listePrtProtokollId = listePrtProtokollId 1564 , psGefszenarioId = self.__dbVerbindung__.ps_gefszenario_id 1565 , logentfernt = 'true' ) 1566 1567 # 1568 # -- permanente Datenstruktur aktualisieren ---------------------------------- 1569 # 1570 self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt.clear() 1571 self.__dbVerbindung__.init__GefszenId_ProtId__Projekt( Fortschritt = self.__Fortschritt__ ) 1572 1573 1574 1575 # 1576 # -- Verbindung zum davorliegenden Protokolleintrag aufheben ------------------ 1577 # -- (wenn PE vorhanden) ------------------ 1578 # 1579 vorg = ereignis.GetEventObject().GetItemParent( item = ereignis.GetEventObject().GetSelection() ) 1580 if( ereignis.GetEventObject().GetItemText( item = vorg ) != HK_PE ) : 1581 1582 self.__dbVerbindung__.schreibe__prjPPrtVerbindung( 1583 Fortschritt = self.__Fortschritt__ 1584 , prjProjekteId = self.__dbVerbindung__.filter__prj_projekte_id 1585 , prtProtokollIdVorg = ereignis.GetEventObject().gibDbId( eintrag = vorg ) 1586 , prtProtokollIdNachf = listePrtProtokollId[0] 1587 , trennen = True ) 1588 1589 1590 # 1591 # -- permanente Datenstruktur aktualisieren -------------------------- 1592 # 1593 self.__dbVerbindung__.daten__prtProtokoll_gefProt_vorg__Sprache__Projekt.clear() 1594 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 1595 1596 1597 1598 # 1599 # -- Fortschrittsdialog schließen ------------------------------------------ 1600 # 1601 self.__Fortschritt__.loescheFortschritt() 1602 1603 1604 1605 # 1606 # -- 'Im Projekt Verfügbare Protokolleinträge' neu auslesen ---------- 1607 # -- 'Dem Gefahrenszenario zugeordnete Protkolleinträge neu auslesen ---------- 1608 # 1609 self.liesDB() 1610 1611 1612 1613 # 1614 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 1615 # -- ausgewertet werden kann -------------------------- 1616 # 1617 if( ereignis != None ) : ereignis.Skip( skip = True )
1618 1619 1620 1621 1622 # 1623 # ------------------------------------------------------------------------------------ 1624 # -- Verfügbare Protokolleinträge initialisieren -------------------------- 1625 # ------------------------------------------------------------------------------------ 1626 #
1627 - def init_Gefahrenprotokoll( self ):
1628 """ 1629 Initialisierung. 1630 """ 1631 1632 # 1633 # -- aktuelle Protokolleinträge zum Gefahrenszenario auslesen ---------- 1634 # 1635 self.__dbVerbindung__.selektiere__prtTyp__Sprache( 1636 TreeCtrlErg_ComboBoxErg = self.TextCtrlErgAuswStatisch__TypPE.wxObjekt 1637 , prtTypAspekt = "PE" ) 1638 1639 self.__dbVerbindung__.selektiere__prjPersonen( self.ListBoxAL__BetPers.ListBox__re ) 1640 1641 self.__dbVerbindung__.selektiere__prjPersonen( self.ListBoxAL__Ansprechpartner.ListBox__re ) 1642 1643 self.liesDB() 1644 self.VerfuegbareProtokolleintraege.init_VerfProtokolleintraege()
1645 1646 1647 1648 1649 # 1650 # ------------------------------------------------------------------------------------ 1651 # -- Datenbank auslesen -------------------------------------------------- 1652 # ------------------------------------------------------------------------------------ 1653 #
1654 - def liesDB( self ):
1655 """ 1656 Methode die aufgerufen wird, wenn die Datenbankwerte im Fenster dargestellt werden sollen. 1657 """ 1658 1659 1660 # 1661 # -------------------------------------------------------------------------------- 1662 # -- Alles löschen ---------------------------------------------------------- 1663 # -------------------------------------------------------------------------------- 1664 # 1665 self.VerfuegbareProtokolleintraege.TreeCtrlErg__VerfProtokolleintraege.wxObjekt.loescheAlles() 1666 self.TextCtrlErgAuswStatisch__TypPE.wxObjekt.selektiereWert( dbId = 0 ) 1667 self.CheckBoxErg__Intern.wxObjekt.loescheAlles() 1668 self.MTCtrlErg__DatumPE.wxObjekt.loescheAlles() 1669 self.CheckBoxErg__Erledigt.wxObjekt.loescheAlles() 1670 self.ListBoxAL__BetPers.schiebeAlleRechts() 1671 self.MTCtrlErg__Termin.wxObjekt.loescheAlles() 1672 self.MTCtrlErg__AntwDatum.wxObjekt.loescheAlles() 1673 self.ListBoxAL__Ansprechpartner.schiebeAlleRechts() 1674 1675 1676 1677 # 1678 # -------------------------------------------------------------------------------- 1679 # -- Gefahrenszenario-Id ist nicht vorhanden -------------------------- 1680 # -- -> Aktualisierung nicht möglich -------------------------- 1681 # -- unnötiges Schreiben verhindern ------------------------------------------ 1682 # -------------------------------------------------------------------------------- 1683 # 1684 if( self.__dbVerbindung__.ps_gefszenario_id is None ) : 1685 1686 self.CheckBoxErg__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1687 self.CheckBoxErg__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1688 self.MTCtrlErg__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1689 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1690 self.MTCtrlErg__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1691 self.MTCtrlErg__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1692 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1693 1694 return 1695 1696 1697 1698 # 1699 # -------------------------------------------------------------------------------- 1700 # -- Verfügbare Protokolleinträge darstellen -------------------------- 1701 # -------------------------------------------------------------------------------- 1702 # 1703 self.VerfuegbareProtokolleintraege.__ereignisLiesDBVerfProtokolleintraege__() 1704 1705 1706 1707 # 1708 # -------------------------------------------------------------------------------- 1709 # -- Protokolleinträge zum Gefahrenszenario darstellen ------------------ 1710 # -------------------------------------------------------------------------------- 1711 # 1712 1713 # 1714 # -- alle zugeordneten Strukturpunkte / Dokumente / ------------------ 1715 # -- Protokolleinträge löschen ------------------ 1716 # 1717 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.loescheAlles() 1718 1719 1720 # 1721 # -- kein Protokolleintrag dem Gefahrenszenario zugeordnet ------------------ 1722 # -- unnötiges Schreiben verhindern ------------------------------------------ 1723 # 1724 if( self.__dbVerbindung__.ps_gefszenario_id not in self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt ) : 1725 1726 self.CheckBoxErg__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1727 self.CheckBoxErg__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1728 self.MTCtrlErg__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1729 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1730 self.MTCtrlErg__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1731 self.MTCtrlErg__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1732 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1733 1734 return 1735 1736 1737 # 1738 # -- Gefahrenprotokolleinträge ---------------------------------- 1739 # 1740 self.__dbVerbindung__.selektiere__prtProtokoll__Sprache__Projekt( 1741 TreeCtrlErg = self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt 1742 , istGefProt = True 1743 , prtTypId = None 1744 , prtProtokollId = self.__dbVerbindung__.daten__GefszenId_ProtId_gefProt__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 1745 1746 1747 1748 # 1749 # -- Baum anzeigen -------------------------------------------------- 1750 # 1751 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.erzeugeBaum() 1752 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.markiereWert() 1753 self.LayoutProtokolleintraege.TreeCtrlErg__Protokolleintrag.wxObjekt.ExpandAll() 1754 1755 1756 1757 # 1758 # -- unnötiges Schreiben verhindern ------------------------------------------ 1759 # 1760 self.CheckBoxErg__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1761 self.CheckBoxErg__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1762 self.MTCtrlErg__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1763 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1764 self.MTCtrlErg__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1765 self.MTCtrlErg__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1766 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
1767 1768 1769 1770 1771 1772 # 1773 # ------------------------------------------------------------------------------------ 1774 # ------------------------------------------------------------------------------------ 1775 # -- Datenbank schreiben -------------------------------------------------- 1776 # ------------------------------------------------------------------------------------ 1777 # ------------------------------------------------------------------------------------ 1778 #
1779 - def schreibDB( self ):
1780 """ 1781 Methode die aufgerufen wird, wenn die Eingabefelder ausgelesen und deren Werte in die Datenbank geschrieben werden sollen. 1782 """ 1783 1784 # 1785 # -------------------------------------------------------------------------------- 1786 # -- Es gibt keine Benutzeränderungen ---------------------------------- 1787 # -- ---------------------------------- 1788 # -- Der Typ des Protokolleintrages ist momentan nicht veränderbar ---------- 1789 # -------------------------------------------------------------------------------- 1790 # 1791 if( not( self.CheckBoxErg__Intern.wxObjekt.gibIstVomBenutzerGeaendert() 1792 or self.CheckBoxErg__Erledigt.wxObjekt.gibIstVomBenutzerGeaendert() 1793 or self.MTCtrlErg__DatumPE.wxObjekt.gibIstVomBenutzerGeaendert() 1794 or self.ListBoxAL__BetPers.ListBox__li.gibIstVomBenutzerGeaendert() 1795 or self.MTCtrlErg__AntwDatum.wxObjekt.gibIstVomBenutzerGeaendert() 1796 or self.MTCtrlErg__Termin.wxObjekt.gibIstVomBenutzerGeaendert() 1797 or self.ListBoxAL__Ansprechpartner.ListBox__li.gibIstVomBenutzerGeaendert() ) ) : 1798 return 1799 1800 1801 1802 # 1803 # -------------------------------------------------------------------------------- 1804 # -- unplausible >prt_protokoll_id< ---------- 1805 # -- unplausibler Aufruf zum Schreiben (Datum des PE muß immer ---------- 1806 # -- einen Wert haben ---------- 1807 # -------------------------------------------------------------------------------- 1808 # 1809 if( not self.__prtProtokollId__ > 0 1810 or len( self.MTCtrlErg__DatumPE.wxObjekt.gibWert().replace( ' ', '' ).replace( '.', '' ) ) == 0 ) : 1811 1812 return 1813 1814 1815 1816 # 1817 # -- Fortschrittsdialog -------------------------------------------------- 1818 # -- Delta = 100 / ( 3 ) -------------------------------------------------- 1819 # 1820 self.__Fortschritt__.nimmDelta( delta = 100 / 3 ) 1821 1822 1823 1824 # 1825 # -------------------------------------------------------------------------------- 1826 # -- 1. Details zum projektspezifischen Protokolleintrag ------------------ 1827 # -------------------------------------------------------------------------------- 1828 # 1829 if( self.CheckBoxErg__Intern.wxObjekt.gibIstVomBenutzerGeaendert() 1830 or self.CheckBoxErg__Erledigt.wxObjekt.gibIstVomBenutzerGeaendert() 1831 or self.MTCtrlErg__DatumPE.wxObjekt.gibIstVomBenutzerGeaendert() 1832 or self.MTCtrlErg__AntwDatum.wxObjekt.gibIstVomBenutzerGeaendert() 1833 or self.MTCtrlErg__Termin.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1834 1835 1836 duanfrage = None 1837 termin = None 1838 if( len( self.MTCtrlErg__AntwDatum.wxObjekt.gibWert().replace( ' ', '' ).replace( '.', '' ) ) > 0 ) : 1839 1840 duanfrage = "'" + zk.gibDatum( self.MTCtrlErg__AntwDatum.wxObjekt.gibWert() ) + "'" 1841 1842 if( len( self.MTCtrlErg__Termin.wxObjekt.gibWert().replace( ' ', '' ).replace( '.', '' ) ) > 0 ) : 1843 1844 termin = "'" + zk.gibDatum( self.MTCtrlErg__Termin.wxObjekt.gibWert() ) + "'" 1845 1846 1847 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1848 , listeWerte = [[ # 1849 # -- 0) id 1850 # 1851 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][4] 1852 # 1853 # -- 1) notizen 1854 # 1855 , self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][1] 1856 # 1857 # -- 2) datuhrz 1858 # 1859 , "'" + zk.gibDatum( self.MTCtrlErg__DatumPE.wxObjekt.gibWert() ) + "'" 1860 # 1861 # -- 3) duanfrage 1862 # 1863 , duanfrage 1864 # 1865 # -- 4) erledigt 1866 # 1867 , self.CheckBoxErg__Erledigt.wxObjekt.gibWert() 1868 # 1869 # -- 5) intern 1870 # 1871 , self.CheckBoxErg__Intern.wxObjekt.gibWert() 1872 # 1873 # -- 6) prj_personen_id 1874 # 1875 , 0 1876 # 1877 # -- 7) prt_protokoll_id 1878 # 1879 , self.__prtProtokollId__ 1880 # 1881 # -- 8) spr_uebvar_id 1882 # 1883 , self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt[self.__prtProtokollId__][0][3] 1884 # 1885 # -- 9) teilnehmer 1886 # 1887 , None 1888 # 1889 # -- 10) termin 1890 # 1891 , termin ]] ) 1892 1893 # 1894 # -- Aktualisierung der permanenten Datenstruktur erzwingen ---------- 1895 # 1896 self.__dbVerbindung__.daten__prtProtokoll_gefProt__Sprache__Projekt.clear() 1897 1898 1899 # 1900 # -------------------------------------------------------------------------------- 1901 # -- 2. beteiligte Personen zuordnen / entfernen -------------------------- 1902 # -------------------------------------------------------------------------------- 1903 # 1904 if( self.ListBoxAL__BetPers.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1905 1906 # 1907 # -- Beteiligte Personen entfernen ---------------------------------- 1908 # 1909 dbIdListe = self.ListBoxAL__BetPers.ListBox__li.gibDbIdListe() 1910 for i in range( len( self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt[self.__prtProtokollId__] ) ) : 1911 1912 if( self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt[self.__prtProtokollId__][i][0] 1913 not in dbIdListe ) : 1914 1915 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1916 , listeWerte = [[ # 1917 # -- 0) id 1918 # 1919 self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt[self.__prtProtokollId__][i][1] 1920 # 1921 # -- 1) notizen 1922 # 1923 , None 1924 # 1925 # -- 2) datuhrz 1926 # 1927 , None 1928 # 1929 # -- 3) duanfrage 1930 # 1931 , None 1932 # 1933 # -- 4) erledigt 1934 # 1935 , None 1936 # 1937 # -- 5) intern 1938 # 1939 , None 1940 # 1941 # -- 6) prj_personen_id 1942 # 1943 , None 1944 # 1945 # -- 7) prt_protokoll_id 1946 # 1947 , None 1948 # 1949 # -- 8) spr_uebvar_id 1950 # 1951 , None 1952 # 1953 # -- 9) teilnehmer 1954 # 1955 , None 1956 # 1957 # -- 10) termin 1958 # 1959 , None ]] 1960 , istPerson = True 1961 , entfernen = True ) 1962 1963 1964 1965 # 1966 # -- Beteiligte Personen hinzufügen ---------------------------------- 1967 # 1968 for i in dbIdListe : 1969 1970 if( i not in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt[self.__prtProtokollId__], spalte = 0 ) ) : 1971 1972 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 1973 , listeWerte = [[ # 1974 # -- 0) id 1975 # 1976 None 1977 # 1978 # -- 1) notizen 1979 # 1980 , None 1981 # 1982 # -- 2) datuhrz 1983 # 1984 , None 1985 # 1986 # -- 3) duanfrage 1987 # 1988 , None 1989 # 1990 # -- 4) erledigt 1991 # 1992 , None 1993 # 1994 # -- 5) intern 1995 # 1996 , None 1997 # 1998 # -- 6) prj_personen_id 1999 # 2000 , i 2001 # 2002 # -- 7) prt_protokoll_id 2003 # 2004 , self.__prtProtokollId__ 2005 # 2006 # -- 8) spr_uebvar_id 2007 # 2008 , 0 2009 # 2010 # -- 9) teilnehmer 2011 # 2012 , True 2013 # 2014 # -- 10) termin 2015 # 2016 , None ]] 2017 , istPerson = True ) 2018 2019 # 2020 # -- Aktualisierung der permanenten Datenstruktur erzwingen ---------- 2021 # 2022 self.__dbVerbindung__.daten__ProtId_PersId_teilnehmer__Projekt.clear() 2023 2024 2025 2026 # 2027 # -------------------------------------------------------------------------------- 2028 # -- 3. Ansprechpartner zuordnen / entfernen -------------------------- 2029 # -------------------------------------------------------------------------------- 2030 # 2031 if( self.ListBoxAL__Ansprechpartner.ListBox__li.gibIstVomBenutzerGeaendert() ) : 2032 2033 # 2034 # -- Ansprechpartner entfernen ---------------------------------- 2035 # 2036 dbIdListe = self.ListBoxAL__Ansprechpartner.ListBox__li.gibDbIdListe() 2037 for i in range( len( self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt[self.__prtProtokollId__] ) ) : 2038 2039 if( self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt[self.__prtProtokollId__][i][0] 2040 not in dbIdListe ) : 2041 2042 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 2043 , listeWerte = [[ # 2044 # -- 0) id 2045 # 2046 self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt[self.__prtProtokollId__][i][1] 2047 # 2048 # -- 1) notizen 2049 # 2050 , None 2051 # 2052 # -- 2) datuhrz 2053 # 2054 , None 2055 # 2056 # -- 3) duanfrage 2057 # 2058 , None 2059 # 2060 # -- 4) erledigt 2061 # 2062 , None 2063 # 2064 # -- 5) intern 2065 # 2066 , None 2067 # 2068 # -- 6) prj_personen_id 2069 # 2070 , None 2071 # 2072 # -- 7) prt_protokoll_id 2073 # 2074 , None 2075 # 2076 # -- 8) spr_uebvar_id 2077 # 2078 , None 2079 # 2080 # -- 9) teilnehmer 2081 # 2082 , None 2083 # 2084 # -- 10) termin 2085 # 2086 , None ]] 2087 , istPerson = True 2088 , entfernen = True ) 2089 2090 2091 # 2092 # -- Ansprechpartner hinzufügen ---------------------------------- 2093 # 2094 for i in dbIdListe : 2095 2096 if( i not in zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt[self.__prtProtokollId__], spalte = 0 ) ) : 2097 2098 self.__dbVerbindung__.schreibe__prjPPPrtProtokoll( Fortschritt = self.__Fortschritt__ 2099 , listeWerte = [[ # 2100 # -- 0) id 2101 # 2102 None 2103 # 2104 # -- 1) notizen 2105 # 2106 , None 2107 # 2108 # -- 2) datuhrz 2109 # 2110 , None 2111 # 2112 # -- 3) duanfrage 2113 # 2114 , None 2115 # 2116 # -- 4) erledigt 2117 # 2118 , None 2119 # 2120 # -- 5) intern 2121 # 2122 , None 2123 # 2124 # -- 6) prj_personen_id 2125 # 2126 , i 2127 # 2128 # -- 7) prt_protokoll_id 2129 # 2130 , self.__prtProtokollId__ 2131 # 2132 # -- 8) spr_uebvar_id 2133 # 2134 , 0 2135 # 2136 # -- 9) teilnehmer 2137 # 2138 , False 2139 # 2140 # -- 10) termin 2141 # 2142 , None ]] 2143 , istPerson = True ) 2144 2145 # 2146 # -- Aktualisierung der permanenten Datenstruktur erzwingen ---------- 2147 # 2148 self.__dbVerbindung__.daten__ProtId_PersId_aufgabe__Projekt.clear() 2149 2150 2151 2152 # 2153 # -------------------------------------------------------------------------------- 2154 # -- permanente Datenstrukturen aktualisieren -------------------------- 2155 # -------------------------------------------------------------------------------- 2156 # 2157 self.__dbVerbindung__.init__prtProtokoll__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 2158 self.__dbVerbindung__.init__ProtId_PersId__Projekt( Fortschritt = self.__Fortschritt__ ) 2159 2160 2161 2162 # 2163 # -- Fortschrittsdialog schließen ------------------------------------------ 2164 # 2165 self.__Fortschritt__.loescheFortschritt() 2166 2167 2168 2169 2170 # 2171 # -------------------------------------------------------------------------------- 2172 # -- hier ausgewertete Benutzeränderungen zurücksetzen ------------------ 2173 # -------------------------------------------------------------------------------- 2174 # 2175 self.CheckBoxErg__Intern.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2176 self.CheckBoxErg__Erledigt.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2177 self.MTCtrlErg__DatumPE.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2178 self.ListBoxAL__BetPers.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2179 self.MTCtrlErg__AntwDatum.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2180 self.MTCtrlErg__Termin.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2181 self.ListBoxAL__Ansprechpartner.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
2182