Skip to content
Snippets Groups Projects
Commit 65c2c44f authored by Anders H. Rebner's avatar Anders H. Rebner
Browse files
parents 0417fde5 fe81ec72
No related branches found
No related tags found
No related merge requests found
Pipeline #71055 failed
......@@ -36,3 +36,9 @@ tags
.vim
__pycache__/
# Database
soitool/Database
# Compiled bytecode of Python source files
*.pyc
......@@ -55,7 +55,19 @@ job_test_gui_ubuntu:
- python3 --version
- DISPLAY=':10.0' python3 -m unittest test.test_main
# name **må** være pages
job_pages_smoke_test:
stage: deploy
image: morkolai/soitool-ci
script:
- mkdir public
- pdoc --version
- pdoc soitool --html
- mv ./html/soitool/* ./public
# never run for master branch
except:
- master
# name has to be pages
pages:
stage: deploy
image: morkolai/soitool-ci
......@@ -67,6 +79,7 @@ pages:
artifacts:
paths:
- public
# only run for master branch
only:
- master
......@@ -63,7 +63,9 @@ docker login
docker push morkolai/soitool-ci
```
## Arbeidsmetode - Bruk av `git`
## Arbeidsmetode
### Bruk av `git`
Arbeid skal ikke skje direkte på `master` branch. For hver oppgave en vil utføre skal en ny branch lages, og denne må senere merges inn ved hjelp av en "Merge Request". Gjennomgang av dette er lagt fram under:
......@@ -81,11 +83,23 @@ git push origin <branch navn>
Merging til master skal skje via Merge Requests i GitLab.
### Om arbeid utføres på feil branch
#### Om arbeid utføres på feil branch
`git stash` kan brukes for å lagre endringer i et "stash". Deretter kan en hoppe til riktig branch med `git checkout <branch navn>`, og kjøre `git stash pop`.
## Arbeidsmetode - Hvordan skrive tester
#### Ved feil commit melding
Om det er siste commit som er problemet, og den ikke har blitt pushet opp, kan en gjøre følgende for å endre commit-melding
```
git commit --amend
```
Om en vil endre tidligere commits eller endringen har blitt pushet opp: rop om hjelp!
> "When in danger or in doubt, rUn in circles, scream and shout"
### Hvordan skrive tester
Hver modul burde testes. I praksis vil dette si at hver fil under `soitool/` med navn `X.py` burde ha en tilsvarende fil under `test/` med navn `test_X.py`.
......
"""Hovedvinduet."""
import sys
import os
from PySide2.QtWidgets import QTabWidget, QWidget, QMainWindow, \
QApplication, QHBoxLayout, QVBoxLayout, QPushButton, QTreeWidget, \
QLabel, QAction
from PySide2 import QtGui
class MainWindow(QMainWindow):
"""MainWindow, skallet til hele applikasjonen."""
def __init__(self): # pylint: disable = R0914, R0915
super().__init__()
self.setGeometry(100, 100, 800, 800)
self.setWindowTitle("SOI-tool")
self.statusBar()
# flytt ut til egen funksjon, for setup av menubar
menu = self.menuBar()
file_menu = menu.addMenu("SOI")
codebook = menu.addMenu("Kodebok")
help_menu = menu.addMenu("Hjelp")
# Hadde egentlig help her, men "klagegutten" klagde på det
# New SOI
new_soi = QAction("Ny SOI", self)
new_soi.setShortcut("Ctrl+n")
new_soi.setStatusTip("Opprett en ny SOI")
file_menu.addAction(new_soi)
# new_soi.triggered.connect(self.<nySOI>)
# Open file
open_file = QAction("Åpne", self)
open_file.setShortcut("Ctrl+o")
open_file.setStatusTip("Åpne en SOI fra fil")
file_menu.addAction(open_file)
# Open file from DB
open_file_db = QAction("Åpne fra DB", self)
open_file_db.setShortcut("Ctrl+d")
open_file_db.setStatusTip("Åpne en SOI fra databasen")
file_menu.addAction(open_file_db)
# Preview SOI
preview_soi = QAction("Forhåndsvis")
preview_soi.setShortcut("Ctrl+p")
preview_soi.setStatusTip("Forhåndsvis SOI som PDF")
file_menu.addAction(preview_soi)
# Save to DB
save_soi = QAction("Lagre i DB", self)
save_soi.setShortcut("Ctrl+s")
save_soi.setStatusTip("Lagre SOI i databasen")
file_menu.addAction(save_soi)
# Export
export = QAction("Eksporter", self)
export.setShortcut("Ctrl+e")
export.setStatusTip("Eksporter SOI til annet filformat")
file_menu.addAction(export)
# Small codebook
small_codebook = QAction("Liten kodebok", self)
small_codebook.setStatusTip("Vis liten kodebok")
codebook.addAction(small_codebook)
# Big codebook
big_codebook = QAction("Stor kodebok", self)
big_codebook.setStatusTip("Vis stor kodebok")
codebook.addAction(big_codebook)
# Hot keys
hotkeys = QAction("Hurtigtaster", self)
hotkeys.setStatusTip("Vis oversikt over hurtigtaster")
help_menu.addAction(hotkeys)
# Easy use
easy_use = QAction("Enkel bruk", self)
easy_use.setStatusTip("Vis enkel bruk av programvaren")
help_menu.addAction(easy_use)
# Legger til MainWidget som en tab, kanskje flytt ut til egen funksjon
tabs = QTabWidget()
tab = MainWidget()
tabs.addTab(tab, "MainTab")
self.setCentralWidget(tabs)
# Add HV logo
filename = 'media/HVlogo.PNG'
dirname = os.path.dirname(__file__)
filepath = os.path.join(dirname, filename)
self.setWindowIcon(QtGui.QIcon(filepath))
class MainWidget(QWidget):
"""Hovedwidget til applikasjonen, dette er det som blir tabs."""
def __init__(self):
super().__init__()
layout1 = QHBoxLayout()
layout2 = QVBoxLayout()
# New module button
new_module = QPushButton("Ny modul")
new_module.setShortcut("Ctrl+m")
new_module.setStatusTip("Legg til en ny modul")
tree_view = QTreeWidget()
setup = QPushButton("Oppsett")
layout2.addWidget(tree_view)
layout2.addWidget(new_module)
layout2.addWidget(setup)
view = ViewArea()
layout1.addLayout(layout2, 2)
layout1.addWidget(view, 8)
self.setLayout(layout1)
class ViewArea(QWidget):
"""Widget som kan byttes ut med view, edit etc."""
def __init__(self):
super().__init__()
test = QLabel("Test")
layout = QHBoxLayout()
layout.addWidget(test)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
WINDOW = MainWindow()
WINDOW.show()
app.exec_()
soitool/media/HVlogo.png

82.5 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment