Added selfgenerating test template
This commit is contained in:
56
test-template-generator/generate.py
Normal file
56
test-template-generator/generate.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from distutils import file_util
|
||||||
|
import os
|
||||||
|
import fileinput
|
||||||
|
import json
|
||||||
|
from sys import argv
|
||||||
|
from shutil import rmtree
|
||||||
|
|
||||||
|
#Copy CSS
|
||||||
|
file_util.copy_file('../resources/css/main.css', './resources/css/main.css')
|
||||||
|
|
||||||
|
jsonPath = './resources/js/tasksJSON.js'
|
||||||
|
jsonData = {}
|
||||||
|
jsonData['tasks'] = []
|
||||||
|
numberOfTasks = int(input('Number of tasks: '))
|
||||||
|
|
||||||
|
for i in range(0, numberOfTasks):
|
||||||
|
#Define variables
|
||||||
|
realTaskNumber = i+1
|
||||||
|
dirPath = './oppgaver/oppgave' + str(realTaskNumber) + '/'
|
||||||
|
htmlPath = dirPath + 'oppgave.html'
|
||||||
|
jsPath = dirPath + 'oppgave.js'
|
||||||
|
|
||||||
|
#Make html file
|
||||||
|
with open('./task-template/oppgave.html', 'r') as file:
|
||||||
|
data = file.read()
|
||||||
|
data = data.replace("taskNumber", str(realTaskNumber))
|
||||||
|
os.makedirs(dirPath)
|
||||||
|
with open(htmlPath, 'w') as file:
|
||||||
|
file.write(data)
|
||||||
|
|
||||||
|
#Make js file
|
||||||
|
with open(jsPath, 'w') as file:
|
||||||
|
file.write('')
|
||||||
|
|
||||||
|
#Add to JSON
|
||||||
|
jsonData['tasks'].append({
|
||||||
|
'name': 'Oppgave ' + str(realTaskNumber),
|
||||||
|
'path': str(htmlPath)
|
||||||
|
})
|
||||||
|
|
||||||
|
jsVariable = "const tasks = " + json.dumps(jsonData)
|
||||||
|
|
||||||
|
#Update JSON
|
||||||
|
with open(jsonPath, 'w') as file:
|
||||||
|
file.write(jsVariable)
|
||||||
|
|
||||||
|
#Delete the template
|
||||||
|
deleteBool = input('Delete the template? (yes/No): ')
|
||||||
|
if deleteBool == "yes":
|
||||||
|
rmtree('./task-template', ignore_errors=True)
|
||||||
|
|
||||||
|
#Delete itself
|
||||||
|
deleteBool = input('Delete the program? (yes/No): ')
|
||||||
|
if deleteBool == "yes":
|
||||||
|
os.remove(argv[0])
|
21
test-template-generator/index.html
Normal file
21
test-template-generator/index.html
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Test</title>
|
||||||
|
<link rel="stylesheet" href="./resources/css/main.css">
|
||||||
|
<script async src="./resources/js/tasksJSON.js"></script>
|
||||||
|
<script async src="./resources/js/linkConnector.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>Test</h1>
|
||||||
|
|
||||||
|
<div class="center">
|
||||||
|
<div class="textboxGrid"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
0
test-template-generator/oppgaver/.keep
Normal file
0
test-template-generator/oppgaver/.keep
Normal file
0
test-template-generator/resources/css/.keep
Normal file
0
test-template-generator/resources/css/.keep
Normal file
10
test-template-generator/resources/js/linkConnector.js
Normal file
10
test-template-generator/resources/js/linkConnector.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const taskArray = tasks.tasks;
|
||||||
|
const grid = document.getElementsByClassName("textboxGrid")[0];
|
||||||
|
|
||||||
|
for (i=0; i<taskArray.length; i++) {
|
||||||
|
let mess = '<div class=linkElement>';
|
||||||
|
mess += '<h2><a href="' + taskArray[i]["path"] + '">' + taskArray[i]["name"] + '</a></h2>';
|
||||||
|
mess += '</div>';
|
||||||
|
|
||||||
|
grid.innerHTML+=mess;
|
||||||
|
}
|
16
test-template-generator/task-template/oppgave.html
Normal file
16
test-template-generator/task-template/oppgave.html
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<title>Oppgave taskNumber</title>
|
||||||
|
<link rel="stylesheet" href="../resources/css/main.css">
|
||||||
|
<script async src="./script.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>Oppgave taskNumber</h1>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
0
test-template-generator/task-template/script.js
Normal file
0
test-template-generator/task-template/script.js
Normal file
Reference in New Issue
Block a user