mirror of
				https://gitlab.crans.org/mediatek/med.git
				synced 2025-11-04 06:22:15 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into master
# Conflicts: # media/admin.py # users/admin.py # users/views.py
This commit is contained in:
		@@ -1,22 +1,37 @@
 | 
				
			|||||||
image: python:3.8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
stages:
 | 
					stages:
 | 
				
			||||||
  - test
 | 
					  - test
 | 
				
			||||||
 | 
					  - quality-assurance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
before_script:
 | 
					py37-django22:
 | 
				
			||||||
  - pip install tox
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
python37:
 | 
					 | 
				
			||||||
  image: python:3.7
 | 
					 | 
				
			||||||
  stage: test
 | 
					  stage: test
 | 
				
			||||||
 | 
					  image: debian:buster-backports
 | 
				
			||||||
 | 
					  before_script:
 | 
				
			||||||
 | 
					    - >
 | 
				
			||||||
 | 
					        apt-get update &&
 | 
				
			||||||
 | 
					        apt-get install --no-install-recommends -t buster-backports -y
 | 
				
			||||||
 | 
					        python3-django python3-django-casclient python3-django-reversion python3-djangorestframework
 | 
				
			||||||
 | 
					        python3-docutils python3-pil python3-tz python3-six python3-sqlparse python3-stdnum python3-yaml python3-coreapi tox
 | 
				
			||||||
  script: tox -e py37
 | 
					  script: tox -e py37
 | 
				
			||||||
 | 
					
 | 
				
			||||||
python38:
 | 
					py38-django22:
 | 
				
			||||||
  image: python:3.8
 | 
					 | 
				
			||||||
  stage: test
 | 
					  stage: test
 | 
				
			||||||
  script: tox -e py37
 | 
					  image: ubuntu:20.04
 | 
				
			||||||
 | 
					  before_script:
 | 
				
			||||||
 | 
					    # Fix tzdata prompt
 | 
				
			||||||
 | 
					    - ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime && echo Europe/Paris > /etc/timezone
 | 
				
			||||||
 | 
					    - >
 | 
				
			||||||
 | 
					        apt-get update &&
 | 
				
			||||||
 | 
					        apt-get install --no-install-recommends -y
 | 
				
			||||||
 | 
					        python3-django python3-django-casclient python3-django-reversion python3-djangorestframework
 | 
				
			||||||
 | 
					        python3-docutils python3-pil python3-tz python3-six python3-sqlparse python3-stdnum python3-yaml python3-coreapi tox
 | 
				
			||||||
 | 
					  script: tox -e py38
 | 
				
			||||||
 | 
					
 | 
				
			||||||
linters:
 | 
					linters:
 | 
				
			||||||
  stage: test
 | 
					  stage: quality-assurance
 | 
				
			||||||
 | 
					  image: debian:buster-backports
 | 
				
			||||||
 | 
					  before_script:
 | 
				
			||||||
 | 
					    - apt-get update && apt-get install -y tox
 | 
				
			||||||
  script: tox -e linters
 | 
					  script: tox -e linters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Be nice to new contributors, but please use `tox`
 | 
				
			||||||
  allow_failure: true
 | 
					  allow_failure: true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,8 @@ chmod go-rwx -R django-med
 | 
				
			|||||||
python3 -m venv venv --system-site-packages
 | 
					python3 -m venv venv --system-site-packages
 | 
				
			||||||
. venv/bin/activate
 | 
					. venv/bin/activate
 | 
				
			||||||
pip install -r requirements.txt
 | 
					pip install -r requirements.txt
 | 
				
			||||||
 | 
					pip install mysqlclient~=1.4.0  # si base MySQL
 | 
				
			||||||
 | 
					pip install uwsgi~=2.0.18  # si production
 | 
				
			||||||
./entrypoint.sh  # lance en shell
 | 
					./entrypoint.sh  # lance en shell
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ from django.urls import reverse
 | 
				
			|||||||
from django.utils.html import format_html
 | 
					from django.utils.html import format_html
 | 
				
			||||||
from django.utils.translation import ugettext_lazy as _
 | 
					from django.utils.translation import ugettext_lazy as _
 | 
				
			||||||
