From c75af9961dd2925dc85c4b6d91d26ef83807806e Mon Sep 17 00:00:00 2001 From: Allan Nozomu Fukasawa Date: Tue, 6 Sep 2016 12:40:25 -0300 Subject: [PATCH] Add simple readinweb models Add riw app --- config/settings/common.py | 6 +- config/urls.py | 2 + readinweb/riw/__init__.py | 0 readinweb/riw/admin.py | 3 + readinweb/riw/apps.py | 5 + readinweb/riw/models.py | 124 +++++++++++++++++++++ readinweb/riw/tests.py | 3 + readinweb/riw/urls.py | 10 ++ readinweb/riw/views.py | 12 ++ readinweb/templates/riw/course_detail.html | 35 ++++++ readinweb/templates/riw/course_list.html | 22 ++++ readinweb/templates/users/user_detail.html | 1 - 12 files changed, 220 insertions(+), 3 deletions(-) create mode 100644 readinweb/riw/__init__.py create mode 100644 readinweb/riw/admin.py create mode 100644 readinweb/riw/apps.py create mode 100644 readinweb/riw/models.py create mode 100644 readinweb/riw/tests.py create mode 100644 readinweb/riw/urls.py create mode 100644 readinweb/riw/views.py create mode 100644 readinweb/templates/riw/course_detail.html create mode 100644 readinweb/templates/riw/course_list.html diff --git a/config/settings/common.py b/config/settings/common.py index bc971cc..394290f 100644 --- a/config/settings/common.py +++ b/config/settings/common.py @@ -46,6 +46,7 @@ # custom users app 'readinweb.users.apps.UsersConfig', # Your stuff: custom apps go here + 'readinweb.riw', ) # See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps @@ -83,7 +84,8 @@ # EMAIL CONFIGURATION # ------------------------------------------------------------------------------ -EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.smtp.EmailBackend') +# EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.smtp.EmailBackend') +EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # MANAGER CONFIGURATION # ------------------------------------------------------------------------------ @@ -111,7 +113,7 @@ # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. # In a Windows environment this must be set to your system time zone. -TIME_ZONE = 'UTC-03:00' +TIME_ZONE = 'America/Sao_Paulo' # See: https://docs.djangoproject.com/en/dev/ref/settings/#language-code LANGUAGE_CODE = 'en-us' diff --git a/config/urls.py b/config/urls.py index 82f1a64..9c4cc60 100644 --- a/config/urls.py +++ b/config/urls.py @@ -19,7 +19,9 @@ url(r'^users/', include('readinweb.users.urls', namespace='users')), url(r'^accounts/', include('allauth.urls')), + # Your stuff: custom urls includes go here + url(r'^riw/', include('readinweb.riw.urls')), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/readinweb/riw/__init__.py b/readinweb/riw/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/readinweb/riw/admin.py b/readinweb/riw/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/readinweb/riw/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/readinweb/riw/apps.py b/readinweb/riw/apps.py new file mode 100644 index 0000000..388b2d3 --- /dev/null +++ b/readinweb/riw/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class RiwConfig(AppConfig): + name = 'riw' diff --git a/readinweb/riw/models.py b/readinweb/riw/models.py new file mode 100644 index 0000000..7cee2bc --- /dev/null +++ b/readinweb/riw/models.py @@ -0,0 +1,124 @@ +from django.db import models + +class Course (models.Model): + name = models.CharField (max_length=150) + def __str__(self) : + return self.name + + +class Course_class (models.Model): + # Foreign Keys + course = models.ForeignKey('Course') + instructor = models.ForeignKey('users.User') + + title = models.CharField(max_length=150) + created_at = models.DateTimeField() + started_at = models.DateTimeField(null=True, blank= True) + finished_at = models.DateTimeField(null=True, blank= True) + enrolling = models.BooleanField(default=False) + max_students = models.IntegerField() + + class Meta: + verbose_name_plural = "Course classes" + +class Module(models.Model): + title = models.CharField(max_length=100) + + def __str__(self) : + return self.title + +class Activity(models.Model): + # Foreign Keys + course = models.ForeignKey('Course') + module = models.ForeignKey('Module') + + title = models.CharField(max_length=150) + content = models.TextField() + course_position = models.IntegerField() + + class Meta: + verbose_name_plural = "Activities" + + def __str__(self) : + return self.title + +class Exercise(models.Model): + # Foreign Keys + activity = models.ForeignKey('Activity') + + content = models.TextField() + + class Meta: + verbose_name_plural = "Exercises" + +class Grammar(models.Model): + # Foreign Keys + module = models.ForeignKey('Module') + + content = models.TextField() + + class Meta: + verbose_name_plural = "Grammars" + +class Strategy(models.Model): + # Foreign Keys + module = models.ForeignKey('Module') + + content = models.TextField() + reading = models.BooleanField() + + class Meta: + verbose_name_plural = "Strategies" + +class Functional_word(models.Model): + # Foreign Keys + module = models.ForeignKey('Module') + + word = models.CharField(max_length=50) + meaning = models.CharField(max_length=100) + + class Meta: + verbose_name_plural = "Functional Words" + + +class Glossary(models.Model): + # Foreign Keys + module = models.ForeignKey('Module') + + word = models.CharField(max_length=50) + translation = models.CharField(max_length=100) + + class Meta: + verbose_name_plural = "Glossaries" + + +class Activity_released(models.Model): + # Foreign Keys + course_class = models.ForeignKey('Course_class') + activity = models.ForeignKey('activity') + + released = models.BooleanField() + + class Meta: + verbose_name_plural = "Released Activities" + +class Student_progress(models.Model): + # Foreign Keys + student = models.ForeignKey('users.User') + activity = models.ForeignKey('Activity') + course_class = models.ForeignKey('Course_class') + + complete = models.BooleanField() + + class Meta: + verbose_name_plural = "Students Progress" + +class Allowed_student(models.Model): + # Foreign Keys + student = models.ForeignKey('users.User') + + course_class = models.ForeignKey('Course_class') + allowed = models.BooleanField() + + class Meta: + verbose_name_plural = "Allowed Students" diff --git a/readinweb/riw/tests.py b/readinweb/riw/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/readinweb/riw/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/readinweb/riw/urls.py b/readinweb/riw/urls.py new file mode 100644 index 0000000..8ef2e24 --- /dev/null +++ b/readinweb/riw/urls.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.conf import settings +from django.conf.urls import include, url +from . import views + +urlpatterns = [ + url(r'^$', views.ClassListView.as_view(), name='list'), +] diff --git a/readinweb/riw/views.py b/readinweb/riw/views.py new file mode 100644 index 0000000..00d7eb1 --- /dev/null +++ b/readinweb/riw/views.py @@ -0,0 +1,12 @@ +from django.shortcuts import render +from django.views.generic import DetailView, ListView, RedirectView, UpdateView +from django.contrib.auth.mixins import LoginRequiredMixin + +from .models import * + +# Create your views here. +class ClassListView(ListView): + model = Course + # These next two lines tell the view to index lookups by username + # slug_field = 'username' + # slug_url_kwarg = 'username' diff --git a/readinweb/templates/riw/course_detail.html b/readinweb/templates/riw/course_detail.html new file mode 100644 index 0000000..6f151b9 --- /dev/null +++ b/readinweb/templates/riw/course_detail.html @@ -0,0 +1,35 @@ +{% extends "base.html" %} +{% load static %} + +{% block title %}User: {{ object.name }}{% endblock %} + +{% block content %} +
+ +
+
+ +

{{ object.name }}

+ {% if object.name %} +

{{ object.name }}

+ {% endif %} +
+
+ +{% if object == request.user %} + +
+ +
+ My Info + E-Mail + +
+ +
+ +{% endif %} + + +
+{% endblock content %} diff --git a/readinweb/templates/riw/course_list.html b/readinweb/templates/riw/course_list.html new file mode 100644 index 0000000..cf3330f --- /dev/null +++ b/readinweb/templates/riw/course_list.html @@ -0,0 +1,22 @@ +{% extends "base.html" %} +{% load static %}{% load i18n %} +{% block title %}Course{% endblock %} + +{% block content %} + +
+ +

Courses

+ +
+ {% for course in course_list %} + +

{{ course.name }}

+
+ {% endfor %} + +
+ +
+ +{% endblock content %} diff --git a/readinweb/templates/users/user_detail.html b/readinweb/templates/users/user_detail.html index f8deb6b..47e4de4 100644 --- a/readinweb/templates/users/user_detail.html +++ b/readinweb/templates/users/user_detail.html @@ -33,4 +33,3 @@

{{ object.username }}

{% endblock content %} -