from PyQt5.QtWidgets import QApplication, QMainWindow, QDialog, QVBoxLayout
from PyQt5.QtGui import QPalette, QColor, QTextCursor 

import sys
sys.path.insert(0, "../")

BUTTON_CORRECT = "QRadioButton { border-style: solid; border-width: 2px; border-radius: 10px; border-color: green; }"
BUTTON_INCORRECT = "QRadioButton { border-style: solid; border-width: 2px; border-radius: 10px; border-color: red; }"

from take import ViewTestWindow, TestTakeWindow, TestReviewWindow

class ViewTests(QMainWindow):
    def __init__(self):
        super(ViewTests, self).__init__()

        # Set up the user interface from Designer.
        self.ui = ViewTestWindow.Ui_MainWindow()
        self.ui.setupUi(self)
        self.take = TestTake()
        self.review = TestReview()

        self.ui.takeButton.clicked.connect(self.showTestTake)
        self.ui.reviewButton.clicked.connect(self.showTestReview)

    def showTestTake(self):
        self.take.show()

    def showTestReview(self):
        self.review.show()

class TestTake(QMainWindow):
    def __init__(self):
        super(TestTake, self).__init__()

        # Set up the user interface from Designer.
        self.ui = TestTakeWindow.Ui_MainWindow()
        self.ui.setupUi(self)

        self.ui.scrollVerticalLayout = QVBoxLayout(self.ui.questionScrollWidget)
        self.ui.scrollVerticalLayout.setObjectName("scrollVerticalLayout")
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question1Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question2Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question3Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question4Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question5Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question6Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question7Group)

        self.ui.submitButton.clicked.connect(self.submit)

    def submit(self):
        self.close()

class TestReview(QMainWindow):
    def __init__(self):
        super(TestReview, self).__init__()

        # Set up the user interface from Designer.
        self.ui = TestReviewWindow.Ui_MainWindow()
        self.ui.setupUi(self)

        # Add Student Answer
        self.ui.q3input.setText("30")
        self.ui.q4input.setText("0")
        self.ui.q5aInput.setText("input is 1\ndone")
        self.ui.q5bInput.setText("input is not 1,2,3\ndone")

        # Identify correct answers
        self.ui.q1bRadio.setStyleSheet(BUTTON_CORRECT)
        self.ui.q2bRadio.setStyleSheet(BUTTON_INCORRECT)
        self.ui.q6input.setText("Your solution passed 1 of 1 tests")
        self.ui.q7input.setText("Your solution passed 0 of 1 tests\nTEST 1 FAILED - Input: \"1\"\n<< 1\n>> 0") 
        #self.ui.q3input.moveCursor(QTextCursor.EndOfLine, QTextCursor.MoveAnchor)
        #self.ui.q3input.insertHtml("<p style=\"color: green\">&nbsp;Correct: \"30\"</p>")

        self.ui.scrollVerticalLayout = QVBoxLayout(self.ui.questionScrollWidget)
        self.ui.scrollVerticalLayout.setObjectName("scrollVerticalLayout")
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question1Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question2Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question3Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question4Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question5Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question6Group)
        self.ui.scrollVerticalLayout.addWidget(self.ui.Question7Group)

        self.ui.submitButton.clicked.connect(self.submit)

    def submit(self):
        self.close()