unb-mds/2023-2-Squad06

View on GitHub
templates/tasks/detail.html

Summary

Maintainability
Test Coverage
{% extends "base.html" %}

{% load crispy_forms_tags %}
{% load djangocodemirror_tags %}

{% block title %}{{ task.title }}{% endblock title %}

{% block content %}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/codemirror.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/dracula.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/monokai.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/3024-day.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/3024-night.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/cobalt.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/eclipse.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/theme/rubyblue.min.css">

<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/codemirror.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/mode/python/python.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/addon/edit/closebrackets.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/addon/edit/matchbrackets.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/addon/edit/matchtags.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.63.1/addon/edit/closetag.min.js"></script>

<h1>
  <a href="{% url 'tasks:detail' task.id %}">
    {{ task.title }}
  </a>
</h1>
<hr>

<div>
  <p>
    <b>Score:</b> {{ task.score|default:"???" }}
  </p>
  <p>
    <b>Memory limit:</b>
    {% if task.memory_limit %}
      {{ task.memory_limit|filesizeformat }}
    {% else %}
      Unlimited
    {% endif %}
  </p>
  <p>
    <b>Time limit:</b>
    {% if task.time_limit %}
      {{ task.time_limit }}
      second{{ task.time_limit|pluralize:"s" }}
    {% else %}
      Unlimited
    {% endif %}
  </p>
</div>
<hr>
<h4>Description</h4>
<p>{{ task.description }}</p>

<hr>

<h4>Constraints</h4>
<ul>
  {% for constraint in task.constraints %}
    <li>{{ constraint }}</li>
  {% empty %}
    <li>None</li>
  {% endfor %}
</ul>

<hr>

<form method="post">
  {% csrf_token %}

  <h4>Submit</h4>

  <div style="display: flex; flex-direction: column; gap: 20px; justify-content: center;">
    <div style="display: flex; flex-direction: column; gap: 25px; font-size: 0.8rem;">
      <textarea
        id="id_code"
        name="code"
        class="form-control"
      ></textarea>
    </div>

      <input
        type="submit"
        class="btn btn-primary"
        style="width: 100px;"
        value="Submit"
      >
    </div>
  </div>
</form>

<script>
  var codemirror = CodeMirror.fromTextArea(
    document.getElementById("id_code"),
    {
      mode: "python",
      theme: "dracula",
      lineNumbers: true,
      autoCloseBrackets: true,
      matchBrackets: true,
    }
  );
</script>

{% endblock content %}