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

Source Code for Module risikobewertung

  1  # -*- coding: utf-8 -*- 
  2  # 
  3  # 
  4  #    filename:  risikobewertung.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 bearbeiteanmerkung import BearbeiteAnmerkung               # Eingabeformular für Anmerkungen 
 42   
 43  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
 44   
 45  from universal import allg                                      # Allgemeine Funktionen 
 46  from universal import zk                                        # Zeichenketten bearbeiten 
 47   
 48  from wxuniversal import HK_GEFAHRENSZENARIO 
 49  from wxuniversal import HK_REPR_GEFSZENARIO 
 50   
 51  from wxuniversal import FlexGridSizerWxObjTitel         # wxObjekt mit Titel 
 52  from wxuniversal import ComboBoxErg                     # wx.ComboBox mit Ergänzungen 
 53  from wxuniversal import farbeBearbeiten                 # Farbe der Objekte, die  bearbeitet werden können 
 54  from wxuniversal import ListBoxErg                      # wx.ListBox mit Ergänzungen 
 55  from wxuniversal import TextCtrlErgAuswStatisch         # wx.StaticText mit Auswahlliste 
 56   
 57   
 58   
 59  # 
 60  # 
 61  # 
 62  # ---------------------------------------------------------------------------------------- 
 63  # ---------------------------------------------------------------------------------------- 
 64  # --                                    -------------------------------------------------- 
 65  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
 66  # --                                    -------------------------------------------------- 
 67  # ---------------------------------------------------------------------------------------- 
 68  # ---------------------------------------------------------------------------------------- 
 69  # 
 70  #  
 71  #       -- siehe TODO 'risikobewertung.py' -- 
 72  # 
 73  # 
 74  # ---------------------------------------------------------------------------------------- 
 75  # 
 76   
 77  # 
 78  # ---------------------------------------------------------------------------------------- 
 79  # ---------------------------------------------------------------------------------------- 
 80  # --                                    -------------------------------------------------- 
 81  # --    Eingabeformular 'Risikobewertung'       -------------------------------------------------- 
 82  # --                                    -------------------------------------------------- 
 83  # ---------------------------------------------------------------------------------------- 
 84  # ---------------------------------------------------------------------------------------- 
 85  # 
