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

Source Code for Module risikoanalyse

   1  # -*- coding: utf-8 -*- 
   2  # 
   3  # 
   4  #    filename:  risikoanalyse.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 bearbeiteanmerkung import BearbeiteAnmerkung               # Eingabeformular für Anmerkungen 
  42  from bearbeitesicherheitsanf import BearbeiteSicherheitsanf     # Eingabeformular für PSAnf 
  43   
  44  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
  45   
  46  from universal import allg                                      # Allgemeine Funktionen 
  47  from universal import zk                                        # Zeichenketten bearbeiten 
  48   
  49  from wxuniversal import HK_GEFAHRENSZENARIO 
  50  from wxuniversal import HK_REPR_GEFSZENARIO 
  51   
  52  from wxuniversal import FlexGridSizerWxObjTitel         # wxObjekt mit Titel 
  53  from wxuniversal import ComboBoxErg                     # wx.ComboBox mit Ergänzungen 
  54  from wxuniversal import farbeBearbeiten                 # Farbe der Objekte, die  bearbeitet werden können 
  55  from wxuniversal import ListBoxErg                      # wx.ListBox mit Ergänzungen 
  56  from wxuniversal import ListBoxErgSpWTitelAL            # ListBox im SplitterWindow m. Titel + AW-Liste 
  57  from wxuniversal import TextCtrlErgAuswStatisch         # wx.StaticText mit Auswahlliste 
  58  from wxuniversal import SiAnf                           # SiAnf einschl. zugeordneter Strkt, Dok, PE, ... 
  59  from wxuniversal import TextCtrlErg                     # wx.TextCtrl mit Ergänzungen 
  60  from wxuniversal import TreeCtrlErg                     # TreeCtrl mit Ergänzungen 
  61   
  62   
  63   
  64  # 
  65  # 
  66  # 
  67  # ---------------------------------------------------------------------------------------- 
  68  # ---------------------------------------------------------------------------------------- 
  69  # --                                    -------------------------------------------------- 
  70  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
  71  # --                                    -------------------------------------------------- 
  72  # ---------------------------------------------------------------------------------------- 
  73  # ---------------------------------------------------------------------------------------- 
  74  # 
  75  #  
  76  #       -- siehe TODO 'risikoanalyse.py' -- 
  77  # 
  78  # 
  79  # ---------------------------------------------------------------------------------------- 
  80  # 
  81   
  82  # 
  83  # fortsetzen 
  84  # 
  85  # -> Warum werden die Fensterelemente in 'Gefahrenprotokoll' ordentlich eingepaßt und in 'Risikoanalyse nicht' (ragen über den rechten Rand hinaus) ? 
  86  # 
  87   
  88  # 
  89  # ---------------------------------------------------------------------------------------- 
  90  # ---------------------------------------------------------------------------------------- 
  91  # --                                    -------------------------------------------------- 
  92  # --    Eingabeformular 'Risikoanalyse' -------------------------------------------------- 
  93  # --                                    -------------------------------------------------- 
  94  # ---------------------------------------------------------------------------------------- 
  95  # ---------------------------------------------------------------------------------------- 
  96  # 
