mirror of
				https://gitlab.crans.org/mediatek/med.git
				synced 2025-11-04 05:02:19 +01:00 
			
		
		
		
	Add paginator et model pour les jeux
This commit is contained in:
		
							
								
								
									
										30
									
								
								media/migrations/0006_jeu.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								media/migrations/0006_jeu.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# -*- coding: utf-8 -*-
 | 
				
			||||||
 | 
					# Generated by Django 1.11.2 on 2017-07-03 14:23
 | 
				
			||||||
 | 
					from __future__ import unicode_literals
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					import django.db.models.deletion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 | 
				
			||||||
 | 
					        ('media', '0005_auto_20170630_1551'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.CreateModel(
 | 
				
			||||||
 | 
					            name='Jeu',
 | 
				
			||||||
 | 
					            fields=[
 | 
				
			||||||
 | 
					                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
 | 
				
			||||||
 | 
					                ('nom', models.CharField(max_length=255)),
 | 
				
			||||||
 | 
					                ('duree', models.CharField(choices=[('LONG', 'LONG'), ('MOYEN', 'MOYEN'), ('COURT', 'COURT')], max_length=255)),
 | 
				
			||||||
 | 
					                ('nombre_joueurs_min', models.IntegerField()),
 | 
				
			||||||
 | 
					                ('nombre_joueurs_max', models.IntegerField()),
 | 
				
			||||||
 | 
					                ('comment', models.CharField(blank=True, help_text='Commentaire', max_length=255, null=True)),
 | 
				
			||||||
 | 
					                ('proprietaire', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL)),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -13,7 +13,7 @@ class Media(models.Model):
 | 
				
			|||||||
#    type = TODO
 | 
					#    type = TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __str__(self):
 | 
					    def __str__(self):
 | 
				
			||||||
        return str(self.titre) + ' - ' + str(self.auteur)
 | 
					        return str(self.titre) + ' - ' + str(self.auteur.all().first())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Emprunt(models.Model):
 | 
					class Emprunt(models.Model):
 | 
				
			||||||
    media = models.ForeignKey('Media', on_delete=models.PROTECT) 
 | 
					    media = models.ForeignKey('Media', on_delete=models.PROTECT) 
 | 
				
			||||||
@@ -24,6 +24,19 @@ class Emprunt(models.Model):
 | 
				
			|||||||
    permanencier_rendu = models.ForeignKey('users.User', on_delete=models.PROTECT, related_name='user_permanencier_rendu', blank=True, null=True) 
 | 
					    permanencier_rendu = models.ForeignKey('users.User', on_delete=models.PROTECT, related_name='user_permanencier_rendu', blank=True, null=True) 
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Jeu(models.Model):
 | 
				
			||||||
 | 
					    DUREE = (
 | 
				
			||||||
 | 
					            ('LONG', 'LONG'),
 | 
				
			||||||
 | 
					            ('MOYEN', 'MOYEN'),
 | 
				
			||||||
 | 
					            ('COURT', 'COURT'),
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nom = models.CharField(max_length=255)
 | 
				
			||||||
 | 
					    proprietaire = models.ForeignKey('users.User', on_delete=models.PROTECT) 
 | 
				
			||||||
 | 
					    duree = models.CharField(choices=DUREE, max_length=255)
 | 
				
			||||||
 | 
					    nombre_joueurs_min = models.IntegerField()
 | 
				
			||||||
 | 
					    nombre_joueurs_max = models.IntegerField()
 | 
				
			||||||
 | 
					    comment = models.CharField(help_text="Commentaire", max_length=255, blank=True, null=True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,6 +22,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 | 
				
			|||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
					51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
				
			||||||
{% endcomment %}
 | 
					{% endcomment %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if emprunts_list.paginator %}
 | 
				
			||||||
 | 
					{% include "pagination.html" with list=emprunts_list %} 
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <table class="table table-striped">
 | 
					    <table class="table table-striped">
 | 
				
			||||||
        <thead>
 | 
					        <thead>
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,7 +38,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 | 
				
			|||||||
        {% for media in medias_list %}
 | 
					        {% for media in medias_list %}
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>{{ media.titre }}</td>
 | 
					            <td>{{ media.titre }}</td>
 | 
				
			||||||
            <td>{{ media.auteur }}</td>
 | 
					            <td>{% for aut in media.auteur.all %}{{ aut }}, {% endfor %}</td>
 | 
				
			||||||
            <td>{{ media.cote }}</td>
 | 
					            <td>{{ media.cote }}</td>
 | 
				
			||||||
            <td>{% include 'buttons/edit.html' with href='media:edit-media' id=media.id %}
 | 
					            <td>{% include 'buttons/edit.html' with href='media:edit-media' id=media.id %}
 | 
				
			||||||
            {% include 'buttons/suppr.html' with href='media:del-media' id=media.id %}
 | 
					            {% include 'buttons/suppr.html' with href='media:del-media' id=media.id %}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -234,6 +234,16 @@ def index(request):
 | 
				
			|||||||
        emprunts_list = Emprunt.objects.all()
 | 
					        emprunts_list = Emprunt.objects.all()
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        emprunts_list = Emprunt.objects.filter(user=request.user)
 | 
					        emprunts_list = Emprunt.objects.filter(user=request.user)
 | 
				
			||||||
 | 
					    paginator = Paginator(emprunts_list.order_by('date_emprunt').reverse(), PAGINATION_NUMBER)
 | 
				
			||||||
 | 
					    page = request.GET.get('page')
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					        emprunts_list = paginator.page(page)
 | 
				
			||||||
 | 
					    except PageNotAnInteger:
 | 
				
			||||||
 | 
					        # If page is not an integer, deliver first page.
 | 
				
			||||||
 | 
					        emprunts_list = paginator.page(1)
 | 
				
			||||||
 | 
					    except EmptyPage:
 | 
				
			||||||
 | 
					        # If page is out of range (e.g. 9999), deliver last page of results.
 | 
				
			||||||
 | 
					        emprunts_list = paginator.page(paginator.num_pages)
 | 
				
			||||||
    return render(request, 'media/index_emprunts.html', {'emprunts_list':emprunts_list})
 | 
					    return render(request, 'media/index_emprunts.html', {'emprunts_list':emprunts_list})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user