86 -class Risikobewertung( wx.Panel ):
87 88 """ 89 Klasse zur Abbildung des Eingabeformulars 'Risikobewertung' 90 91 @keyword parent: Es ist der Datenbankbenutzername zu übergeben. 92 @type parent: Zeichenkette 93 @keyword id: Es ist das Kennwort des Datenbankbenutzers zu übergeben. 94 @type id: Zeichenkette 95 @keyword size: Es ist die IP-Adresse anzugeben, über die der PostgreSQL-Datenbankserver ansprechbar ist. 96 @type size: Zeichenkette 97 98 @raise Fehler: ?? Fehlermeldung und Programmende, wenn die Datenbankverbindung nicht hergestellt werden kann. ?? 99 """ 100 101 # 102 # ------------------------------------------------------------------------------------ 103 # -- Eingabeformular initialisieren ---------------------------------- 104 # ------------------------------------------------------------------------------------ 105 #
106 - def __init__( self, parent, Notizen, Fortschritt, dbVerbindung ):
107 wx.Panel.__init__( self, parent = parent ) 108 109 # 110 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 111 # 112 self.SetName( name = "Risikobewertung" ) 113 114 115 # 116 # -- Randbedingungen übernehmen ------------------------------------------ 117 # 118 self.__Notizen__ = Notizen 119 self.__Fortschritt__ = Fortschritt 120 self.__dbVerbindung__ = dbVerbindung 121 self.__txtUebersetzung__ = u"F3:\nÜbersetzungen bearbeiten" 122 123 124 125 126 # 127 # -------------------------------------------------------------------------------- 128 # -- Eingabeobjekte anlegen -------------------------------------------------- 129 # -------------------------------------------------------------------------------- 130 # 131 132 # 133 # -------------------------------------------------------------------------------- 134 # -- Häufigkeit ---------------------------------------------------------- 135 # -------------------------------------------------------------------------------- 136 # 137 self.ComboBox__Haeufig = FlexGridSizerWxObjTitel( parent = self 138 , wxObj = ComboBoxErg( self 139 , choices = [] 140 , style = wx.CB_DROPDOWN|wx.CB_READONLY 141 , Notizen = self.__Notizen__ ) 142 , orient = wx.VERTICAL 143 , titel = u"Häufigkeit" ) 144 145 self.ComboBox__Haeufig.wxObjekt.nimmWerteStatusleiste( 146 DBSpNameErlaeuterung = "Die Häufigkeit des repräsentativen Gefahrenszenarios." 147 , DBSpName = "ps.abk / prj.p_psabk / prj.pl_psgefabk" ) 148 149 self.ComboBox__Haeufig.wxObjekt.Bind( wx.EVT_COMBOBOX 150 , self.__ereignisRisikobewertung__ ) 151 152 153 self.ListBox__HaeufigBegr = FlexGridSizerWxObjTitel( parent = self 154 , wxObj = ListBoxErg( self 155 , style = wx.BORDER_SUNKEN|wx.LB_SORT|wx.LB_HSCROLL 156 , Notizen = self.__Notizen__ ) 157 , titel = u"Begründung der Häufigkeit" 158 , orient = wx.VERTICAL ) 159 160 161 self.ListBox__HaeufigBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 162 163 self.ListBox__HaeufigBegr.wxObjekt.nimmWerteStatusleiste( 164 DBSpNameErlaeuterung = u"Die Begründung der Häufigkeit des repräsentativen Gefahrenszenarios." 165 , DBSpName = "prj.pl_psgefabk" ) 166 167 self.ListBox__HaeufigBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 168 169 self.ListBox__HaeufigBegr.wxObjekt.Bind( wx.EVT_KEY_DOWN 170 , self.__ereignisUebersezung__ ) 171 172 self.ListBox__HaeufigBegr.wxObjekt.Bind( wx.EVT_LISTBOX 173 , self.__ereignisNotizenAnzeigen__ ) 174 175 self.ListBox__HaeufigBegr.wxObjekt.SetMinSize( ( -1, 160 ) ) 176 177 178 # 179 # -------------------------------------------------------------------------------- 180 # -- Gefahrenstufe ---------------------------------------------------------- 181 # -------------------------------------------------------------------------------- 182 # 183 self.ComboBox__GefStufe = FlexGridSizerWxObjTitel( parent = self 184 , wxObj = ComboBoxErg( self 185 , choices = [] 186 , style = wx.CB_DROPDOWN|wx.CB_READONLY 187 , Notizen = self.__Notizen__ ) 188 , orient = wx.VERTICAL 189 , titel = u"Gefahrenstufe" ) 190 191 self.ComboBox__GefStufe.wxObjekt.nimmWerteStatusleiste( 192 DBSpNameErlaeuterung = u"Die Auswirkung des repräsentativen Gefahrenszenarios." 193 , DBSpName = "ps.abk / prj.p_psabk / prj.pl_psgefabk" ) 194 195 self.ComboBox__GefStufe.wxObjekt.Bind( wx.EVT_COMBOBOX, self.__ereignisRisikobewertung__ ) 196 197 self.ListBox__GefStufeBegr = FlexGridSizerWxObjTitel( parent = self 198 , wxObj = ListBoxErg( self 199 , style = wx.BORDER_SUNKEN | wx.LB_SORT 200 , Notizen = self.__Notizen__ ) 201 , titel = u"Begründung der Gefahrenstufe" 202 , orient = wx.VERTICAL ) 203 204 self.ListBox__GefStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 205 206 self.ListBox__GefStufeBegr.wxObjekt.nimmWerteStatusleiste( 207 DBSpNameErlaeuterung = u"Die Begründung der Auswirkung des repräsentativen Gefahrenszenarios." 208 , DBSpName = "prj.pl_psgefabk" ) 209 210 self.ListBox__GefStufeBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 211 212 self.ListBox__GefStufeBegr.wxObjekt.Bind( wx.EVT_KEY_DOWN 213 , self.__ereignisUebersezung__ ) 214 215 self.ListBox__GefStufeBegr.wxObjekt.Bind( wx.EVT_LISTBOX 216 , self.__ereignisNotizenAnzeigen__ ) 217 218 self.ListBox__GefStufeBegr.wxObjekt.SetMinSize( ( -1, 160 ) ) 219 220 221 222 # 223 # -------------------------------------------------------------------------------- 224 # -- Risikostufe ---------------------------------------------------------- 225 # -------------------------------------------------------------------------------- 226 # 227 self.TCASRisikoStufe = FlexGridSizerWxObjTitel( parent = self 228 , wxObj = TextCtrlErgAuswStatisch( parent = self 229 , Notizen = self.__Notizen__ ) 230 , orient = wx.VERTICAL 231 , titel = u"Risikostufe" ) 232 233 self.TCASRisikoStufe.wxObjekt.nimmWerteStatusleiste( 234 DBSpNameErlaeuterung = u"Das resultierende Risiko des repräsentativen Gefahrenszenarios." 235 , DBSpName = "ps.abk / prj.p_psabk / prj.pl_psgefabk" ) 236 237 238 239 self.ListBox__RisikoStufeBegr = FlexGridSizerWxObjTitel( parent = self 240 , wxObj = ListBoxErg( self 241 , style = wx.BORDER_SUNKEN | wx.LB_SORT 242 , Notizen = self.__Notizen__ ) 243 , titel = u"Bewertung der Risikostufe" 244 , orient = wx.VERTICAL ) 245 246 self.ListBox__RisikoStufeBegr.wxObjekt.SetBackgroundColour( farbeBearbeiten ) 247 248 self.ListBox__RisikoStufeBegr.wxObjekt.nimmWerteStatusleiste( 249 DBSpNameErlaeuterung = u"Die Bewertung des Risikos des repräsentativen Gefahrenszenarios." 250 , DBSpName = "prj.pl_psgefabk" ) 251 252 self.ListBox__RisikoStufeBegr.wxObjekt.nimmTooltip( self.__txtUebersetzung__ ) 253 254 self.ListBox__RisikoStufeBegr.wxObjekt.Bind( wx.EVT_KEY_DOWN 255 , self.__ereignisUebersezung__ ) 256 257 self.ListBox__RisikoStufeBegr.wxObjekt.Bind( wx.EVT_LISTBOX 258 , self.__ereignisNotizenAnzeigen__ ) 259 260 self.ListBox__RisikoStufeBegr.wxObjekt.SetMinSize( ( -1, 160 ) ) 261 262 263 264 265 # 266 # -------------------------------------------------------------------------------- 267 # -- Layout setzen ---------------------------------------------------------- 268 # -------------------------------------------------------------------------------- 269 # 270 271 # 272 # -- Häufigkeit, Gefahrenstufe ------------------------------------------ 273 # 274 FlexGridSizer_Haeufig = wx.FlexGridSizer( rows = 2, cols = 2, vgap = 10, hgap = 10 ) 275 276 FlexGridSizer_Haeufig.AddGrowableRow( idx = 1, proportion = 1 ) 277 278 FlexGridSizer_Haeufig.AddGrowableCol( idx = 0, proportion = 1 ) 279 FlexGridSizer_Haeufig.AddGrowableCol( idx = 1, proportion = 1 ) 280 281 FlexGridSizer_Haeufig.Add( self.ComboBox__Haeufig 282 , flag = wx.EXPAND ) 283 284 FlexGridSizer_Haeufig.Add( self.ComboBox__GefStufe 285 , flag = wx.EXPAND ) 286 287 FlexGridSizer_Haeufig.Add( self.ListBox__HaeufigBegr 288 , flag = wx.EXPAND ) 289 290 FlexGridSizer_Haeufig.Add( self.ListBox__GefStufeBegr 291 , flag = wx.EXPAND ) 292 293 294 295 # 296 # -- Hauptlayout ---------------------------------------------------------- 297 # 298 FlexGridSizer = wx.FlexGridSizer( rows = 3, cols = 1, vgap = 10, hgap = 0 ) 299 300 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 1 ) 301 FlexGridSizer.AddGrowableRow( idx = 2, proportion = 1 ) 302 303 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 304 305 306 FlexGridSizer.Add( FlexGridSizer_Haeufig 307 , flag = wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND 308 , border = 10 ) 309 310 FlexGridSizer.Add( self.TCASRisikoStufe 311 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 312 , border = 10 ) 313 314 FlexGridSizer.Add( self.ListBox__RisikoStufeBegr 315 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 316 , border = 10 ) 317 318 319 # 320 # -- in das Fenster einpassen ------------------------------------------ 321 # 322 self.SetSizerAndFit( FlexGridSizer ) 323 324 325 326 # 327 # -- Risikobewertung initialisieren ---------------------------------- 328 # -- aktuelles Gefahrenszenario auslesen ---------------------------------- 329 # 330 self.init_Risikobewertung() 331 self.liesDB()
332 333 334 335 336 # 337 # ------------------------------------------------------------------------------------ 338 # -- Notizen in der Statusleiste anzeigen ---------------------------------- 339 # ------------------------------------------------------------------------------------ 340 #
341 - def __ereignisNotizenAnzeigen__( self, ereignis ):
342 """ 343 Notizen in der Statusleiste anzeigen 344 345 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 346 @type ereignis: C{wx - Ereignisobjekt} 347 """ 348 349 # 350 # -- Notizen löschen -------------------------------------------------- 351 # 352 self.__Notizen__.TextCtrlErg__li.nimmWert( "" ) 353 354 355 # 356 # -- Häufigkeit, Gefahrenstufe, Risikostufe ---------------------------------- 357 # 358 daten__GefszenId_AbkId = self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt 359 360 if( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() ) : 361 362 daten__GefszenId_AbkId = self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt 363 364 if( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 365 366 daten__GefszenId_AbkId = self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt 367 368 369 370 # 371 # -- linker Bereich der Statusleiste -------------------------- 372 # 373 if( self.__dbVerbindung__.ps_gefszenario_id in daten__GefszenId_AbkId ) : 374 375 self.__Notizen__.TextCtrlErg__li.nimmWert( daten__GefszenId_AbkId[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 376 377 378 379 # 380 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 381 # -- ausgewertet werden kann -------------------------- 382 # 383 if( ereignis != None ) : ereignis.Skip( skip = True )
384 385 386 387 # 388 # ------------------------------------------------------------------------------------ 389 # -- Die Risikobewertung wurde geändert ---------------------------------- 390 # ------------------------------------------------------------------------------------ 391 #
392 - def __ereignisRisikobewertung__( self, ereignis ):
393 """ 394 Ein C{wx - Objekt} der Risikobewertung wurde verändert. 395 396 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 397 @type ereignis: C{wx - Ereignisobjekt} 398 """ 399 400 # 401 # -- Risikostufe setzen -------------------------------------------------- 402 # 403 hfgGef = ( str( self.ComboBox__Haeufig.wxObjekt.gibDbId() ) 404 + '-' 405 + str( self.ComboBox__GefStufe.wxObjekt.gibDbId() ) ) 406 407 if( hfgGef not in self.__dbVerbindung__.daten__psAbk_Risikomatrix ) : 408 409 # 410 # -- Das Ereignis weiterreichen, damit es weiter ------------------ 411 # -- ausgewertet werden kann ------------------ 412 # 413 ereignis.Skip( skip = True ) 414 return 415 416 self.TCASRisikoStufe.wxObjekt.selektiereWert( 417 dbId = self.__dbVerbindung__.daten__psAbk_Risikomatrix[hfgGef][0][0] ) 418 self.TCASRisikoStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = True ) 419 420 421 422 # 423 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 424 # -- ausgewertet werden kann -------------------------- 425 # 426 ereignis.Skip( skip = True )
427 428 429 430 431 # 432 # ------------------------------------------------------------------------------------ 433 # -- Liegt eine Korrektur von Rechtschreibfehlern vor ? ------------------ 434 # ------------------------------------------------------------------------------------ 435 #
436 - def __ereignisUebersezung__( self, ereignis ):
437 """ 438 Übersetzung anzeigen / bearbeiten 439 440 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 441 @type ereignis: C{wx - Ereignisobjekt} 442 """ 443 444 # 445 # -- Ungültige Tastaturereignisse abfangen ---------------------------------- 446 # 447 if( not( ereignis.GetKeyCode() == wx.WXK_F3 ) ) : 448 449 return 450 451 452 453 # 454 # -- Der Status der Benutzeränderung ist irrelevant ---------- 455 # -- (Vorliegende Änderungen werden an den Rückgabewerten von ---------- 456 # -- >BearbeiteUebersetzung(...)< erkannt) ---------- 457 # 458 self.ListBox__HaeufigBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 459 self.ListBox__GefStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 460 self.ListBox__RisikoStufeBegr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 461 462 463 464 # 465 # -- Änderungen an Combobox Häufigkeit / Gefahrenstufe / Risikostufe ---------- 466 # -- in die DB schreiben (konsistenten Zustand herstellen) ---------- 467 # 468 self.schreibDB() 469 470 471 472 # 473 # -- Aktuelle Werte ---------------------------------------------------------- 474 # 475 listeWerte = [] 476 sprUebvarId = None 477 notizen = None 478 479 480 481 # 482 # -- Begründung der Häufigkeit ------------------------------------------ 483 # -- Begründung der Gefahrenstufe ------------------------------------------ 484 # -- Bewertung der Risikostufe ------------------------------------------ 485 # -- ------------------ 486 # -- [0] prj.zeige__pl_psgefabk.ps_abk_id ------------------ 487 # -- [1] prj.zeige__pl_psgefabk.spr_uebvar_id_zus ------------------ 488 # -- [2] prj.zeige__pl_psgefabk.notizen ------------------ 489 # 490 if( ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() ) : 491 492 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt ) : 493 494 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 495 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 496 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 497 498 else : 499 500 return 501 502 elif( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() ) : 503 504 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt ) : 505 506 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 507 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 508 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 509 510 else : 511 512 return 513 514 elif( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 515 516 if( self.__dbVerbindung__.ps_gefszenario_id in self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt ) : 517 518 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] ) 519 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] ) 520 listeWerte.append( self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ) 521 522 else : 523 524 return 525 526 else : 527 528 return 529 530 sprUebvarId = listeWerte[1] 531 notizen = listeWerte[2] 532 533 534 535 # 536 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 537 # 538 dlg = BearbeiteUebersetzung( parent = self 539 , Notizen = self.__Notizen__ 540 , Fortschritt = self.__Fortschritt__ 541 , dbVerbindung = self.__dbVerbindung__ 542 , sprUebvarId = sprUebvarId 543 , notizen_db = None 544 , notizenKontext_db = notizen ) 545 546 547 548 # 549 # -- Dialog aufrufen ---------------------------------------------------------- 550 # 551 dlg.ShowModal() 552 dlg.Destroy() 553 554 555 # 556 # -- Fortschrittsdialog -------------------------------------------------- 557 # -- Delta = 100 / ( 4 ) -------------------------------------------------- 558 # 559 self.__Fortschritt__.nimmDelta( delta = 100 / 4 ) 560 561 562 563 # 564 # -- Änderungen übernehmen -------------------------------------------------- 565 # 566 if( dlg.gibWerte()[0] ) : 567 568 # 569 # -- >spr.uebvar.id< und/oder >notizen< geändert ------------------ 570 # 571 istAenderungId = ( dlg.gibWerte()[1] != sprUebvarId ) 572 istAenderungIdNotizen = ( dlg.gibWerte()[2] != unicode( notizen, 'utf-8' ) ) 573 574 # 575 # -- Begründung der Häufigkeit ---------------------------------- 576 # -- Begründung der Gefahrenstufe ---------------------------------- 577 # -- Bewertung der Risikostufe ---------------------------------- 578 # 579 580 # 581 # -- Datenbank aktualisieren ---------- 582 # -- 1. bisherige Begründung als 'Entfernt' markieren ---------- 583 # -- 2. neue Begründung übernehmen ---------- 584 # 585 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( Fortschritt = self.__Fortschritt__ 586 , listeWerte = [# 587 # -- ps_abk_id 588 # 589 listeWerte[0] 590 # 591 # -- spr_uebvar_id_zus 592 # 593 , listeWerte[1] 594 # 595 # -- notizen 596 # 597 , listeWerte[2] ] 598 # 599 # -- logentfernt ---------- 600 # 601 , logentfernt = 'true' ) 602 603 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( Fortschritt = self.__Fortschritt__ 604 , listeWerte = [# 605 # -- ps_abk_id 606 # 607 listeWerte[0] 608 # 609 # -- spr_uebvar_id_zus 610 # 611 , dlg.gibWerte()[1] 612 # 613 # -- notizen 614 # 615 , dlg.gibWerte()[2] ] ) 616 617 618 # 619 # -- permanente Datenstruktur aktualisieren -------------------------- 620 # -- Änderungen in Risikobewertung übernehmen -------------------------- 621 # 622 if( ereignis.GetId() == self.ListBox__HaeufigBegr.wxObjekt.GetId() ) : 623 624 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt.clear() 625 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 626 627 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 628 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 629 , ListBoxErg = self.ListBox__HaeufigBegr.wxObjekt 630 , psAbkTyp = 'RH' ) 631 632 elif( ereignis.GetId() == self.ListBox__GefStufeBegr.wxObjekt.GetId() ) : 633 634 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt.clear() 635 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 636 637 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 638 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 639 , ListBoxErg = self.ListBox__GefStufeBegr.wxObjekt 640 , psAbkTyp = 'RG' ) 641 642 elif( ereignis.GetId() == self.ListBox__RisikoStufeBegr.wxObjekt.GetId() ) : 643 644 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt.clear() 645 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 646 647 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 648 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 649 , ListBoxErg = self.ListBox__RisikoStufeBegr.wxObjekt 650 , psAbkTyp = 'RR' ) 651 652 653 # 654 # -- Fortschrittsdialog schließen ------------------------------------------ 655 # 656 self.__Fortschritt__.loescheFortschritt()
657 658 659 660 661 # 662 # ------------------------------------------------------------------------------------ 663 # -- Auswahlfelder initialisieren ------------------------------------------ 664 # ------------------------------------------------------------------------------------ 665 #
666 - def init_Risikobewertung( self ):
667 """ 668 Methode die aufgerufen wird, wenn Projekt oder Sprache geändert wurden. 669 """ 670 671 # 672 # -- Alle Abkürzungen eintragen ------------------------------------------ 673 # 674 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 675 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 676 , psAbkTyp = "RH" ) 677 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 678 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 679 , psAbkTyp = "RG" ) 680 self.__dbVerbindung__.selektiere__psAbk__Sprache__Projekt( 681 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 682 , psAbkTyp = "RR" )
683 684 685 686 687 688 689 # 690 # ------------------------------------------------------------------------------------ 691 # -- Datenbank auslesen -------------------------------------------------- 692 # ------------------------------------------------------------------------------------ 693 #
694 - def liesDB( self ):
695 """ 696 Methode die aufgerufen wird, wenn die Datenbankwerte im Fenster dargestellt werden sollen. 697 """ 698 699 # 700 # -------------------------------------------------------------------------------- 701 # -- Gefahrenszenario-Id ist nicht vorhanden -------------------------- 702 # -- -> alles löschen -------------------------- 703 # -------------------------------------------------------------------------------- 704 # 705 self.ComboBox__Haeufig.wxObjekt.SetSelection( 0 ) 706 self.ListBox__HaeufigBegr.wxObjekt.loescheAlles() 707 self.ComboBox__GefStufe.wxObjekt.SetSelection( 0 ) 708 self.ListBox__GefStufeBegr.wxObjekt.loescheAlles() 709 self.TCASRisikoStufe.wxObjekt.selektiereWert( dbId = 0 ) 710 self.ListBox__RisikoStufeBegr.wxObjekt.loescheAlles() 711 712 713 714 # 715 # -- Häufigkeit ------------------------------------------ 716 # -- Gefahrenstufe ------------------------------------------ 717 # -- Risikostufe ------------------------------------------ 718 # 719 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 720 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__Haeufig.wxObjekt 721 , ListBoxErg = self.ListBox__HaeufigBegr.wxObjekt 722 , psAbkTyp = 'RH' ) 723 724 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 725 ComboBoxErg_ListBoxErgSpWTitelAL = self.ComboBox__GefStufe.wxObjekt 726 , ListBoxErg = self.ListBox__GefStufeBegr.wxObjekt 727 , psAbkTyp = 'RG' ) 728 729 self.__dbVerbindung__.selektiere__GefszenId_AbkId__Sprache__Projekt( 730 ComboBoxErg_ListBoxErgSpWTitelAL = self.TCASRisikoStufe.wxObjekt 731 , ListBoxErg = self.ListBox__RisikoStufeBegr.wxObjekt 732 , psAbkTyp = 'RR' )
733 734 735 736 737 738 739 740 # 741 # ------------------------------------------------------------------------------------ 742 # -- Datenbank schreiben -------------------------------------------------- 743 # ------------------------------------------------------------------------------------ 744 #
745 - def schreibDB( self ):
746 """ 747 Methode die aufgerufen wird, um den Wert der Gefährdeten Personen, Häufigkeit, Gefahrenstufe, Risikostufe in die Datenbank zu schreiben. 748 """ 749 750 # 751 # -- Fortschrittsdialog -------------------------------------------------- 752 # -- Delta = 100 / ( 5 ) -------------------------------------------------- 753 # 754 self.__Fortschritt__.nimmDelta( delta = 100 / 5 ) 755 756 757 758 # 759 # -------------------------------------------------------------------------------- 760 # -- Häufigkeit ---------------------------------------------------------- 761 # -------------------------------------------------------------------------------- 762 # 763 if( self.ComboBox__Haeufig.wxObjekt.gibIstVomBenutzerGeaendert() ) : 764 765 # 766 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 767 # 768 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 769 Fortschritt = self.__Fortschritt__ 770 , listeWerte = [ 771 # 772 # -- ps_abk_id --------------------------------------------------------- 773 # 774 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 775 # 776 # -- spr_uebvar_id_zus ------------------------------------------------- 777 # 778 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 779 # 780 # -- notizen ----------------------------------------------------------- 781 # 782 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 783 # 784 # -- logentfernt --------------------------------------------------------- 785 # 786 , logentfernt = 'true' ) 787 788 789 # 790 # -- aktuelle Abkürung hinzufügen ---------------------------------- 791 # 792 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 793 Fortschritt = self.__Fortschritt__ 794 , listeWerte = [ 795 # 796 # -- ps_abk_id --------------------------------------------------------- 797 # 798 self.ComboBox__Haeufig.wxObjekt.gibDbId() 799 # 800 # -- spr_uebvar_id_zus ------------------------------------------------- 801 # 802 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 803 # 804 # -- notizen ----------------------------------------------------------- 805 # 806 , self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 807 808 809 # 810 # -- permanente Datenstruktur aktualisieren -------------------------- 811 # 812 self.__dbVerbindung__.daten__GefszenId_AbkId_rh__Sprache__Projekt.clear() 813 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 814 815 816 817 # 818 # -------------------------------------------------------------------------------- 819 # -- Gefahrenstufe ---------------------------------------------------------- 820 # -------------------------------------------------------------------------------- 821 # 822 if( self.ComboBox__GefStufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 823 824 # 825 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 826 # 827 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 828 Fortschritt = self.__Fortschritt__ 829 , listeWerte = [ 830 # 831 # -- ps_abk_id --------------------------------------------------------- 832 # 833 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 834 # 835 # -- spr_uebvar_id_zus ------------------------------------------------- 836 # 837 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 838 # 839 # -- notizen ----------------------------------------------------------- 840 # 841 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 842 # 843 # -- logentfernt --------------------------------------------------------- 844 # 845 , logentfernt = 'true' ) 846 847 848 # 849 # -- aktuelle Abkürung hinzufügen ---------------------------------- 850 # 851 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 852 Fortschritt = self.__Fortschritt__ 853 , listeWerte = [ 854 # 855 # -- ps_abk_id --------------------------------------------------------- 856 # 857 self.ComboBox__GefStufe.wxObjekt.gibDbId() 858 # 859 # -- spr_uebvar_id_zus ------------------------------------------------- 860 # 861 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 862 # 863 # -- notizen ----------------------------------------------------------- 864 # 865 , self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 866 867 868 # 869 # -- permanente Datenstruktur aktualisieren -------------------------- 870 # 871 self.__dbVerbindung__.daten__GefszenId_AbkId_rg__Sprache__Projekt.clear() 872 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 873 874 875 876 # 877 # -------------------------------------------------------------------------------- 878 # -- Risikostufe ---------------------------------------------------------- 879 # -------------------------------------------------------------------------------- 880 # 881 if( self.TCASRisikoStufe.wxObjekt.gibIstVomBenutzerGeaendert() ) : 882 883 # 884 # -- bisherige Abkürung als 'Entfernt' markieren ------------------ 885 # 886 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 887 Fortschritt = self.__Fortschritt__ 888 , listeWerte = [ 889 # 890 # -- ps_abk_id --------------------------------------------------------- 891 # 892 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][0] 893 # 894 # -- spr_uebvar_id_zus ------------------------------------------------- 895 # 896 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 897 # 898 # -- notizen ----------------------------------------------------------- 899 # 900 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] 901 # 902 # -- logentfernt --------------------------------------------------------- 903 # 904 , logentfernt = 'true' ) 905 906 907 # 908 # -- aktuelle Abkürung hinzufügen ---------------------------------- 909 # 910 self.__dbVerbindung__.schreibe__prjPlPsGefAbk( 911 Fortschritt = self.__Fortschritt__ 912 , listeWerte = [ 913 # 914 # -- ps_abk_id --------------------------------------------------------- 915 # 916 self.TCASRisikoStufe.wxObjekt.gibDbId() 917 # 918 # -- spr_uebvar_id_zus ------------------------------------------------- 919 # 920 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][3] 921 # 922 # -- notizen ----------------------------------------------------------- 923 # 924 , self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt[self.__dbVerbindung__.ps_gefszenario_id][0][2] ] ) 925 926 # 927 # -- permanente Datenstruktur aktualisieren -------------------------- 928 # 929 self.__dbVerbindung__.daten__GefszenId_AbkId_rr__Sprache__Projekt.clear() 930 self.__dbVerbindung__.init__GefszenId_AbkId__Sprache__Projekt( Fortschritt = self.__Fortschritt__ ) 931 932 933 # 934 # -- Fortschrittsdialog schließen ------------------------------------------ 935 # 936 self.__Fortschritt__.loescheFortschritt() 937 938 939 940 # 941 # -- hier ausgewertete Benutzeränderungen zurücksetzen ------------------ 942 # 943 self.ComboBox__Haeufig.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 944 self.ComboBox__GefStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 945 self.TCASRisikoStufe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
946