30 changed files with 111 additions and 263 deletions
@ -1,23 +0,0 @@ |
|||||
# Generated by Django 2.0.1 on 2018-01-24 10:43 |
|
||||
|
|
||||
from django.db import migrations, models |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
dependencies = [ |
|
||||
('content', '0001_initial'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.RemoveField( |
|
||||
model_name='category', |
|
||||
name='Nom de la catégorie', |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='category', |
|
||||
name='name', |
|
||||
field=models.CharField(default='Nom de la catégorie', max_length=255, verbose_name='Nom de la catégorie'), |
|
||||
preserve_default=False, |
|
||||
), |
|
||||
] |
|
||||
@ -1,17 +1,42 @@ |
|||||
{% extends "base.html" %} |
{% extends "base.html" %} |
||||
|
{% load staticfiles %} |
||||
|
{% block style %} |
||||
|
.page-title |
||||
|
{ |
||||
|
background-image : url("{{category.image.url}}"); |
||||
|
background-attachment : fixed; |
||||
|
background-position: center; |
||||
|
} |
||||
|
.title-block |
||||
|
{ |
||||
|
background-color: rgba(248, 249, 250, 0.6); |
||||
|
} |
||||
|
{% endblock %} |
||||
{% block content %} |
{% block content %} |
||||
|
<script> |
||||
{% if category %} |
function show_content () { |
||||
<h1>{{category.name}}</h1> |
$('html, body').animate({scrollTop: $('#category-content').offset().top}, 800); |
||||
{% else %} |
} |
||||
<h1>Liste des contenus</h1> |
</script> |
||||
{% endif %} |
<div class="position-relative overflow-hidden p-3 p-md-5 m-md-3 text-center bg-light page-title"> |
||||
|
<div class="col-md-5 p-lg-5 mx-auto my-5 title-block"> |
||||
|
<h1 class="display-4 font-weight-normal">{{category.name}}</h1> |
||||
|
<p class="lead font-weight-normal">{{category.description}}</p> |
||||
|
<a class="btn btn-outline-secondary smooth-scroll" href="#category-content">Aller voir !</a> |
||||
|
</div> |
||||
|
</div> |
||||
|
<br /> |
||||
|
<span id="category-content"></span> |
||||
{% for content in contents %} |
{% for content in contents %} |
||||
<div> |
<div class="bg-dark pt-3 px-3 pt-md-5 px-md-5 text-center text-white overflow-hidden"> |
||||
<h2>{{content.name}}</h2> |
<div class="my-3 py-3"> |
||||
<h3>Contenu proposé par {{content.group_owner.name}}</h3> |
<h2 class="display-5">{{content.name}}</h2> |
||||
<a href="{{content.content_url}}">C'est ici que ça se passe</a> |
<p class="lead">Contenu proposé par {{content.group_owner.name}}</p> |
||||
|
</div> |
||||
|
<video controls> |
||||
|
<source src="{{content.content_url}}" type="video/mp4"> |
||||
|
</video> |
||||
</div> |
</div> |
||||
{% endfor %} |
{% endfor %} |
||||
|
</div> |
||||
{% endblock %} |
{% endblock %} |
||||
|
|||||
@ -1,3 +1,5 @@ |
|||||
Django==2.0.1 |
Django==2.0.1 |
||||
|
django-bootstrap4==0.0.6 |
||||
|
Pillow==5.0.0 |
||||
pycrypto==2.6.1 |
pycrypto==2.6.1 |
||||
pytz==2017.3 |
pytz==2017.3 |
||||
|
|||||
@ -1,31 +0,0 @@ |
|||||
# Generated by Django 2.0.1 on 2018-01-14 18:32 |
|
||||
|
|
||||
from django.db import migrations, models |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
dependencies = [ |
|
||||
('settings', '0001_initial'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.RemoveField( |
|
||||
model_name='sitesettings', |
|
||||
name='allow_upload', |
|
||||
), |
|
||||
migrations.RemoveField( |
|
||||
model_name='sitesettings', |
|
||||
name='site_name', |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='sitesettings', |
|
||||
name="Autoriser l'upload de vidéos.", |
|
||||
field=models.BooleanField(default=False), |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='sitesettings', |
|
||||
name="Message de la page d'accueil", |
|
||||
field=models.TextField(default=''), |
|
||||
), |
|
||||
] |
|
||||
@ -1,59 +0,0 @@ |
|||||
# Generated by Django 2.0.1 on 2018-01-14 18:37 |
|
||||
|
|
||||
from django.db import migrations, models |
|
||||
import settings.models |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
dependencies = [ |
|
||||
('settings', '0002_auto_20180114_1832'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.RemoveField( |
|
||||
model_name='contentsettings', |
|
||||
name='Identifiant sur le FTP', |
|
||||
), |
|
||||
migrations.RemoveField( |
|
||||
model_name='contentsettings', |
|
||||
name='Mot de passe', |
|
||||
), |
|
||||
migrations.RemoveField( |
|
||||
model_name='contentsettings', |
|
||||
name='URL du FTP', |
|
||||
), |
|
||||
migrations.RemoveField( |
|
||||
model_name='sitesettings', |
|
||||
name="Autoriser l'upload de vidéos.", |
|
||||
), |
|
||||
migrations.RemoveField( |
|
||||
model_name='sitesettings', |
|
||||
name="Message de la page d'accueil", |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='contentsettings', |
|
||||
name='ftp_id', |
|
||||
field=models.CharField(default='', max_length=255, verbose_name='Identifiant sur le FTP'), |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='contentsettings', |
|
||||
name='ftp_pass', |
|
||||
field=settings.models.AESEncryptedField(default='', max_length=255, verbose_name='Mot de passe'), |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='contentsettings', |
|
||||
name='ftp_url', |
|
||||
field=models.URLField(default='', max_length=255, verbose_name='URL du FTP'), |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='sitesettings', |
|
||||
name='allow_upload', |
|
||||
field=models.BooleanField(default=False, verbose_name="Autoriser l'upload de vidéos."), |
|
||||
), |
|
||||
migrations.AddField( |
|
||||
model_name='sitesettings', |
|
||||
name='home_message', |
|
||||
field=models.TextField(default='', verbose_name="Message de la page d'accueil"), |
|
||||
), |
|
||||
] |
|
||||
@ -1,23 +0,0 @@ |
|||||
# Generated by Django 2.0.1 on 2018-01-31 10:52 |
|
||||
|
|
||||
from django.db import migrations, models |
|
||||
import django.db.models.deletion |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
dependencies = [ |
|
||||
('users', '0001_initial'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.RemoveField( |
|
||||
model_name='schoolprofile', |
|
||||
name='is_school', |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='userprofile', |
|
||||
name='school', |
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='users.SchoolProfile'), |
|
||||
), |
|
||||
] |
|
||||
@ -1,5 +0,0 @@ |
|||||
from django.contrib import admin |
|
||||
from .models import Vote, Poll |
|
||||
|
|
||||
admin.site.register(Vote) |
|
||||
admin.site.register(Poll) |
|
||||
@ -1,5 +0,0 @@ |
|||||
from django.apps import AppConfig |
|
||||
|
|
||||
|
|
||||
class VoteConfig(AppConfig): |
|
||||
name = 'vote' |
|
||||
@ -1,39 +0,0 @@ |
|||||
# Generated by Django 2.0.1 on 2018-01-24 10:29 |
|
||||
|
|
||||
from django.conf import settings |
|
||||
import django.core.validators |
|
||||
from django.db import migrations, models |
|
||||
import django.db.models.deletion |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
initial = True |
|
||||
|
|
||||
dependencies = [ |
|
||||
('auth', '0009_alter_user_last_name_max_length'), |
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL), |
|
||||
('content', '0001_initial'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.CreateModel( |
|
||||
name='Poll', |
|
||||
fields=[ |
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||
('title', models.CharField(max_length=1024)), |
|
||||
('contents', models.ManyToManyField(to='content.Content')), |
|
||||
('voters_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='auth.Group')), |
|
||||
], |
|
||||
), |
|
||||
migrations.CreateModel( |
|
||||
name='Vote', |
|
||||
fields=[ |
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|
||||
('vote', models.IntegerField(validators=[django.core.validators.MaxValueValidator(5), django.core.validators.MinValueValidator(0)])), |
|
||||
('content', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='content.Content')), |
|
||||
('poll', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='vote.Poll')), |
|
||||
('votant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), |
|
||||
], |
|
||||
), |
|
||||
] |
|
||||
@ -1,22 +0,0 @@ |
|||||
from django.db import models |
|
||||
from django.core import validators |
|
||||
from content.models import Content |
|
||||
from django.contrib.auth.models import Group, User |
|
||||
|
|
||||
|
|
||||
class Poll(models.Model): |
|
||||
voters_group = models.ForeignKey(Group, on_delete=models.CASCADE) |
|
||||
contents = models.ManyToManyField(Content) |
|
||||
title = models.CharField(max_length=1024) |
|
||||
|
|
||||
|
|
||||
class Vote(models.Model): |
|
||||
votant = models.ForeignKey(User, on_delete=models.CASCADE) |
|
||||
content = models.ForeignKey(Content, on_delete=models.CASCADE) |
|
||||
poll = models.ForeignKey(Poll, on_delete=models.CASCADE) |
|
||||
vote = models.IntegerField( |
|
||||
validators=[ |
|
||||
validators.MaxValueValidator(5), |
|
||||
validators.MinValueValidator(0) |
|
||||
] |
|
||||
) |
|
||||
@ -1,6 +0,0 @@ |
|||||
{% extends 'base.html' %} |
|
||||
{% block content %} |
|
||||
<div class="container"> |
|
||||
<h2>Votes disponibles</h2> |
|
||||
</div> |
|
||||
{% endblock %} |
|
||||
@ -1,3 +0,0 @@ |
|||||
from django.test import TestCase |
|
||||
|
|
||||
# Create your tests here. |
|
||||
@ -1,7 +0,0 @@ |
|||||
from django.urls import path |
|
||||
from . import views |
|
||||
|
|
||||
app_name = 'vote' |
|
||||
urlpatterns = [ |
|
||||
path('home', views.home, name='home') |
|
||||
] |
|
||||
@ -1,7 +0,0 @@ |
|||||
from django.shortcuts import render |
|
||||
|
|
||||
# Create your views here. |
|
||||
|
|
||||
|
|
||||
def home(request): |
|
||||
return render(request, 'vote/home.html') |
|
||||
Loading…
Reference in new issue