Compare commits
24 Commits
Author | SHA1 | Date |
---|---|---|
Agate | 979bfb7ca9 | |
Agate | d7570c9910 | |
Frédéric Péters | b305334c75 | |
Frédéric Péters | 156ff794f4 | |
Frédéric Péters | 43c7cf6fcc | |
Frédéric Péters | a76678bfcf | |
Frédéric Péters | a6b22e6b40 | |
Frédéric Péters | 5e08716cd9 | |
Frédéric Péters | 214f8e813d | |
Frédéric Péters | f4092a6534 | |
Frédéric Péters | 55f359c09d | |
Frédéric Péters | 417768cce7 | |
Frédéric Péters | 2dc4176591 | |
Frédéric Péters | 14fd10268e | |
Thomas NOËL | 7066d22b0a | |
Thomas NOËL | b84bec87e9 | |
Benjamin Dauvergne | fe1b4fa541 | |
Benjamin Dauvergne | d4d1234615 | |
Benjamin Dauvergne | f5828d45e4 | |
Benjamin Dauvergne | 97932ec03c | |
Benjamin Dauvergne | 9865ae0b61 | |
Benjamin Dauvergne | 9656393c58 | |
Emmanuel Cazenave | 78f65b8603 | |
Frédéric Péters | 424417c08c |
|
@ -17,7 +17,7 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
@Library('eo-jenkins-lib@master') import eo.Utils
|
||||
@Library('eo-jenkins-lib@main') import eo.Utils
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
@ -41,10 +41,18 @@ pipeline {
|
|||
stage('Packaging') {
|
||||
steps {
|
||||
script {
|
||||
if (env.JOB_NAME == 'passerelle-atreal-openads' && env.GIT_BRANCH == 'origin/master') {
|
||||
sh 'sudo -H -u eobuilder /usr/local/bin/eobuilder passerelle-atreal-openads'
|
||||
env.SHORT_JOB_NAME=sh(
|
||||
returnStdout: true,
|
||||
// given JOB_NAME=gitea/project/PR-46, returns project
|
||||
// given JOB_NAME=project/main, returns project
|
||||
script: '''
|
||||
echo "${JOB_NAME}" | sed "s/gitea\\///" | awk -F/ '{print $1}'
|
||||
'''
|
||||
).trim()
|
||||
if (env.GIT_BRANCH == 'main' || env.GIT_BRANCH == 'origin/main') {
|
||||
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder ${SHORT_JOB_NAME}"
|
||||
} else if (env.GIT_BRANCH.startsWith('hotfix/')) {
|
||||
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder -d stretch --branch ${env.GIT_BRANCH} --hotfix passerelle-atreal-openads"
|
||||
sh "sudo -H -u eobuilder /usr/local/bin/eobuilder --branch ${env.GIT_BRANCH} --hotfix ${SHORT_JOB_NAME}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.18 on 2019-08-22 16:28
|
||||
# Generated by Django 1.11.15 on 2019-04-30 12:07
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import atreal_openads.utils
|
||||
import django.contrib.postgres.fields.jsonb
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import atreal_openads.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
@ -12,7 +12,7 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('base', '0013_delete_templatevar'),
|
||||
('base', '0012_job'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
|
@ -23,131 +23,30 @@ class Migration(migrations.Migration):
|
|||
('title', models.CharField(max_length=50, verbose_name='Title')),
|
||||
('description', models.TextField(verbose_name='Description')),
|
||||
('slug', models.SlugField(unique=True, verbose_name='Identifier')),
|
||||
('basic_auth_username', models.CharField(blank=True, max_length=128, verbose_name='Basic authentication username')),
|
||||
('basic_auth_password', models.CharField(blank=True, max_length=128, verbose_name='Basic authentication password')),
|
||||
('client_certificate', models.FileField(blank=True, null=True, upload_to='', verbose_name='TLS client certificate')),
|
||||
('trusted_certificate_authorities', models.FileField(blank=True, null=True, upload_to='', verbose_name='TLS trusted CAs')),
|
||||
('verify_cert', models.BooleanField(default=True, verbose_name='TLS verify certificates')),
|
||||
('http_proxy', models.CharField(blank=True, max_length=128, verbose_name='HTTP and HTTPS proxy')),
|
||||
('default_collectivite_openADS_id', models.PositiveIntegerField(blank=True, default=0, help_text='ex: 3', verbose_name="Default 'collectivite' (identifier in openADS)")),
|
||||
('myjobs', django.contrib.postgres.fields.jsonb.JSONField(default={})),
|
||||
('collectivite', models.CharField(blank=True, default='', help_text='ex: Marseille, ou ex: 3', max_length=255, verbose_name='Collectivity (identifier)')),
|
||||
('openADS_API_key', models.CharField(default='', help_text='ex: ah9pGbKKHv5ToF3cPQuV', max_length=255, verbose_name='openADS API key (secret)')),
|
||||
('openADS_API_url', models.URLField(default='', help_text='ex: https://openads.your_domain.net/api/', max_length=255, verbose_name='openADS API URL')),
|
||||
('users', models.ManyToManyField(blank=True, related_name='_atrealopenads_users_+', related_query_name='+', to='base.ApiUser')),
|
||||
('users', models.ManyToManyField(blank=True, to='base.ApiUser')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['openADS_API_url'],
|
||||
'verbose_name': 'openADS',
|
||||
'verbose_name_plural': 'openADS',
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Collectivite',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(blank=True, default='', max_length=150, verbose_name='Name')),
|
||||
('openADS_id', models.PositiveIntegerField(help_text='ex: 3', verbose_name='openADS identifier')),
|
||||
('connecteur', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='collectivites', related_query_name='collectivite', to='atreal_openads.AtrealOpenads')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['name'],
|
||||
'verbose_name': 'Collectivite',
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ForwardFile',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('numero_demande', models.CharField(max_length=20, verbose_name='Tracking code')),
|
||||
('numero_dossier', models.CharField(max_length=20, verbose_name='Numero dossier')),
|
||||
('type_fichier', models.CharField(max_length=10, verbose_name='Type')),
|
||||
('file_hash', models.CharField(blank=True, default='', max_length=100, verbose_name='Hash')),
|
||||
('orig_filename', models.CharField(blank=True, default='', max_length=100, verbose_name='Filename')),
|
||||
('content_type', models.CharField(blank=True, default='', max_length=100, verbose_name='Content type')),
|
||||
('size', models.PositiveIntegerField(default=0, verbose_name='Size')),
|
||||
('upload_file', models.FileField(blank=True, null=True, upload_to=atreal_openads.utils.get_upload_path, verbose_name='File')),
|
||||
('upload_attempt', models.PositiveIntegerField(blank=True, default=0, verbose_name='Upload attempt')),
|
||||
('upload_status', models.CharField(choices=[('pending', 'Pending'), ('uploading', 'Uploading'), ('failed', 'Failed'), ('success', 'Success')], default='pending', max_length=10, verbose_name='Upload status')),
|
||||
('upload_msg', models.CharField(blank=True, default='', max_length=255, verbose_name='Upload message')),
|
||||
('last_update_datetime', models.DateTimeField(auto_now=True, verbose_name='Last update')),
|
||||
('collectivite', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='forward_files', related_query_name='forward_file', to='atreal_openads.Collectivite')),
|
||||
('connecteur', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='forward_files', related_query_name='forward_file', to='atreal_openads.AtrealOpenads')),
|
||||
('numero_demande', models.CharField(max_length=20)),
|
||||
('numero_dossier', models.CharField(max_length=20)),
|
||||
('type_fichier', models.CharField(max_length=10)),
|
||||
('file_hash', models.CharField(blank=True, default='', max_length=100)),
|
||||
('orig_filename', models.CharField(blank=True, default='', max_length=100)),
|
||||
('content_type', models.CharField(blank=True, default='', max_length=100)),
|
||||
('upload_file', models.FileField(null=True, upload_to=atreal_openads.models.get_upload_path)),
|
||||
('upload_status', models.CharField(blank=True, default='', max_length=10)),
|
||||
('upload_msg', models.CharField(blank=True, default='', max_length=255)),
|
||||
('last_update_datetime', models.DateTimeField(auto_now=True)),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-last_update_datetime'],
|
||||
'verbose_name': 'Forward File',
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Guichet',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('ouverture_jour_h', models.TimeField(help_text='ex: 08:30', verbose_name='Hour of opening (each day)')),
|
||||
('fermeture_jour_h', models.TimeField(help_text='ex: 17:00', verbose_name='Hour of closing (each day)')),
|
||||
('ouverture_sem_d', models.PositiveIntegerField(choices=[(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')], default=1, help_text='ex: Lundi', verbose_name='Day of opening (each week)')),
|
||||
('fermeture_sem_d', models.PositiveIntegerField(choices=[(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')], default=6, help_text='ex: Samedi', verbose_name='Day of closing (each week)')),
|
||||
('ouverture_sem_h', models.TimeField(help_text='ex: 08:30', verbose_name='Hour of opening (on opening day)')),
|
||||
('fermeture_sem_h', models.TimeField(help_text='ex: 12:15', verbose_name='Hour of closing (on closing day)')),
|
||||
('collectivite', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='guichet', to='atreal_openads.Collectivite')),
|
||||
],
|
||||
options={
|
||||
'ordering': ['collectivite'],
|
||||
'verbose_name': 'Guichet',
|
||||
'verbose_name_plural': 'Guichets',
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='guichet',
|
||||
index=models.Index(fields=['collectivite'], name='su_collectivite_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['connecteur'], name='ff_connecteur_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['collectivite'], name='ff_collectivite_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_demande', 'numero_dossier'], name='ff_deman_doss_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_demande'], name='ff_demande_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_dossier'], name='ff_dossier_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['orig_filename'], name='ff_filename_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['upload_status'], name='ff_status_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['last_update_datetime'], name='ff_last_up_dt_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['connecteur', 'openADS_id'], name='col_conn_openADSid_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['connecteur'], name='col_connecteur_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['openADS_id'], name='col_openADS_id_idx'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='collectivite',
|
||||
unique_together=set([('connecteur', 'openADS_id')]),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -0,0 +1,241 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.29 on 2020-04-15 08:41
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import atreal_openads.utils
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('atreal_openads', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Collectivite',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(blank=True, default='', max_length=150, verbose_name='Name')),
|
||||
('openADS_id', models.PositiveIntegerField(help_text='ex: 3', verbose_name='openADS identifier')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Collectivite',
|
||||
'ordering': ['name'],
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Guichet',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('ouverture_jour_h', models.TimeField(help_text='ex: 08:30', verbose_name='Hour of opening (each day)')),
|
||||
('fermeture_jour_h', models.TimeField(help_text='ex: 17:00', verbose_name='Hour of closing (each day)')),
|
||||
('ouverture_sem_d', models.PositiveIntegerField(choices=[(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')], default=1, help_text='ex: Lundi', verbose_name='Day of opening (each week)')),
|
||||
('fermeture_sem_d', models.PositiveIntegerField(choices=[(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')], default=6, help_text='ex: Samedi', verbose_name='Day of closing (each week)')),
|
||||
('ouverture_sem_h', models.TimeField(help_text='ex: 08:30', verbose_name='Hour of opening (on opening day)')),
|
||||
('fermeture_sem_h', models.TimeField(help_text='ex: 12:15', verbose_name='Hour of closing (on closing day)')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Guichet',
|
||||
'verbose_name_plural': 'Guichets',
|
||||
'ordering': ['collectivite'],
|
||||
},
|
||||
bases=(models.Model, atreal_openads.utils.BaseModel),
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='atrealopenads',
|
||||
options={'ordering': ['openADS_API_url'], 'verbose_name': 'openADS', 'verbose_name_plural': 'openADS'},
|
||||
),
|
||||
migrations.AlterModelOptions(
|
||||
name='forwardfile',
|
||||
options={'ordering': ['-last_update_datetime'], 'verbose_name': 'Forward File'},
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='atrealopenads',
|
||||
name='collectivite',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='atrealopenads',
|
||||
name='myjobs',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='atrealopenads',
|
||||
name='openADS_API_key',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='basic_auth_password',
|
||||
field=models.CharField(blank=True, max_length=128, verbose_name='Basic authentication password'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='basic_auth_username',
|
||||
field=models.CharField(blank=True, max_length=128, verbose_name='Basic authentication username'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='client_certificate',
|
||||
field=models.FileField(blank=True, null=True, upload_to='', verbose_name='TLS client certificate'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='default_collectivite_openADS_id',
|
||||
field=models.PositiveIntegerField(blank=True, default=0, help_text='ex: 3', verbose_name="Default 'collectivite' (identifier in openADS)"),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='http_proxy',
|
||||
field=models.CharField(blank=True, max_length=128, verbose_name='HTTP and HTTPS proxy'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='trusted_certificate_authorities',
|
||||
field=models.FileField(blank=True, null=True, upload_to='', verbose_name='TLS trusted CAs'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='atrealopenads',
|
||||
name='verify_cert',
|
||||
field=models.BooleanField(default=True, verbose_name='TLS verify certificates'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='forwardfile',
|
||||
name='connecteur',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='forward_files', related_query_name='forward_file', to='atreal_openads.AtrealOpenads'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='forwardfile',
|
||||
name='size',
|
||||
field=models.PositiveIntegerField(default=0, verbose_name='Size'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='forwardfile',
|
||||
name='upload_attempt',
|
||||
field=models.PositiveIntegerField(blank=True, default=0, verbose_name='Upload attempt'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='atrealopenads',
|
||||
name='users',
|
||||
field=models.ManyToManyField(blank=True, related_name='_atrealopenads_users_+', related_query_name='+', to='base.ApiUser'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='content_type',
|
||||
field=models.CharField(blank=True, default='', max_length=100, verbose_name='Content type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='file_hash',
|
||||
field=models.CharField(blank=True, default='', max_length=100, verbose_name='Hash'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='last_update_datetime',
|
||||
field=models.DateTimeField(auto_now=True, verbose_name='Last update'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='numero_demande',
|
||||
field=models.CharField(max_length=20, verbose_name='Tracking code'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='numero_dossier',
|
||||
field=models.CharField(max_length=20, verbose_name='Numero dossier'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='orig_filename',
|
||||
field=models.CharField(blank=True, default='', max_length=100, verbose_name='Filename'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='type_fichier',
|
||||
field=models.CharField(max_length=10, verbose_name='Type'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='upload_file',
|
||||
field=models.FileField(blank=True, null=True, upload_to=atreal_openads.utils.get_upload_path, verbose_name='File'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='upload_msg',
|
||||
field=models.CharField(blank=True, default='', max_length=255, verbose_name='Upload message'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='forwardfile',
|
||||
name='upload_status',
|
||||
field=models.CharField(choices=[('pending', 'Pending'), ('uploading', 'Uploading'), ('failed', 'Failed'), ('success', 'Success')], default='pending', max_length=10, verbose_name='Upload status'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='guichet',
|
||||
name='collectivite',
|
||||
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='guichet', to='atreal_openads.Collectivite'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='collectivite',
|
||||
name='connecteur',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='collectivites', related_query_name='collectivite', to='atreal_openads.AtrealOpenads'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='forwardfile',
|
||||
name='collectivite',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='forward_files', related_query_name='forward_file', to='atreal_openads.Collectivite'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='guichet',
|
||||
index=models.Index(fields=['collectivite'], name='su_collectivite_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['connecteur', 'openADS_id'], name='col_conn_openADSid_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['connecteur'], name='col_connecteur_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='collectivite',
|
||||
index=models.Index(fields=['openADS_id'], name='col_openADS_id_idx'),
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='collectivite',
|
||||
unique_together=set([('connecteur', 'openADS_id')]),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['connecteur'], name='ff_connecteur_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['collectivite'], name='ff_collectivite_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_demande', 'numero_dossier'], name='ff_deman_doss_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_demande'], name='ff_demande_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['numero_dossier'], name='ff_dossier_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['orig_filename'], name='ff_filename_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['upload_status'], name='ff_status_idx'),
|
||||
),
|
||||
migrations.AddIndex(
|
||||
model_name='forwardfile',
|
||||
index=models.Index(fields=['last_update_datetime'], name='ff_last_up_dt_idx'),
|
||||
),
|
||||
]
|
|
@ -1 +1 @@
|
|||
9
|
||||
10
|
||||
|
|
|
@ -2,7 +2,7 @@ Source: passerelle-atreal-openads
|
|||
Maintainer: Michael Bideau <mbideau+publik@atreal.fr>
|
||||
Section: python
|
||||
Priority: optional
|
||||
Build-Depends: python-setuptools (>= 0.6b3), python-all (>= 2.6.6-3), debhelper (>= 9), python-django
|
||||
Build-Depends: python-setuptools, python-all, debhelper (>= 10), python-django, python3-setuptools, python3-all, python3-django
|
||||
Standards-Version: 3.9.1
|
||||
|
||||
Package: python-passerelle-atreal-openads
|
||||
|
@ -11,3 +11,10 @@ Depends: ${misc:Depends}, ${python:Depends},
|
|||
python-magic
|
||||
Description: Passerelle connector to openADS.API
|
||||
.
|
||||
|
||||
Package: python3-passerelle-atreal-openads
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, ${python3:Depends},
|
||||
python3-magic
|
||||
Description: Passerelle connector to openADS.API (Python 3)
|
||||
.
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#!/usr/bin/make -f
|
||||
|
||||
export PYBUILD_NAME=passerelle-atreal-openads
|
||||
export PYBUILD_DISABLE=test
|
||||
|
||||
%:
|
||||
dh $@ --with python2
|
||||
dh $@ --with python2,python3 --buildsystem=pybuild
|
||||
|
|
|
@ -23,6 +23,10 @@ import sys
|
|||
|
||||
if __name__ == "__main__":
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "passerelle.settings")
|
||||
from django.conf import settings
|
||||
|
||||
if 'atreal_openads' not in settings.INSTALLED_APPS:
|
||||
settings.INSTALLED_APPS += ('atreal_openads',)
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
|
|
39
setup.py
39
setup.py
|
@ -23,11 +23,12 @@ import subprocess
|
|||
import sys
|
||||
|
||||
from setuptools.command.install_lib import install_lib as _install_lib
|
||||
from setuptools.command.sdist import sdist
|
||||
from distutils.command.build import build as _build
|
||||
from distutils.command.sdist import sdist
|
||||
from distutils.cmd import Command
|
||||
from setuptools import setup, find_packages
|
||||
|
||||
|
||||
class eo_sdist(sdist):
|
||||
def run(self):
|
||||
if os.path.exists('VERSION'):
|
||||
|
@ -40,20 +41,32 @@ class eo_sdist(sdist):
|
|||
if os.path.exists('VERSION'):
|
||||
os.remove('VERSION')
|
||||
|
||||
|
||||
def get_version():
|
||||
'''Use the VERSION, if absent generates a version with git describe, if not
|
||||
tag exists, take 0.0- and add the length of the commit log.
|
||||
'''
|
||||
if os.path.exists('VERSION'):
|
||||
version_file = open('VERSION', 'r')
|
||||
version = version_file.read()
|
||||
version_file.close()
|
||||
return version
|
||||
with open('VERSION', 'r') as v:
|
||||
return v.read()
|
||||
if os.path.exists('.git'):
|
||||
p = subprocess.Popen(['git', 'describe', '--dirty', '--match=v*'], stdout=subprocess.PIPE)
|
||||
p = subprocess.Popen(
|
||||
['git', 'describe', '--dirty=.dirty', '--match=v*'],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
)
|
||||
result = p.communicate()[0]
|
||||
if p.returncode == 0:
|
||||
version = str(result.split()[0][1:])
|
||||
version = version.replace('-', '.')
|
||||
result = result.decode('ascii').strip()[1:] # strip spaces/newlines and initial v
|
||||
if '-' in result: # not a tagged version
|
||||
real_number, commit_count, commit_hash = result.split('-', 2)
|
||||
version = '%s.post%s+%s' % (real_number, commit_count, commit_hash)
|
||||
else:
|
||||
version = result
|
||||
return version
|
||||
return '0'
|
||||
else:
|
||||
return '0.0.post%s' % len(subprocess.check_output(['git', 'rev-list', 'HEAD']).splitlines())
|
||||
return '0.0'
|
||||
|
||||
|
||||
class compile_translations(Command):
|
||||
|
@ -67,17 +80,18 @@ class compile_translations(Command):
|
|||
pass
|
||||
|
||||
def run(self):
|
||||
curdir = os.getcwd()
|
||||
try:
|
||||
from django.core.management import call_command
|
||||
for path, dirs, files in os.walk('atreal_openads'):
|
||||
if 'locale' not in dirs:
|
||||
continue
|
||||
curdir = os.getcwd()
|
||||
os.chdir(os.path.realpath(path))
|
||||
call_command('compilemessages')
|
||||
os.chdir(curdir)
|
||||
except ImportError:
|
||||
sys.stderr.write('!!! Please install Django >= 1.4 to build translations\n')
|
||||
finally:
|
||||
os.chdir(curdir)
|
||||
|
||||
|
||||
class build(_build):
|
||||
|
@ -96,7 +110,6 @@ setup(
|
|||
author='atReal',
|
||||
author_email="support@atreal.fr",
|
||||
description="A Publik connector for Passerelle to openADS",
|
||||
long_description=open('README').read(),
|
||||
classifiers=[
|
||||
"Programming Language :: Python :: 2.7",
|
||||
"Development Status :: Testing",
|
||||
|
@ -113,7 +126,7 @@ setup(
|
|||
'install_lib': install_lib,
|
||||
'sdist': eo_sdist
|
||||
},
|
||||
scripts=['manage.py'],
|
||||
scripts=[],
|
||||
install_requires=[
|
||||
'python-magic'
|
||||
]
|
||||
|
|
|
@ -182,7 +182,8 @@ def forwardfile_1(fake_conf, db, atreal_openads, collectivite_1):
|
|||
orig_filename=os.path.basename(fake_conf['TEST_FILE_CERFA_DIA']),
|
||||
content_type='application/pdf',
|
||||
file_hash='ffdf456fdsvgb4bgfb6g4f5b',
|
||||
upload_file=File(open(fake_conf['TEST_FILE_CERFA_DIA'], 'rb')),
|
||||
upload_file=File(open(fake_conf['TEST_FILE_CERFA_DIA'], 'rb'),
|
||||
name=os.path.basename(fake_conf['TEST_FILE_CERFA_DIA'])),
|
||||
upload_status='pending'
|
||||
)
|
||||
|
||||
|
@ -200,7 +201,8 @@ def forwardfile_2(fake_conf, connecteur=None, collectivite=None):
|
|||
orig_filename=os.path.basename(fake_conf['TEST_FILE_CERFA_DIA']),
|
||||
content_type='application/pdf',
|
||||
file_hash='ffdf456fdsvgb4bgfb6g4f5b',
|
||||
upload_file=File(open(fake_conf['TEST_FILE_CERFA_DIA'], 'rb')),
|
||||
upload_file=File(open(fake_conf['TEST_FILE_CERFA_DIA'], 'rb'),
|
||||
name=os.path.basename(fake_conf['TEST_FILE_CERFA_DIA'])),
|
||||
upload_status='pending'
|
||||
)
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ def build_forwardfile_from_path(connecteur, path, numero_dossier, type_fichier):
|
|||
fwd_file.content_type = magic.from_file(path, mime=True)
|
||||
with open(path, 'rb') as file_pt:
|
||||
fwd_file.file_hash = get_file_digest(file_pt)
|
||||
fwd_file.upload_file = File(open(path, 'rb'))
|
||||
fwd_file.upload_file = File(open(path, 'rb'), name=fwd_file.orig_filename)
|
||||
fwd_file.upload_status = 'pending'
|
||||
return fwd_file
|
||||
return None
|
||||
|
@ -206,7 +206,7 @@ def test_guichet(collectivite_1_guichet):
|
|||
|
||||
assert repr(guichet) == force_encoded_string_output(
|
||||
u'Guichet(id=%s,collectivite=%s,%s)' % (
|
||||
1, force_text(guichet.collectivite), force_text(guichet)
|
||||
guichet.id, force_text(guichet.collectivite), force_text(guichet)
|
||||
)
|
||||
)
|
||||
|
||||
|
|
|
@ -232,9 +232,9 @@ def test_base_model(fake_conf, atreal_openads, collectivite_1, collectivite_1_gu
|
|||
|
||||
assert forwardfile_1.get_url_name('list', plural=True) == 'list-forward-files'
|
||||
|
||||
assert forwardfile_1.get_absolute_url() == '/manage/atreal-openads/atreal/forward-file/1'
|
||||
assert forwardfile_1.get_edit_url() == '/manage/atreal-openads/atreal/edit-forward-file/1'
|
||||
assert forwardfile_1.get_delete_url() == '/manage/atreal-openads/atreal/delete-forward-file/1'
|
||||
assert forwardfile_1.get_absolute_url() == '/manage/atreal-openads/atreal/forward-file/%s' % forwardfile_1.id
|
||||
assert forwardfile_1.get_edit_url() == '/manage/atreal-openads/atreal/edit-forward-file/%s' % forwardfile_1.id
|
||||
assert forwardfile_1.get_delete_url() == '/manage/atreal-openads/atreal/delete-forward-file/%s' % forwardfile_1.id
|
||||
assert forwardfile_1.get_list_url() == '/manage/atreal-openads/atreal/forward-files'
|
||||
|
||||
assert atreal_openads.get_class_name_plural() == 'AtrealOpenads'
|
||||
|
|
|
@ -138,7 +138,7 @@ def test_forwardfile_view(atreal_openads, collectivite_1, forwardfile_1, request
|
|||
|
||||
queryset = view.get_queryset()
|
||||
assert queryset.query is not None
|
||||
assert queryset.query.order_by == ['id']
|
||||
assert list(queryset.query.order_by) == ['id']
|
||||
assert queryset.query.default_ordering
|
||||
assert queryset.query.get_meta().ordering == ['-last_update_datetime']
|
||||
assert queryset.ordered
|
||||
|
@ -146,7 +146,7 @@ def test_forwardfile_view(atreal_openads, collectivite_1, forwardfile_1, request
|
|||
request_1.GET['order-by'] = '-id'
|
||||
queryset = view.get_queryset()
|
||||
assert queryset.query is not None
|
||||
assert queryset.query.order_by == ['-id']
|
||||
assert list(queryset.query.order_by) == ['-id']
|
||||
assert queryset.query.default_ordering
|
||||
|
||||
request_1.path = '/manage/atreal-openads/%s/forward-files' % atreal_openads.slug
|
||||
|
@ -162,7 +162,7 @@ def test_forwardfile_view(atreal_openads, collectivite_1, forwardfile_1, request
|
|||
|
||||
queryset = view.get_queryset()
|
||||
assert queryset.query is not None
|
||||
assert queryset.query.order_by == ['id']
|
||||
assert list(queryset.query.order_by) == ['id']
|
||||
assert queryset.query.default_ordering
|
||||
assert queryset.query.get_meta().ordering == ['-last_update_datetime']
|
||||
assert queryset.ordered
|
||||
|
@ -245,7 +245,7 @@ def test_collectivite_view(atreal_openads, collectivite_1, forwardfile_1, reques
|
|||
|
||||
queryset = view.get_queryset()
|
||||
assert queryset.query is not None
|
||||
assert queryset.query.order_by == ['id']
|
||||
assert list(queryset.query.order_by) == ['id']
|
||||
assert queryset.query.default_ordering
|
||||
assert queryset.query.get_meta().ordering == ['name']
|
||||
assert queryset.ordered
|
||||
|
@ -253,7 +253,7 @@ def test_collectivite_view(atreal_openads, collectivite_1, forwardfile_1, reques
|
|||
request_1.GET['order-by'] = '-id'
|
||||
queryset = view.get_queryset()
|
||||
assert queryset.query is not None
|
||||
assert queryset.query.order_by == ['-id']
|
||||
assert list(queryset.query.order_by) == ['-id']
|
||||
assert queryset.query.default_ordering
|
||||
|
||||
|
||||
|
|
17
tox.ini
17
tox.ini
|
@ -16,7 +16,7 @@
|
|||
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
[tox]
|
||||
envlist = py2-junit, py3-junit-coverage
|
||||
envlist = py3-junit-coverage
|
||||
toxworkdir = {env:TMPDIR:/tmp}/tox-{env:USER}/passerelle-atreal-openads/{env:BRANCH_NAME:}
|
||||
|
||||
[testenv]
|
||||
|
@ -24,18 +24,20 @@ usedevelop =
|
|||
coverage: True
|
||||
nocoverage: False
|
||||
setenv =
|
||||
DB_ENGINE=django.db.backends.postgresql_psycopg2
|
||||
DJANGO_SETTINGS_MODULE=passerelle.settings
|
||||
PASSERELLE_SETTINGS_FILE=tests/settings.py
|
||||
coverage: COVERAGE=--cov-report xml --cov-report html --cov=atreal_openads/
|
||||
junit: JUNIT=--junitxml=junit-{envname}.xml
|
||||
deps =
|
||||
http://git.entrouvert.org/passerelle.git/snapshot/passerelle-master.tar.gz
|
||||
https://git.entrouvert.org/entrouvert/passerelle/archive/main.tar.gz
|
||||
pytest-cov
|
||||
pytest-django
|
||||
pytest>=3.3.0
|
||||
WebTest
|
||||
mock
|
||||
mock<4
|
||||
httmock
|
||||
psycopg2-binary<2.9
|
||||
pylint<1.8
|
||||
pylint-django<0.8.1
|
||||
django-webtest<1.9.3
|
||||
|
@ -43,3 +45,12 @@ deps =
|
|||
commands =
|
||||
py.test {posargs: {env:COVERAGE:} {env:JUNIT:} tests/}
|
||||
coverage: ./pylint.sh atreal_openads/
|
||||
|
||||
[testenv:manage]
|
||||
usedevelop = True
|
||||
setenv =
|
||||
DJANGO_SETTINGS_MODULE=passerelle.settings
|
||||
deps =
|
||||
https://git.entrouvert.org/entrouvert/passerelle/archive/main.tar.gz
|
||||
commands =
|
||||
python3 ./manage.py {posargs:--help}
|
||||
|
|
Reference in New Issue