# Generated by Django 2.2.10 on 2020-02-19 14:41
import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
[docs]class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Contract',
fields=[
('abbrv', models.CharField(db_index=True, max_length=20, primary_key=True, serialize=False, unique=True, verbose_name='Abbréviation')),
('name', models.CharField(max_length=75, verbose_name='Intitulé complet')),
('comment', models.TextField(blank=True, verbose_name='Commentaire')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Ajouté le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifié le')),
],
options={
'verbose_name': 'Type de contrat',
'verbose_name_plural': 'Types de contrats',
'ordering': ['abbrv'],
},
),
migrations.CreateModel(
name='GeorezoRSS',
fields=[
('id_rss', models.IntegerField(db_index=True, primary_key=True, serialize=False, verbose_name='Identifiant du flux RSS')),
('title', models.CharField(blank=True, help_text='Doit être de la forme [TYPE_CONTRAT] INTITULÉ - LIEU (CODE_DÉPARTEMENT_OU_PAYS)', max_length=250, null=True, validators=[django.core.validators.MaxLengthValidator(250)], verbose_name="Titre de l'offre")),
('content', models.TextField(blank=True, null=True, verbose_name="Contenu de l'offre")),
('pub_date', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Publiée le')),
('created', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Ajoutée le')),
('updated', models.DateTimeField(auto_now=True, db_index=True, verbose_name='Modifiée le')),
('source', models.BooleanField()),
('to_update', models.BooleanField(db_index=True, default=False, help_text="Cocher cette case pour que l'offre soit de nouveau analysée à la prochaine mise à jour.", verbose_name='Analyser de nouveau')),
],
options={
'verbose_name_plural': "Offres d'emploi brutes issues du RSS de GeoRezo",
'db_table': 'georezo_rss',
'get_latest_by': 'pub_date',
'unique_together': {('id_rss', 'pub_date', 'source')},
},
),
migrations.CreateModel(
name='JobPosition',
fields=[
('name', models.CharField(max_length=100, primary_key=True, serialize=False, unique=True, verbose_name='Intitulé')),
('comment', models.CharField(blank=True, max_length=5, verbose_name='Description')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Créé le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifié le')),
],
options={
'verbose_name': 'Métier',
'verbose_name_plural': 'Métiers',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Place',
fields=[
('name', models.CharField(max_length=100, primary_key=True, serialize=False, unique=True, verbose_name='Nom')),
('code', models.CharField(help_text="Code du département ou <a href='https://fr.wikipedia.org/wiki/ISO_3166-1#Table_de_codage'>code ISO à 3 lettres pour un pays (voir sur Wikipédia)</a>.", max_length=5, unique=True, verbose_name='Code')),
('scale', models.CharField(blank=True, choices=[('DEPARTEMENT', 'Département français'), ('TOM', 'Territoire français'), ('COUNTRY', 'Pays'), ('UNDEFINED', 'Indéfini')], db_index=True, default='DEPARTEMENT', max_length=50, verbose_name='Echelle')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Ajouté le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifié le')),
],
options={
'verbose_name': 'Lieu',
'verbose_name_plural': 'Lieux',
'ordering': ['code'],
},
),
migrations.CreateModel(
name='Source',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(db_index=True, default='GEOREZO_RSS', max_length=50, unique=True, verbose_name='Nom')),
('url', models.URLField(blank=True, verbose_name='Adresse web')),
('comment', models.TextField(blank=True, verbose_name='Commentaire')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Ajoutée le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifiée le')),
],
options={
'verbose_name': "Source de l'offre",
'verbose_name_plural': 'Sources',
},
),
migrations.CreateModel(
name='Technology',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(db_index=True, max_length=200, unique=True, verbose_name='Nom')),
('license', models.CharField(choices=[('OSS', 'Libre'), ('PROPRIETARY', 'Propriétaire'), ('UNDEFINED', 'Indéfini')], default='UNDEFINED', max_length=20, verbose_name='Licence principale')),
('type_soft', models.CharField(choices=[('LANGUAGE', 'Language de programmation'), ('SOFTWARE', 'Logiciel'), ('UNDEFINED', 'Indéfini')], default='UNDEFINED', max_length=50, verbose_name='Catégorie')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Ajoutée le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifiée le')),
],
options={
'verbose_name': 'Technologie',
'verbose_name_plural': 'Technologies',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='TechnologyVariations',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('label', models.CharField(default='UNDEFINED', max_length=200, verbose_name='Variante du libellé')),
('name', models.ForeignKey(default='UNDEFINED', on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.Technology', verbose_name='Technologie correspondante')),
],
options={
'verbose_name': 'Variante des technologies',
'verbose_name_plural': 'Variantes des technologies',
},
),
migrations.CreateModel(
name='PlaceVariations',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('label', models.CharField(default='UNDEFINED', max_length=200, verbose_name='Variante du libellé')),
('name', models.ForeignKey(default='UNDEFINED', on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.Place', verbose_name='Lieu correspondant')),
],
options={
'verbose_name': 'Variante de lieu',
'verbose_name_plural': 'Variantes des lieux',
},
),
migrations.CreateModel(
name='Offer',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('id_rss', models.IntegerField(blank=True, db_index=True, unique=True)),
('title', models.CharField(max_length=200, validators=[django.core.validators.MaxLengthValidator(200)], verbose_name='Titre')),
('content', models.TextField(null=True, verbose_name='Contenu')),
('pub_date', models.DateTimeField(null=True, verbose_name='Date de publication sur le RSS')),
('week', models.IntegerField(help_text='Format : <em>YYYYSS</em>.', null=True, verbose_name='Semaine de publication')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Ajoutée le')),
('updated', models.DateTimeField(auto_now=True, verbose_name='Modifiée le')),
('contract', models.ForeignKey(default='ND', null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.Contract', verbose_name='Type de contrat')),
('jobs_positions', models.ManyToManyField(to='jobs.JobPosition', verbose_name='Métiers')),
('place', models.ForeignKey(default='ND', null=True, on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.Place', verbose_name='Lieu')),
('raw_offer', models.OneToOneField(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='clean_offer', to='jobs.GeorezoRSS')),
('source', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='jobs.Source', verbose_name='Source')),
('technologies', models.ManyToManyField(to='jobs.Technology', verbose_name='Technologies')),
],
options={
'verbose_name': "Offre d'emploi",
'verbose_name_plural': "Offres d'emploi",
'ordering': ['id_rss'],
'get_latest_by': 'pub_date',
},
),
migrations.CreateModel(
name='JobPositionVariations',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('label', models.CharField(default='UNDEFINED', max_length=200, verbose_name='Variante du libellé')),
('name', models.ForeignKey(default='UNDEFINED', on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.JobPosition', verbose_name='Métier correspondant')),
],
options={
'verbose_name': 'Variante de métier',
'verbose_name_plural': 'Variantes des métiers',
},
),
migrations.CreateModel(
name='ContractVariations',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('label', models.CharField(default='UNDEFINED', max_length=200, verbose_name='Variante du libellé')),
('name', models.ForeignKey(default='UNDEFINED', on_delete=django.db.models.deletion.SET_DEFAULT, to='jobs.Contract', verbose_name='Type de contrat correspondant')),
],
options={
'verbose_name': 'Variante du type de contrat',
'verbose_name_plural': 'Variantes des types de contrats',
},
),
]