Skip to content
Snippets Groups Projects
Commit 4ed9db22 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Finish room selector

parent 96530aee
No related branches found
No related tags found
1 merge request!86Merge school-apps
#!/bin/bash
export BABEL_ENV=production
#./node_modules/.bin/babel src -d dist
#./node_modules/browserify/bin/cmd.js src/App.js -o dist/App.js -t [ babelify --presets [ es2015 react ] ]
webpack --config ./webpack-build.config.js --mode development
cp dist/* ../schoolapps/static/support/
This diff is collapsed.
......@@ -168,11 +168,15 @@ const ROOMS_WITH_PRESENTATION_DEVICE = [
];
const OTHER_LOCATIONS = [
"Notebookwagen 1",
"NotebookqAFWN 1",
"Notebookwagen 1. Stock/R 2.06",
"Notebookwagen 2. Stock/R 2.10",
"Notebookwagen 3. Stock/Physik",
"Internetcafe",
"Infopoint/Sekretariatsvorraum",
"Lehrerzimmer (Vorraum)",
"Lehrerzimmer (Hauptraum)"
];
const LOCATIONS = ROOMS_WITH_PRESENTATION_DEVICE.concat(OTHER_LOCATIONS);
function getCategoryOfOption(option) {
for (const category of BASIC_OPTIONS) {
......@@ -306,6 +310,9 @@ class App extends Component {
};
render() {
let LOCATIONS = this.props.rooms.concat(OTHER_LOCATIONS);
LOCATIONS.sort();
console.log(this.state);
const that = this;
const sC = this.state.selectedCategory;
......@@ -419,4 +426,8 @@ class App extends Component {
}
}
App.propTypes = {
rooms: PropTypes.array.isRequired
};
export default App;
......@@ -2,4 +2,8 @@ import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
ReactDOM.render( < App
rooms = {["A", "B"
]
}
/>, document.getElementById('root'));
#!/usr/bin/env bash
cp ../dynselect/src/App.js src/App.js
read -p "Now remove CSS line. Then press [ENTER]."
cat mounter.js >> src/App.js
gulp build
cp build/* ../schoolapps/static/support/
\ No newline at end of file
cp build/* ../schoolapps/static/support/
rm build/*
ReactDOM.render(
React.createElement(App, window.props), // gets the props that are passed in the template
window.react_mount // a reference to the #react div that we render to
);
import React, {Component} from 'react';
import ReactDOM from "react-dom";
// import "materialize-css/dist/css/materialize.css";
import M from "materialize-css/dist/js/materialize";
......@@ -169,11 +168,15 @@ const ROOMS_WITH_PRESENTATION_DEVICE = [
];
const OTHER_LOCATIONS = [
"Notebookwagen 1",
"NotebookqAFWN 1",
"Notebookwagen 1. Stock/R 2.06",
"Notebookwagen 2. Stock/R 2.10",
"Notebookwagen 3. Stock/Physik",
"Internetcafe",
"Infopoint/Sekretariatsvorraum",
"Lehrerzimmer (Vorraum)",
"Lehrerzimmer (Hauptraum)"
];
const LOCATIONS = ROOMS_WITH_PRESENTATION_DEVICE.concat(OTHER_LOCATIONS);
function getCategoryOfOption(option) {
for (const category of BASIC_OPTIONS) {
......@@ -207,7 +210,8 @@ class Select extends Component {
select
onChange = {this.props.onChange
}
defaultValue = {"no"} >
defaultValue = {"no"}
required = {true} >
< option
value = {"no"}
disabled = {true} > Nichts
......@@ -278,20 +282,6 @@ Input.defaultProps = {
};
class App extends Component {
_onCategoryChanges = (e) =
const
opt = e.target.value;
> {
const
category = getCategoryOfOption(opt);
const
option = getOption(opt);
// Get matching helper text
let
helpText = option.helpText || this.state.helpText;
"deviceIssues"
helpText = "Wähle bitte das Gerät mit dem Problem aus! Bitte vergiss nicht, uns das Problem unten genauer zu beschreiben!"
constructor() {
super();
this.state = {
......@@ -304,14 +294,27 @@ class App extends Component {
}
}
===
componentDidMount() {
// Init materialize selects
const elems = document.querySelectorAll('select');
M.FormSelect.init(elems, {});
}
_onCategoryChanges = (e) =
> {
const
opt = e.target.value;
const
category = getCategoryOfOption(opt);
const
option = getOption(opt);
// Get matching helper text
let
helpText = option.helpText || this.state.helpText;
"deviceIssues"
===
helpText = "Wähle bitte das Gerät mit dem Problem aus! Bitte vergiss nicht, uns das Problem unten genauer zu beschreiben!"
) {
if(category
......@@ -358,6 +361,9 @@ _onSetC = (e) =
render()
{
let LOCATIONS = this.props.rooms.concat(OTHER_LOCATIONS);
LOCATIONS.sort();
console.log(this.state);
const that = this;
const sC = this.state.selectedCategory;
......@@ -574,6 +580,7 @@ render()
id = {"valc"}
onChange = {this._onSetC
}
required = {true}
/>
< label
htmlFor = "valc" > Um
......@@ -634,7 +641,12 @@ render()
}
}
App.propTypes = {
rooms: PropTypes.array.isRequired
};
export default App;
ReactDOM.render(
React.createElement(App, window.props), // gets the props that are passed in the template
window.react_mount // a reference to the #react div that we render to
);
\ No newline at end of file
);
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render( < App / >, document.getElementById('root')
)
;
This diff is collapsed.
......@@ -28,7 +28,7 @@ class FeedbackForm(forms.Form):
overall_rating = forms.ChoiceField(label='Bitte bewerte SchoolApps insgesamt auf einer Skala von 1 bis 10',
choices=ratings, required=True)
apps = forms.CharField(label="Bitte gebe uns Feedback zu den einzelnen Funktion von SchoolApps", required=False,
apps = forms.CharField(label="Bitte gebe uns Feedback zu den einzelnen Funktionen von SchoolApps", required=False,
widget=forms.Textarea)
more = forms.CharField(label="Möchtest du uns sonst noch etwas mitteilen?", required=False, widget=forms.Textarea)
ideas = forms.CharField(label='Hast du Ideen, was wir noch in SchoolApps einbauen könnten/sollten?',
......
......@@ -2,6 +2,7 @@ from django.shortcuts import render
from mailer import send_mail_with_template
from support.models import kanboard_settings
from untisconnect.api import get_all_rooms
from .forms import REBUSForm
from .forms import FeedbackForm
from kanboard import Kanboard
......@@ -58,7 +59,9 @@ def rebus(request):
else:
form = REBUSForm()
return render(request, 'support/rebus.html', {'form': form})
rooms = [room.name for room in get_all_rooms()]
return render(request, 'support/rebus.html', {'form': form, "props": {"rooms": rooms}})
def feedback(request):
......
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