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" %} |
|||
{% 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 %} |
|||
|
|||
{% if category %} |
|||
<h1>{{category.name}}</h1> |
|||
{% else %} |
|||
<h1>Liste des contenus</h1> |
|||
{% endif %} |
|||
|
|||
<script> |
|||
function show_content () { |
|||
$('html, body').animate({scrollTop: $('#category-content').offset().top}, 800); |
|||
} |
|||
</script> |
|||
<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 %} |
|||
<div> |
|||
<h2>{{content.name}}</h2> |
|||
<h3>Contenu proposé par {{content.group_owner.name}}</h3> |
|||
<a href="{{content.content_url}}">C'est ici que ça se passe</a> |
|||
<div class="bg-dark pt-3 px-3 pt-md-5 px-md-5 text-center text-white overflow-hidden"> |
|||
<div class="my-3 py-3"> |
|||
<h2 class="display-5">{{content.name}}</h2> |
|||
<p class="lead">Contenu proposé par {{content.group_owner.name}}</p> |
|||
</div> |
|||
<video controls> |
|||
<source src="{{content.content_url}}" type="video/mp4"> |
|||
</video> |
|||
</div> |
|||
{% endfor %} |
|||
</div> |
|||
{% endblock %} |
|||
|
|||
@ -1,3 +1,5 @@ |
|||
Django==2.0.1 |
|||
django-bootstrap4==0.0.6 |
|||
Pillow==5.0.0 |
|||
pycrypto==2.6.1 |
|||
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