def formQuizStart(relation, fds, mvds): inputString = "<div class=\"well\">Du hast folgendes eingegeben:</div>" if DBnormalizer.longAttributeNamesUsed(): inputString = inputString = inputString + views.inputToString( relation, fds, mvds) inputString = inputString + "<div class=\"well\">Dass du gleich nicht so viel tippen musst, machen wir daraus mal das hier:</div>" DBnormalizer.resetDictionaries() inputString = inputString + views.inputToString(relation, fds, mvds) relationString = views.setOfAttributesToString(relation) fdsString = views.fdsToString(fds) + views.mvdsToString(mvds) html = """<form class="form" action="quiz.py" method="POST">""" html = html + "<p>Willkommen beim Quiz.</p>" html = html + """<input type="hidden" value=" """ + relationString + """" name="relation"></input> <input type="hidden" value=" """ + fdsString + """" name="fds"></input> <div class="row"> <div class="col-xs-2 pull-right"> <br/> <button id="step" name="step" type="submit" class="btn btn-primary" value="1">Start</button> </div> </div> </form> """ return views.getJumbotron("Hallo.", html) + inputString
def setOfAttributesToString(attributes, key=None): setOfAttributesString = "" delimiter = "" for i, attr in enumerate(sortSet(attributes)): if attr != DBnormalizer.EMPTY_SET: if key is not None and attr in key: underlineAttribute = True else: underlineAttribute = False if DBnormalizer.longAttributeNamesUsed(): attr = DBnormalizer.dictionaryReplToName[attr] if i < len(attributes) - 1: delimiter = ", " else: delimiter = "" elif len(attr) > 1: #fun mode if DBnormalizer.EMPTY_SET in attributes: offset = 2 else: offset = 1 if i < len(attributes) - offset: delimiter = ", " else: delimiter = "" setOfAttributesString = setOfAttributesString + underlineString( attr, underlineAttribute) + delimiter return setOfAttributesString
def synthesealgorithmToString(algorithmResult, satisfiedNormalForms): if DBnormalizer.longAttributeNamesUsed(): numberOfColumns = 2 else: numberOfColumns = 4 if satisfiedNormalForms[2]: #original schema was already in 3NF. Let the user know this info = infoNFwasAlreadySatisfied("3NF") else: info = "" resultString = getPanelHeading("synthese", False, info) + """<div class="row">""" resultString = resultString + wrapInPanel( "<span class='badge'>1</span> Kanonische Überdeckung", fdsToHtmlString(algorithmResult[0]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>2</span> Relationsschemata formen", schemaToString(algorithmResult[1][0], algorithmResult[1][1]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>3</span> Schlüssel hinzufügen", schemaToString(algorithmResult[2][0], algorithmResult[2][1]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>4</span> Redundante Schemata eliminieren", "<strong>" + schemaToString(algorithmResult[3][0], algorithmResult[3][1]) + "</strong>", numberOfColumns) resultString = resultString + """</div>""" return resultString
def setOfAttributesToString(attributes, key=None): setOfAttributesString="" delimiter="" for i,attr in enumerate(sortSet(attributes)): if attr != DBnormalizer.EMPTY_SET: if key is not None and attr in key: underlineAttribute=True else: underlineAttribute=False if DBnormalizer.longAttributeNamesUsed(): attr = DBnormalizer.dictionaryReplToName[attr] if i < len(attributes)-1: delimiter=", " else: delimiter="" elif len(attr)>1: #fun mode if DBnormalizer.EMPTY_SET in attributes: offset = 2 else: offset=1 if i < len(attributes)-offset : delimiter=", " else: delimiter="" setOfAttributesString = setOfAttributesString + underlineString(attr, underlineAttribute) + delimiter return setOfAttributesString
def canonicalCoverToString(algorithmResult): if DBnormalizer.longAttributeNamesUsed(): numberOfColumns = 2 else: numberOfColumns = 4 resultString = getPanelHeading("canonicalCover",False)+"""<div class="row">""" resultString = resultString+wrapInPanel("<span class='badge'>1</span> Linksreduktion", fdsToHtmlString(algorithmResult[0]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>2</span> Rechtsreduktion", fdsToHtmlString(algorithmResult[1]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>3</span> α→∅ entfernen", fdsToHtmlString(algorithmResult[2]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>4</span> FDs zusammenfassen", "<strong>"+fdsToHtmlString(algorithmResult[3])+"</strong>",numberOfColumns) resultString = resultString + """</div>""" return resultString
def synthesealgorithmToString(algorithmResult, satisfiedNormalForms): if DBnormalizer.longAttributeNamesUsed(): numberOfColumns = 2 else: numberOfColumns = 4 if satisfiedNormalForms[2]: #original schema was already in 3NF. Let the user know this info = infoNFwasAlreadySatisfied("3NF") else: info = "" resultString = getPanelHeading("synthese",False,info)+"""<div class="row">""" resultString = resultString+wrapInPanel("<span class='badge'>1</span> Kanonische Überdeckung", fdsToHtmlString(algorithmResult[0]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>2</span> Relationsschemata formen", schemaToString(algorithmResult[1][0], algorithmResult[1][1]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>3</span> Schlüssel hinzufügen", schemaToString(algorithmResult[2][0], algorithmResult[2][1]),numberOfColumns) resultString = resultString+wrapInPanel("<span class='badge'>4</span> Redundante Schemata eliminieren", "<strong>"+schemaToString(algorithmResult[3][0], algorithmResult[3][1])+"</strong>",numberOfColumns) resultString = resultString + """</div>""" return resultString
def canonicalCoverToString(algorithmResult): if DBnormalizer.longAttributeNamesUsed(): numberOfColumns = 2 else: numberOfColumns = 4 resultString = getPanelHeading("canonicalCover", False) + """<div class="row">""" resultString = resultString + wrapInPanel( "<span class='badge'>1</span> Linksreduktion", fdsToHtmlString(algorithmResult[0]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>2</span> Rechtsreduktion", fdsToHtmlString(algorithmResult[1]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>3</span> α→∅ entfernen", fdsToHtmlString(algorithmResult[2]), numberOfColumns) resultString = resultString + wrapInPanel( "<span class='badge'>4</span> FDs zusammenfassen", "<strong>" + fdsToHtmlString(algorithmResult[3]) + "</strong>", numberOfColumns) resultString = resultString + """</div>""" return resultString
def formQuizStart(relation, fds, mvds): inputString ="<div class=\"well\">Du hast folgendes eingegeben:</div>" if DBnormalizer.longAttributeNamesUsed(): inputString = inputString = inputString + views.inputToString(relation, fds,mvds) inputString = inputString + "<div class=\"well\">Dass du gleich nicht so viel tippen musst, machen wir daraus mal das hier:</div>" DBnormalizer.resetDictionaries() inputString = inputString + views.inputToString(relation, fds,mvds) relationString = views.setOfAttributesToString(relation) fdsString = views.fdsToString(fds)+views.mvdsToString(mvds) html = """<form class="form" action="quiz.py" method="POST">""" html = html + "<p>Willkommen beim Quiz.</p>" html = html + """<input type="hidden" value=" """+relationString+"""" name="relation"></input> <input type="hidden" value=" """+fdsString+"""" name="fds"></input> <div class="row"> <div class="col-xs-2 pull-right"> <br/> <button id="step" name="step" type="submit" class="btn btn-primary" value="1">Start</button> </div> </div> </form> """ return views.getJumbotron("Hallo.", html ) + inputString