97 -class Risikoanalyse( wx.ScrolledWindow ):
98 99 """ 100 Klasse zur Abbildung des Eingabeformulars 'Risikoanalyse' 101 102 @keyword parent: Es ist der Datenbankbenutzername zu übergeben. 103 @type parent: Zeichenkette 104 @keyword id: Es ist das Kennwort des Datenbankbenutzers zu übergeben. 105 @type id: Zeichenkette 106 @keyword size: Es ist die IP-Adresse anzugeben, über die der PostgreSQL-Datenbankserver ansprechbar ist. 107 @type size: Zeichenkette 108 109 @raise Fehler: ?? Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. ?? 110 """ 111 112 # 113 # ------------------------------------------------------------------------------------ 114 # -- Eingabeformular initialisieren ---------------------------------- 115 # ------------------------------------------------------------------------------------ 116 #
117 - def __init__( self, parent, Notizen, dbVerbindung, id = -1, size = wx.DefaultSize ):
118 wx.ScrolledWindow.__init__( self, parent, id, (0, 0), size=size ) 119 120 # 121 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 122 # 123 self.SetName( name = "Risikoanalyse" ) 124 125 126 # 127 # -- Vorgabewerte für ScrolledWindow ------------------------------------------ 128 # 129 self.SetScrollRate( 20, 20 ) 130 self.EnableScrolling( True, True ) 131 132 133 # 134 # -- Randbedingungen übernehmen ------------------------------------------ 135 # 136 self.__Notizen__ = Notizen 137 self.__dbVerbindung__ = dbVerbindung 138 self.__txtUebersetzung__ = u"Doppelklick:\nÜbersetzungen anzeigen/bearbeiten" 139 140 141 142 # 143 # -------------------------------------------------------------------------------- 144 # -- Eingabeobjekte anlegen -------------------------------------------------- 145 # -------------------------------------------------------------------------------- 146 # 147 148 # 149 # -------------------------------------------------------------------------------- 150 # -- Enthalten im Gefahrennetz ------------------------------------------ 151 # -------------------------------------------------------------------------------- 152 # 153 self.ListBoxAL__GefNetz = ListBoxErgSpWTitelAL( parent = self 154 , titel = u"Enthalten im Gefahrennetz" 155 , minSize = ( -1, 150 ) 156 , orient = wx.VERTICAL 157 , Notizen = self.__Notizen__ ) 158 159 # Es muß mindestens ein Element ausgewählt sein ! 160 self.ListBoxAL__GefNetz.ListBoxLiDarfLeerSein = False 161 162 self.ListBoxAL__GefNetz.SplitterWindow.SetSashPosition( 250 ) 163 164 self.ListBoxAL__GefNetz.ListBox__li.nimmNotizenAktiviert( aktiv = False ) 165 self.ListBoxAL__GefNetz.ListBox__re.nimmNotizenAktiviert( aktiv = False ) 166 167 self.ListBoxAL__GefNetz.ListBox__li.nimmWerteStatusleiste( 168 DBSpNameErlaeuterung = u"Welcher Gefahr ist das Gefahrenszenario zugeordnet ?" 169 , DBSpName = "ps.gefstrkt.str_strkt_id" ) 170 171 self.ListBoxAL__GefNetz.ListBox__re.nimmWerteStatusleiste( 172 DBSpNameErlaeuterung = u"Welcher Gefahr ist das Gefahrenszenario zugeordnet ?" 173 , DBSpName = "ps.gefstrkt.str_strkt_id" ) 174 175 176 177 # 178 # -------------------------------------------------------------------------------- 179 # -- Gefährdete Personen ------------------------------------------ 180 # -------------------------------------------------------------------------------- 181 # 182 self.ListBoxAL__GefPersonen = ListBoxErgSpWTitelAL( parent = self 183 , titel = u"Gefährdete Personen" 184 , minSize = ( -1, -1 ) 185 , orient = wx.VERTICAL 186 , Notizen = self.__Notizen__ ) 187 188 # Es muß mindestens ein Element ausgewählt sein ! 189 self.ListBoxAL__GefPersonen.ListBoxLiDarfLeerSein = False 190 191 self.ListBoxAL__GefPersonen.SplitterWindow.SetSashPosition( 250 ) 192 193 self.ListBoxAL__GefPersonen.ListBox__li.nimmNotizenAktiviert( aktiv = False ) 194 self.ListBoxAL__GefPersonen.ListBox__re.nimmNotizenAktiviert( aktiv = False ) 195 196 self.ListBoxAL__GefPersonen.ListBox__li.nimmWerteStatusleiste( 197 DBSpNameErlaeuterung = u"Welche Personen sind vom Gefahrenszenario unmittelbar betroffen ?" 198 , DBSpName = "..." ) 199 200 self.ListBoxAL__GefPersonen.ListBox__re.nimmWerteStatusleiste( 201 DBSpNameErlaeuterung = u"Welche Personen sind vom Gefahrenszenario unmittelbar betroffen ?" 202 , DBSpName = "..." ) 203 204 205 # 206 # -------------------------------------------------------------------------------- 207 # -- Gefahrenszenario / Interne Notizen zum Gefahrenszenario -- 208 # -- Repräsentatives Gefahrenszenario -- 209 # -- Anmerkungen zum Gefahrenszenario / Interne Notizen zu den Anmerkungen -- 210 # -------------------------------------------------------------------------------- 211 # 212 self.TreeCtrlErg__GefszenAnm = FlexGridSizerWxObjTitel( parent = self 213 , wxObj = TreeCtrlErg( self 214 , Notizen = self.__Notizen__ ) 215 , titel = u"Gefahrenszenario, Repräsentatives Gefahrenszenario, Anmerkungen zum Gefahrenszenario" 216 , orient = wx.VERTICAL ) 217 218 self.TreeCtrlErg__GefszenAnm.wxObjekt.SetMinSize( ( -1, 300 ) ) 219 220 self.TreeCtrlErg__GefszenAnm.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 221 222 self.TreeCtrlErg__GefszenAnm.wxObjekt.nimmNotizenClientDataPos( pos = 1 ) 223 224 # 225 # ---> Spaltenbezeichnungen in Abhängigkeit vom berührten Hauptknoten setzen 226 # 227 # 228 # self.TreeCtrlErg__GefszenAnm.wxObjekt.nimmWerteStatusleiste( 229 # DBSpNameErlaeuterung = u"Allgemeine Beschreibung des Gefahrenszenarios." 230 # , DBSpName = "prj.pp_psgefszenario.spr_uebvar_id/notizen" ) 231 # self.ListBox__ReprGefSzen.wxObjekt.nimmWerteStatusleiste( 232 # DBSpNameErlaeuterung = u"Beschreibung des mit dem größten Risiko verbundenen Gefahrenszenarios (wenn mehrere möglich sind)." 233 # , DBSpName = "prj.pp_psgefszenario.spr_uebvar_id_reprgefszen" ) 234 235 self.TreeCtrlErg__GefszenAnm.wxObjekt.nimmWerteStatusleiste( 236 DBSpNameErlaeuterung = u"Anmerkungen / Randbedingungen zum Gefahrenszenario." 237 , DBSpName = "prj.pl_psgefanm.spr_uebvar_id/notizen" ) 238 239 self.TreeCtrlErg__GefszenAnm.wxObjekt.nimmTooltip( u"Doppelklick:\nEinträge bearbeiten" ) 240 241 self.TreeCtrlErg__GefszenAnm.wxObjekt.Bind( wx.EVT_TREE_ITEM_ACTIVATED 242 , self.__ereignisGefahrenszenarioAnmerkungen__ ) 243 244 245 # 246 # -------------------------------------------------------------------------------- 247 # -- Sicherheitsanforderungen ------------------------------------------ 248 # -------------------------------------------------------------------------------- 249 # 250 self.SiAnf__SiAnf = SiAnf( parent = self 251 , Notizen = self.__Notizen__ 252 , dbVerbindung = self.__dbVerbindung__ ) 253 254 self.SiAnf__SiAnf.SetMinSize( ( -1, 600 ) ) 255 256 self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.wxObjekt.Bind( wx.EVT_TREE_ITEM_ACTIVATED 257 , self.__ereignisSicherheitsanforderung__ ) 258 259 260 261 262 263 # 264 # -------------------------------------------------------------------------------- 265 # -- Häufigkeit ---------------------------------------------------------- 266 # -------------------------------------------------------------------------------- 267 # 268 self.ComboBox__Haeufig = FlexGridSizerWxObjTitel( parent = self 269 , wxObj = ComboBoxErg( self 270 , choices = [] 271 , style = wx.CB_DROPDOWN|wx.CB_READONLY 272 , Notizen = self.__Notizen__ ) 273 , orient = wx.VERTICAL 274 , titel = u"Häufigkeit" ) 275 276 self.ComboBox__Haeufig.wxObjekt.nimmWerteStatusleiste( 277 DBSpNameErlaeuterung = "Häufigkeit des repräsentativen Gefahrenszenarios." 278 , DBSpName = "..." ) 279 280 self.ComboBox__Haeufig.wxObjekt.Bind( wx.EVT_COMBOBOX 281 , self.__ereignisRisikobewertung__ ) 282 283 284 285 self.ListBox__HaeufigBegr = FlexGridSizerWxObjTitel( parent = self 286 , wxObj = ListBoxErg( self 287 , size = ( -1, 100 ) 288 , style = wx.BORDER_SUNKEN | wx.LB_SORT 289 , Notizen = self.__Notizen__ ) 290 , titel = u"Begründung der Häufigkeit" 291 , orient = wx.VERTICAL ) 292 293 self.ListBox__HaeufigBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 294 295 self.ListBox__HaeufigBegr.wxObjekt.nimmNotizenClientDataPos( pos = 1 ) 296 297 self.ListBox__HaeufigBegr.wxObjekt.nimmWerteStatusleiste( 298 DBSpNameErlaeuterung = u"Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?" 299 , DBSpName = "..." ) 300 301 self.ListBox__HaeufigBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 302 303 self.ListBox__HaeufigBegr.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK 304 , self.__ereignisUebersezung__ ) 305 306 307 308 # 309 # -------------------------------------------------------------------------------- 310 # -- Gefahrenstufe ---------------------------------------------------------- 311 # -------------------------------------------------------------------------------- 312 # 313 self.ComboBox__GefStufe = FlexGridSizerWxObjTitel( parent = self 314 , wxObj = ComboBoxErg( self 315 , choices = [] 316 , style = wx.CB_DROPDOWN|wx.CB_READONLY 317 , Notizen = self.__Notizen__ ) 318 , orient = wx.VERTICAL 319 , titel = u"Gefahrenstufe" ) 320 321 self.ComboBox__GefStufe.wxObjekt.nimmWerteStatusleiste( 322 DBSpNameErlaeuterung = u"Auswirkung des repräsentativen Gefahrenszenarios." 323 , DBSpName = "..." ) 324 325 self.ComboBox__GefStufe.wxObjekt.Bind( wx.EVT_COMBOBOX, self.__ereignisRisikobewertung__ ) 326 327 328 329 self.ListBox__GefStufeBegr = FlexGridSizerWxObjTitel( parent = self 330 , wxObj = ListBoxErg( self 331 , size = ( -1, 100 ) 332 , style = wx.BORDER_SUNKEN | wx.LB_SORT 333 , Notizen = self.__Notizen__ ) 334 , titel = u"Begründung der Gefahrenstufe" 335 , orient = wx.VERTICAL ) 336 337 self.ListBox__GefStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 338 339 self.ListBox__GefStufeBegr.wxObjekt.nimmNotizenClientDataPos( pos = 1 ) 340 341 self.ListBox__GefStufeBegr.wxObjekt.nimmWerteStatusleiste( 342 DBSpNameErlaeuterung = u"Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?" 343 , DBSpName = "..." ) 344 345 self.ListBox__GefStufeBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 346 347 self.ListBox__GefStufeBegr.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK 348 , self.__ereignisUebersezung__ ) 349 350 351 # 352 # -------------------------------------------------------------------------------- 353 # -- Risikostufe ---------------------------------------------------------- 354 # -------------------------------------------------------------------------------- 355 # 356 self.TCASRisikoStufe = FlexGridSizerWxObjTitel( parent = self 357 , wxObj = TextCtrlErgAuswStatisch( parent = self 358 , size = ( -1, -1 ) 359 , Notizen = self.__Notizen__ ) 360 , orient = wx.VERTICAL 361 , titel = u"Risikostufe" ) 362 363 self.TCASRisikoStufe.wxObjekt.nimmWerteStatusleiste( 364 DBSpNameErlaeuterung = u"Das resultierende Risiko des repräsentativen Gefahrenszenarios." 365 , DBSpName = "prj.pl_psgefabk.ps_abk_id" ) 366 367 368 369 self.ListBox__RisikoStufeBegr = FlexGridSizerWxObjTitel( parent = self 370 , wxObj = ListBoxErg( self 371 , size = ( -1, 100 ) 372 , style = wx.BORDER_SUNKEN | wx.LB_SORT 373 , Notizen = self.__Notizen__ ) 374 , titel = u"Bewertung der Risikostufe" 375 , orient = wx.VERTICAL ) 376 377 self.ListBox__RisikoStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 378 379 self.ListBox__RisikoStufeBegr.wxObjekt.nimmNotizenClientDataPos( pos = 1 ) 380 381 self.ListBox__RisikoStufeBegr.wxObjekt.nimmWerteStatusleiste( 382 DBSpNameErlaeuterung = u"Warum tritt das repräsentative Gefahrenszenario mit der genannten Häufigkeit auf ?" 383 , DBSpName = "prj.pl_psgefabk.spr_uebvar_id_zus/notizen" ) 384 385 self.ListBox__RisikoStufeBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 386 387 self.ListBox__RisikoStufeBegr.wxObjekt.Bind( wx.EVT_LISTBOX_DCLICK 388 , self.__ereignisUebersezung__ ) 389 390 391 392 393 # 394 # -------------------------------------------------------------------------------- 395 # -- Layout setzen ---------------------------------------------------------- 396 # -------------------------------------------------------------------------------- 397 # 398 399 # 400 # -- Gefahrennetz / Gef. Personen ------------------------------------------ 401 # 402 FlexGridSizer_GNGP = wx.FlexGridSizer( rows = 1, cols = 2, vgap = 10, hgap = 10 ) 403 404 FlexGridSizer_GNGP.AddGrowableCol( idx = 0, proportion = 1 ) 405 FlexGridSizer_GNGP.AddGrowableCol( idx = 1, proportion = 1 ) 406 407 FlexGridSizer_GNGP.Add( self.ListBoxAL__GefNetz 408 , flag = wx.EXPAND ) 409 410 FlexGridSizer_GNGP.Add( self.ListBoxAL__GefPersonen 411 , flag = wx.EXPAND ) 412 413 414 415 # 416 # -- Risikobewertung -------------------------------------------------- 417 # 418 FlexGridSizer_RB = wx.FlexGridSizer( rows = 2, cols = 3, vgap = 5, hgap = 5 ) 419 420 FlexGridSizer_RB.AddGrowableCol( idx = 0, proportion = 1 ) 421 FlexGridSizer_RB.AddGrowableCol( idx = 1, proportion = 1 ) 422 FlexGridSizer_RB.AddGrowableCol( idx = 2, proportion = 1 ) 423 424 FlexGridSizer_RB.AddGrowableRow( idx = 1, proportion = 1 ) 425 426 FlexGridSizer_RB.Add( self.ComboBox__Haeufig, flag = wx.EXPAND ) 427 FlexGridSizer_RB.Add( self.ComboBox__GefStufe, flag = wx.EXPAND ) 428 FlexGridSizer_RB.Add( self.TCASRisikoStufe, flag = wx.EXPAND ) 429 430 FlexGridSizer_RB.Add( self.ListBox__HaeufigBegr, flag = wx.EXPAND ) 431 FlexGridSizer_RB.Add( self.ListBox__GefStufeBegr, flag = wx.EXPAND ) 432 FlexGridSizer_RB.Add( self.ListBox__RisikoStufeBegr, flag = wx.EXPAND ) 433 434 Rahmen = wx.StaticBox( parent = self, label = u"Risikobewertung" ) 435 StaticBoxSizer = wx.StaticBoxSizer( box = Rahmen, orient = wx.VERTICAL ) 436 StaticBoxSizer.Add( FlexGridSizer_RB 437 , flag = wx.ALL|wx.EXPAND 438 , border = 5 ) 439 440 441 # 442 # -- Hauptlayout ---------------------------------------------------------- 443 # 444 FlexGridSizer = wx.FlexGridSizer( rows = 4, cols = 1, vgap = 10, hgap = 10 ) 445 446 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 447 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 ) 448 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 ) 449 FlexGridSizer.AddGrowableRow( idx = 2, proportion = 1 ) 450 FlexGridSizer.AddGrowableRow( idx = 3, proportion = 1 ) 451 452 453 FlexGridSizer.Add( FlexGridSizer_GNGP 454 , flag = wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND 455 , border = 10 ) 456 457 FlexGridSizer.Add( self.TreeCtrlErg__GefszenAnm 458 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 459 , border = 10 ) 460 461 FlexGridSizer.Add( self.SiAnf__SiAnf 462 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 463 , border = 10 ) 464 465 FlexGridSizer.Add( StaticBoxSizer 466 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 467 , border = 10 ) 468 469 self.SetSizerAndFit( FlexGridSizer ) 470 471 472 # 473 # -- Risikoanalyse initialisieren ---------------------------------- 474 # -- aktuelles Gefahrenszenario auslesen ---------------------------------- 475 # 476 self.init_Risikoanalyse() 477 self.liesDB()
478 479 480 481 482 # 483 # ------------------------------------------------------------------------------------ 484 # -- Gefahrenszenario und Anmerkungen ---------------------------------- 485 # ------------------------------------------------------------------------------------ 486 #
487 - def __ereignisGefahrenszenarioAnmerkungen__( self, ereignis ):
488 """ 489 Das Gefahrenszenario, Repräsentative Gefahrenszenario und die Anmerkungen zum Gefahrenszenario bearbeiten. 490 491 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 492 @type ereignis: C{wx - Ereignisobjekt} 493 """ 494 495 # 496 # -- Gefahrenszenario / Repräsentatives Gefahrenszenario bearbeiten ---------- 497 # 498 if( ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) == HK_GEFAHRENSZENARIO 499 or ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) == HK_REPR_GEFSZENARIO ) : 500 501 self.__ereignisUebersezung__( ereignis = ereignis ) 502 503 504 # 505 # -- Anmerkungen bearbeiten -------------------------------------------------- 506 # -- Meldung ausgeben -------------------------------------------------- 507 # 508 else : 509 510 dlg = BearbeiteAnmerkung( parent = self 511 , Notizen = self.__Notizen__ 512 , dbVerbindung = self.__dbVerbindung__ ) 513 dlg.ShowModal() 514 dlg.CenterOnScreen() 515 dlg.Destroy() 516 517 518 # 519 # -- Änderungen in Risikoanalyse übernehmen ---------------------------------- 520 # 521 ereignis.GetEventObject().loescheAlles() 522 523 self.__dbVerbindung__.selektiere__GefszenId_Wortgruppen__Sprache__Projekt( 524 TreeCtrlErg_Gefszenario = self.TreeCtrlErg__GefszenAnm.wxObjekt ) 525 526 527 528 529 psAnmerkungId = None 530 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) : 531 532 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 533 534 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 535 TreeCtrlErg_ListBoxErg = ereignis.GetEventObject() 536 , psAnmerkungId = psAnmerkungId ) 537 538 539 540 541 # 542 # -- Das Ereignis nicht weiterreichen ---------------------------------- 543 # 544 ereignis.Skip( skip = False )
545 546 547 548 # 549 # ------------------------------------------------------------------------------------ 550 # -- Die Risikobewertung wurde geändert ---------------------------------- 551 # ------------------------------------------------------------------------------------ 552 #
553 - def __ereignisRisikobewertung__( self, ereignis ):
554 """ 555 Ein C{wx - Objekt} der Risikobewertung wurde verändert. 556 557 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 558 @type ereignis: C{wx - Ereignisobjekt} 559 """ 560 561 # 562 # -- Risikostufe setzen -------------------------------------------------- 563 # 564 hfgGef = ( str( self.ComboBox__Haeufig.wxObjekt.gibDbId() ) 565 + '-' 566 + str( self.ComboBox__GefStufe.wxObjekt.gibDbId() ) ) 567 568 if( hfgGef not in self.__dbVerbindung__.daten__psAbk_Risikomatrix ) : 569 570 # 571 # -- Das Ereignis weiterreichen, damit es weiter ------------------ 572 # -- ausgewertet werden kann ------------------ 573 # 574 ereignis.Skip( skip = True ) 575 return 576 577 self.TCASRisikoStufe.wxObjekt.selektiereWert( 578 clientDataId = self.__dbVerbindung__.daten__psAbk_Risikomatrix[hfgGef][0][0] ) 579 self.TCASRisikoStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = True ) 580 581 582 583 # 584 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 585 # -- ausgewertet werden kann -------------------------- 586 # 587 ereignis.Skip( skip = True )
588 589 590 591 592 # 593 # ------------------------------------------------------------------------------------ 594 # -- Sicherheitsanforderungen bearbeiten ---------------------------------- 595 # ------------------------------------------------------------------------------------ 596 #
597 - def __ereignisSicherheitsanforderung__( self, ereignis ):
598 """ 599 Sicherheitsaforderungen zum Gefahrenszenario bearbeiten. 600 601 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 602 @type ereignis: C{wx - Ereignisobjekt} 603 """ 604 605 606 # 607 # -- Meldung ausgeben -------------------------------------------------- 608 # 609 dlg = BearbeiteSicherheitsanf( parent = self 610 , Notizen = self.__Notizen__ 611 , dbVerbindung = self.__dbVerbindung__ ) 612 613 dlg.SiAnf__SiAnf.liesDB() 614 dlg.SetMinSize( ( 800, 700 ) ) 615 dlg.CenterOnScreen() 616 dlg.ShowModal() 617 618 619 620 # 621 # -- Sicherheitsanforderungen aktualisieren ---------------------------------- 622 # 623 self.__dbVerbindung__.selektiere__prtProtokoll__Sprache__Projekt( 624 TreeCtrlErg = self.SiAnf__SiAnf.TreeCtrlErg__SiAnf.wxObjekt 625 , istGefProt = False 626 , prtTypId = None 627 , prtProtokollId = self.__dbVerbindung__.daten__GefszenId_ProtId_siAnf__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 628 629 630 631 # 632 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 633 # -- ausgewertet werden kann -------------------------- 634 # 635 ereignis.Skip( skip = True )
636 637 638 639 640 # 641 # ------------------------------------------------------------------------------------ 642 # -- Liegt eine Korrektur von Rechtschreibfehlern vor ? ------------------ 643 # ------------------------------------------------------------------------------------ 644 #
645 - def __ereignisUebersezung__( self, ereignis ):
646 """ 647 Übersetzung anzeigen / bearbeiten 648 649 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 650 @type ereignis: C{wx - Ereignisobjekt} 651 """ 652 653 # 654 # -- Gefahrenszenario / Repräsentatives Gefahrenszenario ------------------ 655 # -- ------------------ 656 # -- Hauptknoten gewählt ------------------ 657 # 658 if( ereignis.GetId() == self.TreeCtrlErg__GefszenAnm.wxObjekt.GetId() ) : 659 660 if( ereignis.GetEventObject().istHauptknoten() ) : 661 662 return 663 664 665 666 # 667 # -- Der Status der Benutzeränderung ist irrelevant ---------- 668 # -- (Vorliegende Änderungen werden an den Rückgabewerten von ---------- 669 # -- >BearbeiteUebersetzung(...)< erkannt) ---------- 670 # 671 self.TreeCtrlErg__GefszenAnm.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 672 self.ListBox__HaeufigBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 673 self.ListBox__GefStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 674 self.ListBox__RisikoStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 675 676 677 678 # 679 # -- Änderungen an Combobox Häufigkeit / Gefahrenstufe / Risikostufe ---------- 680 # -- in die DB schreiben (konsistenten Zustand herstellen) ---------- 681 # 682 self.schreibDB() 683 684 685 686 # 687 # -- Aktuelle Werte ---------------------------------------------------------- 688 # 689 listeWerte = [] 690 sprUebvarId = None 691 notizen = None 692 693 694 695 # 696 # -- Gefahrenszenario / Notizen / Repräsentatives Gefahrenszenario ---------- 697 # -- ------------------ 698 # -- [0] prj.pp_psgefszenario.spr_uebvar_id ------------------ 699 # -- [1] prj.pp_psgefszenario.notizen ------------------ 700 # -- [2] prj.pp_psgefszenario.spr_uebvar_id_reprgefszen ------------------ 701 # -- [3] prj.pp_psgefszenario.id ------------------ 702 # 703 # 704 if( ereignis.GetId() == self.TreeCtrlErg__GefszenAnm.wxObjekt.GetId() ) : 705 706 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt ) : 707 708 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 709 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 710 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 711 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][5] ) 712 713 else : 714 715 return 716 717 sprUebvarId = listeWerte[0] 718 notizen = listeWerte[1] 719 720 if( ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) == HK_REPR_GEFSZENARIO ) : 721 722 sprUebvarId = listeWerte[2] 723 724 725 726 # 727 # -- Begründung der Häufigkeit ------------------------------------------ 728 # -- Begründung der Gefahrenstufe ------------------------------------------ 729 # -- Bewertung der Risikostufe ------------------------------------------ 730 # -- ------------------ 731 # -- [0] prj.zeige__pl_psgefabk.ps_abk_id ------------------ 732 # -- [1] prj.zeige__pl_psgefabk.spr_uebvar_id_zus ------------------ 733 # -- [2] prj.zeige__pl_psgefabk.notizen ------------------ 734 # 735 else : 736 737 if( ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() ) : 738 739 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt ) : 740 741 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 742 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 743 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 744 745 else : 746 747 return 748 749 elif( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() ) : 750 751 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt ) : 752 753 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 754 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 755 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 756 757 else : 758 759 return 760 761 elif( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 762 763 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt ) : 764 765 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 766 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 767 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 768 769 else : 770 771 return 772 773 else : 774 775 return 776 777 sprUebvarId = listeWerte[1] 778 notizen = listeWerte[2] 779 780 781 782 # 783 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 784 # 785 dlg = BearbeiteUebersetzung( parent = self 786 , Notizen = self.__Notizen__ 787 , dbVerbindung = self.__dbVerbindung__ 788 , sprUebvarId = sprUebvarId 789 , notizen_db = None 790 , notizenKontext_db = notizen ) 791 792 793 794 # 795 # -- Dialog aufrufen ---------------------------------------------------------- 796 # 797 dlg.ShowModal() 798 dlg.Destroy() 799 800 801 802 # 803 # -- Änderungen übernehmen -------------------------------------------------- 804 # 805 if( dlg.gibWerte()[0] ) : 806 807 # 808 # -- >spr.uebvar.id< und/oder >notizen< geändert ------------------ 809 # 810 istAenderungId = ( dlg.gibWerte()[1] != sprUebvarId ) 811 istAenderungIdNotizen = ( dlg.gibWerte()[2] != unicode( notizen, 'utf-8' ) ) 812 813 814 815 # 816 # -- Gefahrenszenario / Notizen ---------------------------------- 817 # -- Repräsentatives Gefahrenszenario -------------------------- 818 # 819 if( ereignis.GetId() == self.TreeCtrlErg__GefszenAnm.wxObjekt.GetId() ) : 820 821 # 822 # -- geänderte Werte zusammenstellen und übernehmen ------------------ 823 # 824 if( istAenderungId or istAenderungIdNotizen ) : 825 826 if( ereignis.GetEventObject().gibBezeichnungHauptknoten( ereignis.GetItem() ) == HK_GEFAHRENSZENARIO ) : 827 828 listeWerte[0] = dlg.gibWerte()[1] 829 830 else : 831 832 listeWerte[2] = dlg.gibWerte()[1] 833 834 listeWerte[1] = dlg.gibWerte()[2] 835 836 837 # 838 # -- Datenbank aktualisieren -------------------------- 839 # 840 self.__dbVerbindung__.schreibe__PrjPpPsGefszenario( listeGefszen = listeWerte ) 841 842 843 # 844 # -- permanente Datenstruktur aktualisieren ------------------ 845 # 846 self.__dbVerbindung__.daten__GefszenId_Wortgruppen__Sprache__Projekt.clear() 847 self.__dbVerbindung__.init__GefszenId_Wortgruppen__Sprache__Projekt() 848 849 850 # 851 # -- Änderungen in Risikoanalyse übernehmen ------------------ 852 # 853 ereignis.GetEventObject().loescheAlles() 854 855 self.__dbVerbindung__.selektiere__GefszenId_Wortgruppen__Sprache__Projekt( 856 TreeCtrlErg_Gefszenario = self.TreeCtrlErg__GefszenAnm.wxObjekt ) 857 858 psAnmerkungId = None 859 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) : 860 861 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 862 863 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 864 TreeCtrlErg_ListBoxErg = ereignis.GetEventObject() 865 , psAnmerkungId = psAnmerkungId ) 866 867 868 869 870 # 871 # -- Begründung der Häufigkeit ---------------------------------- 872 # -- Begründung der Gefahrenstufe ---------------------------------- 873 # -- Bewertung der Risikostufe ---------------------------------- 874 # 875 else : 876 877 # 878 # -- Datenbank aktualisieren ---------- 879 # -- 1. bisherige Begründung als 'Entfernt' markieren ---------- 880 # -- 2. neue Begründung übernehmen ---------- 881 # 882 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( listeWerte = [# 883 # -- ps_abk_id 884 # 885 listeWerte[0] 886 # 887 # -- spr_uebvar_id_zus 888 # 889 , listeWerte[1] 890 # 891 # -- notizen 892 # 893 , listeWerte[2] ] 894 # 895 # -- logentfernt ---------- 896 # 897 , logentfernt = 'true' ) 898 899 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( listeWerte = [# 900 # -- ps_abk_id 901 # 902 listeWerte[0] 903 # 904 # -- spr_uebvar_id_zus 905 # 906 , dlg.gibWerte()[1] 907 # 908 # -- notizen 909 # 910 , dlg.gibWerte()[2] ] ) 911 912 913 # 914 # -- permanente Datenstruktur aktualisieren -------------------------- 915 # -- Änderungen in Risikoanalyse übernehmen -------------------------- 916 # 917 if( ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() ) : 918 919 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt.clear() 920 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 921 922 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 923 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 924 , ListBoxErg = self.ListBox__HaeufigBegr.wxObjekt 925 , psAbkTyp = 'RH' ) 926 927 elif( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() ) : 928 929 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt.clear() 930 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 931 932 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 933 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 934 , ListBoxErg = self.ListBox__GefStufeBegr.wxObjekt 935 , psAbkTyp = 'RG' ) 936 937 elif( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 938 939 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt.clear() 940 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 941 942 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 943 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 944 , ListBoxErg = self.ListBox__RisikoStufeBegr.wxObjekt 945 , psAbkTyp = 'RR' )
946 947 948 949 950 # 951 # ------------------------------------------------------------------------------------ 952 # -- Auswahlfelder initialisieren ------------------------------------------ 953 # ------------------------------------------------------------------------------------ 954 #
955 - def init_Risikoanalyse( self ):
956 """ 957 Methode die aufgerufen wird, wenn Projekt oder Sprache geändert wurden. 958 """ 959 960 # 961 # -- Im Gefahrennetz alle Strukturpunkte eintragen -------------------------- 962 # 963 for strkt in self.__dbVerbindung__.daten__strStrkt__Sprache__Projekt : 964 965 # 966 # -- Gefahrennetz filtern ------------------------------------------ 967 # 968 if( strkt[5] != self.__dbVerbindung__.konstante__str_name_id__gefahrennetz ) : 969 970 continue 971 972 # 973 # -- Keine Dopplungen ------------------------------------------ 974 # 975 if( strkt[1] in self.ListBoxAL__GefNetz.ListBox__re.gibDbIdListe() ) : 976 977 continue 978 979 # 980 # -- Werte übernehmen ------------------------------------------ 981 # 982 self.ListBoxAL__GefNetz.ListBox__re.nimmWert( wert = str( strkt[0] ), dbId = strkt[1] ) 983 984 985 986 987 # 988 # -- Alle Abkürzungen eintragen ------------------------------------------ 989 # 990 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 991 ComboBoxErg_ListBoxErgSpWTitelAL = self.ListBoxAL__GefPersonen 992 , psAbkTyp = "GP" ) 993 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 994 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 995 , psAbkTyp = "RH" ) 996 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 997 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 998 , psAbkTyp = "RG" ) 999 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 1000 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 1001 , psAbkTyp = "RR" )
1002 1003 1004 1005 1006 1007 1008 # 1009 # ------------------------------------------------------------------------------------ 1010 # -- Datenbank auslesen -------------------------------------------------- 1011 # ------------------------------------------------------------------------------------ 1012 #
1013 - def liesDB( self ):
1014 """ 1015 Methode die aufgerufen wird, wenn die Datenbankwerte im Fenster dargestellt werden sollen. 1016 """ 1017 1018 # 1019 # -- Sicherheitsanforderungen immer aktualisieren -------------------------- 1020 # 1021 self.SiAnf__SiAnf.liesDB() 1022 1023 1024 1025 # 1026 # -------------------------------------------------------------------------------- 1027 # -- Gefahrenszenario-Id ist nicht vorhanden -------------------------- 1028 # -- -> alles löschen -------------------------- 1029 # -------------------------------------------------------------------------------- 1030 # 1031 self.ListBoxAL__GefNetz.schiebeAlleRechts() 1032 self.ListBoxAL__GefPersonen.schiebeAlleRechts() 1033 1034 self.TreeCtrlErg__GefszenAnm.wxObjekt.loescheAlles() 1035 1036 self.ComboBox__Haeufig.wxObjekt.SetSelection( 0 ) 1037 self.ListBox__HaeufigBegr.wxObjekt.loescheAlles() 1038 self.ComboBox__GefStufe.wxObjekt.SetSelection( 0 ) 1039 self.ListBox__GefStufeBegr.wxObjekt.loescheAlles() 1040 self.TCASRisikoStufe.wxObjekt.selektiereWert( clientDataId = 0 ) 1041 self.ListBox__RisikoStufeBegr.wxObjekt.loescheAlles() 1042 1043 1044 1045 # 1046 # -------------------------------------------------------------------------------- 1047 # -- Gefahrenszenario darstellen ------------------------------------------ 1048 # -------------------------------------------------------------------------------- 1049 # 1050 # 1051 # -- Gefahrenszenario auslesen (>prj.zeige__psgefszenario<) ------------------ 1052 # 1053 self.__dbVerbindung__.selektiere__GefszenId_Wortgruppen__Sprache__Projekt( 1054 TreeCtrlErg_Gefszenario = self.TreeCtrlErg__GefszenAnm.wxObjekt ) 1055 1056 1057 # 1058 # -------------------------------------------------------------------------------- 1059 # -- Enthalten im Gefahrennetz (>prj.zeige__psgefstrkt<) ------------------ 1060 # -------------------------------------------------------------------------------- 1061 # 1062 # -- >self.ListBoxAL__GefNetz = str_strkt_id< 1063 # 1064 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_StruktId__Projekt ) : 1065 1066 for i in self.__dbVerbindung__.daten__GefszenId_StruktId__Projekt[self.__dbVerbindung__.ps_gefszenario_id] : 1067 1068 self.ListBoxAL__GefNetz.schiebeLinks( i[0] ) 1069 1070 1071 1072 # 1073 # -- Anmerkungen zum Gefahrenszenario / Interne Notizen zu den Anmerkungen 1074 # 1075 # -- >self.TreeCtrlErg__GefszenAnm = ps_gefanm_id< 1076 # 1077 psAnmerkungId = None 1078 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt ) : 1079 1080 psAnmerkungId = zk.gibListeTeilmenge( liste = self.__dbVerbindung__.daten__GefszenId_AnmId__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] ) 1081 1082 self.__dbVerbindung__.selektiere__GefszenId_AnmId__Sprache__Projekt( 1083 TreeCtrlErg_ListBoxErg = self.TreeCtrlErg__GefszenAnm.wxObjekt 1084 , psAnmerkungId = psAnmerkungId ) 1085 1086 self.TreeCtrlErg__GefszenAnm.wxObjekt.ExpandAll() 1087 1088 1089 1090 # 1091 # -- Gefährdete Personen ------------------------------------------ 1092 # -- Häufigkeit ------------------------------------------ 1093 # -- Gefahrenstufe ------------------------------------------ 1094 # -- Risikostufe ------------------------------------------ 1095 # 1096 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 1097 ComboBoxErg_ListBoxErgSpWTitelAL = self.ListBoxAL__GefPersonen 1098 , ListBoxErg = None 1099 , psAbkTyp = 'GP' ) 1100 1101 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 1102 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 1103 , ListBoxErg = self.ListBox__HaeufigBegr.wxObjekt 1104 , psAbkTyp = 'RH' ) 1105 1106 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 1107 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 1108 , ListBoxErg = self.ListBox__GefStufeBegr.wxObjekt 1109 , psAbkTyp = 'RG' ) 1110 1111 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 1112 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 1113 , ListBoxErg = self.ListBox__RisikoStufeBegr.wxObjekt 1114 , psAbkTyp = 'RR' )
1115 1116 1117 1118 1119 1120 1121 1122 # 1123 # ------------------------------------------------------------------------------------ 1124 # -- Datenbank schreiben -------------------------------------------------- 1125 # ------------------------------------------------------------------------------------ 1126 #
1127 - def schreibDB( self ):
1128 """ 1129 Methode die aufgerufen wird, um den Wert der Gefährdeten Personen, Häufigkeit, Gefahrenstufe, Risikostufe in die Datenbank zu schreiben. 1130 """ 1131 1132 # 1133 # -------------------------------------------------------------------------------- 1134 # -- Gefahrennetz ---------------------------------------------------------- 1135 # -------------------------------------------------------------------------------- 1136 # 1137 if( self.ListBoxAL__GefNetz.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1138 1139 # 1140 # -- Strukturpunkt wurde entfernt ---------------------------------- 1141 # 1142 dbIdListe = self.ListBoxAL__GefNetz.ListBox__re.gibDbIdListe() 1143 for i in range( len( dbIdListe ) ) : 1144 1145 if( allg.hatWert__List( 1146 liste = self.__dbVerbindung__.daten__GefszenId_StruktId__Projekt[self.__dbVerbindung__.ps_gefszenario_id] 1147 , pos = 0 1148 , wert = dbIdListe[i] ) ) : 1149 1150 self.__dbVerbindung__.schreibe__PrjPlPsGefStrkt( listeWerte = [ 1151 # 1152 # -- str_strkt_id --------------- 1153 # 1154 dbIdListe[i] 1155 # 1156 # -- notizen -------------------- 1157 # 1158 , zk.gibZk( '' ) ] 1159 # 1160 # -- logentfernt -- 1161 # 1162 , logentfernt = 'true' ) 1163 1164 1165 # 1166 # -- Strukturpunkt wurde hinzugefügt ---------------------------------- 1167 # 1168 dbIdListeLi = self.ListBoxAL__GefNetz.ListBox__li.gibDbIdListe() 1169 for i in range( len( dbIdListeLi ) ) : 1170 1171 # 1172 # -- bereits zugeordnete >str.strkt.id< überspringen ---------- 1173 # 1174 if( allg.hatWert__List( 1175 liste = self.__dbVerbindung__.daten__GefszenId_StruktId__Projekt[self.__dbVerbindung__.ps_gefszenario_id] 1176 , pos = 0 1177 , wert = dbIdListeLi[i] ) ) : 1178 1179 continue 1180 1181 self.__dbVerbindung__.schreibe__PrjPlPsGefStrkt( listeWerte = [ 1182 # 1183 # -- str_strkt_id --------------- 1184 # 1185 dbIdListeLi[i] 1186 # 1187 # -- notizen -------------------- 1188 # 1189 , zk.gibZk( '' ) ] ) 1190 1191 1192 # 1193 # -- permanente Datenstruktur aktualisieren ------------------ 1194 # 1195 self.__dbVerbindung__.daten__GefszenId_StruktId__Projekt.clear() 1196 self.__dbVerbindung__.init__GefszenId_StruktId__Projekt() 1197 1198 1199 1200 # 1201 # -------------------------------------------------------------------------------- 1202 # -- Gefährdete Personen ------------------------------------------ 1203 # -------------------------------------------------------------------------------- 1204 # 1205 if( self.ListBoxAL__GefPersonen.ListBox__li.gibIstVomBenutzerGeaendert() ) : 1206 1207 # 1208 # -- Gefährdete Person wurde entfernt -------------------------- 1209 # 1210 dbIdListe = self.ListBoxAL__GefPersonen.ListBox__re.gibDbIdListe() 1211 1212 for i in range( len( dbIdListe ) ) : 1213 1214 if( allg.hatWert__List( 1215 liste = self.__dbVerbindung__.daten__GefszenId_AbkId_gp__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] 1216 , pos = 0 1217 , wert = dbIdListe[i] ) ) : 1218 1219 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1220 listeWerte = [# 1221 # -- ps_abk_id --------------------- 1222 # 1223 dbIdListe[i] 1224 # 1225 # -- spr_uebvar_id_zus ------------- 1226 # 1227 , '0' 1228 # 1229 # -- notizen ----------------------- 1230 # 1231 , zk.gibZk( '' ) ] 1232 # 1233 # -- logentfernt ---------- 1234 # 1235 , logentfernt = 'true' ) 1236 1237 # 1238 # -- Gefährdete Person wurde hinzugefügt -------------------------- 1239 # 1240 dbIdListeLi = self.ListBoxAL__GefPersonen.ListBox__li.gibDbIdListe() 1241 for i in range( len( dbIdListeLi ) ) : 1242 1243 # 1244 # -- bereits zugeordnete >ps.abk.id< überspringen ---------- 1245 # 1246 if( allg.hatWert__List( 1247 liste = self.__dbVerbindung__.daten__GefszenId_AbkId_gp__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id] 1248 , pos = 0 1249 , wert = dbIdListeLi[i] ) ) : 1250 1251 continue 1252 1253 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( listeWerte = [ 1254 # 1255 # -- ps_abk_id --------------------- 1256 # 1257 dbIdListeLi[i] 1258 # 1259 # -- spr_uebvar_id_zus ------------- 1260 # 1261 , '0' 1262 # 1263 # -- notizen ----------------------- 1264 # 1265 , zk.gibZk( '' ) ] ) 1266 1267 1268 # 1269 # -- permanente Datenstruktur aktualisieren -------------------------- 1270 # 1271 self.__dbVerbindung__.daten__GefszenId_AbkId_gp__Sprache__Projekt.clear() 1272 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 1273 1274 1275 1276 # 1277 # -------------------------------------------------------------------------------- 1278 # -- Häufigkeit ---------------------------------------------------------- 1279 # -------------------------------------------------------------------------------- 1280 # 1281 if( self.ComboBox__Haeufig.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1282 1283 # 1284 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 1285 # 1286 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1287 listeWerte = [ 1288 # 1289 # -- ps_abk_id --------------------------------------------------------- 1290 # 1291 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 1292 # 1293 # -- spr_uebvar_id_zus ------------------------------------------------- 1294 # 1295 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1296 # 1297 # -- notizen ----------------------------------------------------------- 1298 # 1299 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 1300 # 1301 # -- logentfernt --------------------------------------------------------- 1302 # 1303 , logentfernt = 'true' ) 1304 1305 1306 # 1307 # -- aktuelle Abkürung hinzufügen ---------------------------------- 1308 # 1309 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1310 listeWerte = [ 1311 # 1312 # -- ps_abk_id --------------------------------------------------------- 1313 # 1314 self.ComboBox__Haeufig.wxObjekt.gibDbId() 1315 # 1316 # -- spr_uebvar_id_zus ------------------------------------------------- 1317 # 1318 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1319 # 1320 # -- notizen ----------------------------------------------------------- 1321 # 1322 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 1323 1324 1325 # 1326 # -- permanente Datenstruktur aktualisieren -------------------------- 1327 # 1328 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt.clear() 1329 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 1330 1331 1332 1333 # 1334 # -------------------------------------------------------------------------------- 1335 # -- Gefahrenstufe ---------------------------------------------------------- 1336 # -------------------------------------------------------------------------------- 1337 # 1338 if( self.ComboBox__GefStufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1339 1340 # 1341 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 1342 # 1343 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1344 listeWerte = [ 1345 # 1346 # -- ps_abk_id --------------------------------------------------------- 1347 # 1348 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 1349 # 1350 # -- spr_uebvar_id_zus ------------------------------------------------- 1351 # 1352 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1353 # 1354 # -- notizen ----------------------------------------------------------- 1355 # 1356 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 1357 # 1358 # -- logentfernt --------------------------------------------------------- 1359 # 1360 , logentfernt = 'true' ) 1361 1362 1363 # 1364 # -- aktuelle Abkürung hinzufügen ---------------------------------- 1365 # 1366 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1367 listeWerte = [ 1368 # 1369 # -- ps_abk_id --------------------------------------------------------- 1370 # 1371 self.ComboBox__GefStufe.wxObjekt.gibDbId() 1372 # 1373 # -- spr_uebvar_id_zus ------------------------------------------------- 1374 # 1375 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1376 # 1377 # -- notizen ----------------------------------------------------------- 1378 # 1379 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 1380 1381 1382 # 1383 # -- permanente Datenstruktur aktualisieren -------------------------- 1384 # 1385 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt.clear() 1386 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 1387 1388 1389 1390 # 1391 # -------------------------------------------------------------------------------- 1392 # -- Risikostufe ---------------------------------------------------------- 1393 # -------------------------------------------------------------------------------- 1394 # 1395 if( self.TCASRisikoStufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 1396 1397 # 1398 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 1399 # 1400 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1401 listeWerte = [ 1402 # 1403 # -- ps_abk_id --------------------------------------------------------- 1404 # 1405 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 1406 # 1407 # -- spr_uebvar_id_zus ------------------------------------------------- 1408 # 1409 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1410 # 1411 # -- notizen ----------------------------------------------------------- 1412 # 1413 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 1414 # 1415 # -- logentfernt --------------------------------------------------------- 1416 # 1417 , logentfernt = 'true' ) 1418 1419 1420 # 1421 # -- aktuelle Abkürung hinzufügen ---------------------------------- 1422 # 1423 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 1424 listeWerte = [ 1425 # 1426 # -- ps_abk_id --------------------------------------------------------- 1427 # 1428 self.TCASRisikoStufe.wxObjekt.gibDbId() 1429 # 1430 # -- spr_uebvar_id_zus ------------------------------------------------- 1431 # 1432 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 1433 # 1434 # -- notizen ----------------------------------------------------------- 1435 # 1436 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 1437 1438 # 1439 # -- permanente Datenstruktur aktualisieren -------------------------- 1440 # 1441 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt.clear() 1442 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt() 1443 1444 1445 1446 # 1447 # -- hier ausgewertete Benutzeränderungen zurücksetzen ------------------ 1448 # 1449 self.ListBoxAL__GefPersonen.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1450 self.ComboBox__Haeufig.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1451 self.ComboBox__GefStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1452 self.TCASRisikoStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 1453 self.ListBoxAL__GefNetz.ListBox__li.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
1454