from reversion.admin import VersionAdmin
 | 
					from reversion.admin import VersionAdmin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from med.admin import admin_site
 | 
					from med.admin import admin_site
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .forms import MediaAdminForm
 | 
					from .forms import MediaAdminForm
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										55
									
								
								media/migrations/0038_auto_20200923_2030.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								media/migrations/0038_auto_20200923_2030.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					# Generated by Django 2.2.12 on 2020-09-23 18:30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('media', '0037_revue_double'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='bd',
 | 
				
			||||||
 | 
					            name='external_url',
 | 
				
			||||||
 | 
					            field=models.URLField(blank=True, default='', verbose_name='external URL'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='bd',
 | 
				
			||||||
 | 
					            name='subtitle',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=255, verbose_name='subtitle'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='jeu',
 | 
				
			||||||
 | 
					            name='comment',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=255, verbose_name='comment'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='manga',
 | 
				
			||||||
 | 
					            name='external_url',
 | 
				
			||||||
 | 
					            field=models.URLField(blank=True, default='', verbose_name='external URL'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='manga',
 | 
				
			||||||
 | 
					            name='subtitle',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=255, verbose_name='subtitle'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='roman',
 | 
				
			||||||
 | 
					            name='external_url',
 | 
				
			||||||
 | 
					            field=models.URLField(blank=True, default='', verbose_name='external URL'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='roman',
 | 
				
			||||||
 | 
					            name='subtitle',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=255, verbose_name='subtitle'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -48,13 +48,11 @@ class BD(models.Model):
 | 
				
			|||||||
        verbose_name=_('subtitle'),
 | 
					        verbose_name=_('subtitle'),
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    external_url = models.URLField(
 | 
					    external_url = models.URLField(
 | 
				
			||||||
        verbose_name=_('external URL'),
 | 
					        verbose_name=_('external URL'),
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    side_identifier = models.CharField(
 | 
					    side_identifier = models.CharField(
 | 
				
			||||||
@@ -109,13 +107,11 @@ class Manga(models.Model):
 | 
				
			|||||||
        verbose_name=_('subtitle'),
 | 
					        verbose_name=_('subtitle'),
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    external_url = models.URLField(
 | 
					    external_url = models.URLField(
 | 
				
			||||||
        verbose_name=_('external URL'),
 | 
					        verbose_name=_('external URL'),
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    side_identifier = models.CharField(
 | 
					    side_identifier = models.CharField(
 | 
				
			||||||
@@ -167,13 +163,11 @@ class Roman(models.Model):
 | 
				
			|||||||
        verbose_name=_('subtitle'),
 | 
					        verbose_name=_('subtitle'),
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    external_url = models.URLField(
 | 
					    external_url = models.URLField(
 | 
				
			||||||
        verbose_name=_('external URL'),
 | 
					        verbose_name=_('external URL'),
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    side_identifier = models.CharField(
 | 
					    side_identifier = models.CharField(
 | 
				
			||||||
@@ -415,7 +409,6 @@ class Jeu(models.Model):
 | 
				
			|||||||
    comment = models.CharField(
 | 
					    comment = models.CharField(
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
        verbose_name=_('comment'),
 | 
					        verbose_name=_('comment'),
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
Django~=2.2.10
 | 
					Django~=2.2.10
 | 
				
			||||||
docutils~=0.14
 | 
					docutils~=0.14
 | 
				
			||||||
Pillow~=5.4.1
 | 
					Pillow>=5.4.1
 | 
				
			||||||
pytz~=2019.1
 | 
					pytz~=2019.1
 | 
				
			||||||
six~=1.12.0
 | 
					six~=1.12.0
 | 
				
			||||||
sqlparse~=0.2.4
 | 
					sqlparse~=0.2.4
 | 
				
			||||||
@@ -10,5 +10,3 @@ python-stdnum~=1.10
 | 
				
			|||||||
djangorestframework~=3.9.0
 | 
					djangorestframework~=3.9.0
 | 
				
			||||||
pyyaml~=3.13
 | 
					pyyaml~=3.13
 | 
				
			||||||
coreapi~=2.3.3
 | 
					coreapi~=2.3.3
 | 
				
			||||||
uwsgi~=2.0.18
 | 
					 | 
				
			||||||
mysqlclient~=1.4.0
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								users/migrations/0041_auto_20200923_2030.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								users/migrations/0041_auto_20200923_2030.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# Generated by Django 2.2.12 on 2020-09-23 18:30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from django.db import migrations, models
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Migration(migrations.Migration):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dependencies = [
 | 
				
			||||||
 | 
					        ('users', '0040_delete_clef'),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    operations = [
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='user',
 | 
				
			||||||
 | 
					            name='address',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=255, verbose_name='address'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					        migrations.AlterField(
 | 
				
			||||||
 | 
					            model_name='user',
 | 
				
			||||||
 | 
					            name='telephone',
 | 
				
			||||||
 | 
					            field=models.CharField(blank=True, default='', max_length=15, verbose_name='phone number'),
 | 
				
			||||||
 | 
					            preserve_default=False,
 | 
				
			||||||
 | 
					        ),
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -13,13 +13,11 @@ class User(AbstractUser):
 | 
				
			|||||||
    telephone = models.CharField(
 | 
					    telephone = models.CharField(
 | 
				
			||||||
        verbose_name=_('phone number'),
 | 
					        verbose_name=_('phone number'),
 | 
				
			||||||
        max_length=15,
 | 
					        max_length=15,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    address = models.CharField(
 | 
					    address = models.CharField(
 | 
				
			||||||
        verbose_name=_('address'),
 | 
					        verbose_name=_('address'),
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
        blank=True,
 | 
					        blank=True,
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    maxemprunt = models.IntegerField(
 | 
					    maxemprunt = models.IntegerField(
 | 
				
			||||||
@@ -69,3 +67,6 @@ class Adhesion(models.Model):
 | 
				
			|||||||
    class Meta:
 | 
					    class Meta:
 | 
				
			||||||
        verbose_name = _('membership year')
 | 
					        verbose_name = _('membership year')
 | 
				
			||||||
        verbose_name_plural = _('membership years')
 | 
					        verbose_name_plural = _('membership years')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __str__(self):
 | 
				
			||||||
 | 
					        return f"{self.starting_in} - {self.ending_in}"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user