Skip to content
This repository has been archived by the owner on May 30, 2018. It is now read-only.

Commit

Permalink
Travail sur les dossiers (#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
timoguic committed Mar 31, 2018
1 parent a1fed27 commit a4bd68d
Show file tree
Hide file tree
Showing 13 changed files with 89 additions and 25 deletions.
Empty file added drf_sp_hub/dossier/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions drf_sp_hub/dossier/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.contrib import admin

from .models import Dossier

admin.site.register(Dossier)
5 changes: 5 additions & 0 deletions drf_sp_hub/dossier/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.apps import AppConfig


class DossierConfig(AppConfig):
name = 'dossier'
8 changes: 8 additions & 0 deletions drf_sp_hub/dossier/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from django import forms

from .models import Dossier

class DossierForm(forms.ModelForm):
class Meta:
model = Dossier
fields = [ 'title', 'redacteurs', 'sommaire', 'articles' ]
13 changes: 13 additions & 0 deletions drf_sp_hub/dossier/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from django.db import models
from django.conf import settings

class Dossier(models.Model):
title = models.CharField(max_length=200, null=False, blank=False)
redacteurs = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True)
sommaire = models.ForeignKey('article.Article', null=True, blank=True, on_delete=models.SET_NULL)
articles = models.ManyToManyField('article.Article', blank=True, related_name='dossiers', through='DossierOrder')

class DossierOrder(models.Model):
order = models.PositiveIntegerField()
dossier = models.ForeignKey(Dossier, on_delete=models.CASCADE)
article = models.ForeignKey('article.Article', on_delete=models.CASCADE)
3 changes: 3 additions & 0 deletions drf_sp_hub/dossier/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
16 changes: 16 additions & 0 deletions drf_sp_hub/dossier/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from django.conf.urls import url, include

from .views import DossierList, DossierAdd, DossierDetail, DossierEdit

app_name = 'dossier'

dossier_patterns = [
url(r'^$', DossierList.as_view(), name='list'),
url(r'^new$', DossierAdd.as_view(), name='add'),
url(r'^(?P<pk>.+)/$', DossierDetail.as_view(), name='display'),
url(r'^(?P<pk>.+)/edit$', DossierEdit.as_view(), name='edit'),
]

urlpatterns = [
url(r'^dossiers/', include(dossier_patterns)),
]
26 changes: 26 additions & 0 deletions drf_sp_hub/dossier/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from django.shortcuts import render
from django.views.generic import ListView, DetailView, CreateView, UpdateView

from .models import Dossier
from .forms import DossierForm

from lxml import etree

class DossierList(ListView):
model = Dossier
context_object_name = 'dossiers'
template_name = 'list_page.html'

class DossierDetail(DetailView):
model = Dossier
template_name = 'display.html'

class DossierEdit(UpdateView):
model = Dossier
form_class = DossierForm
template_name = 'edit.html'

class DossierAdd(CreateView):
model = Dossier
form_class = DossierForm
template_name = 'edit.html'
16 changes: 0 additions & 16 deletions drf_sp_hub/sp_app/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,8 @@

from django.urls import reverse

from django.utils.timezone import now as tznow

from enumfields import EnumIntegerField
from enumfields import Enum

from django.contrib.postgres.fields import JSONField

class Dossier(models.Model):
title = models.CharField(max_length=200, null=False, blank=False)
redacteurs = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True)
sommaire = models.ForeignKey('article.Article', null=True, blank=True, on_delete=models.SET_NULL)
articles = models.ManyToManyField('article.Article', blank=True, related_name='dossiers', through='DossierOrder')

class DossierOrder(models.Model):
order = models.PositiveIntegerField()
dossier = models.ForeignKey(Dossier, on_delete=models.CASCADE)
article = models.ForeignKey('article.Article', on_delete=models.CASCADE)

class Conversation(models.Model):
title = models.CharField(max_length=200, null=False, blank=False)
description = models.TextField(null=True, blank=True)
Expand Down
9 changes: 1 addition & 8 deletions drf_sp_hub/sp_app/signals.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
import logging
import os
import re
from lxml import etree
import csv

import json
import time

from django.utils.html import strip_tags

from django.db.models.signals import post_save, post_delete, pre_save
from django.dispatch import receiver

from .models import Conversation
from spkeyword.models import SPKeyword, SPCategory
from .utils.html_importer import HTMLImporter

@receiver(pre_save, sender=Conversation)
def update_timeline_before_save(sender, instance, **kwargs):
Expand Down
11 changes: 10 additions & 1 deletion drf_sp_hub/sp_app/utils/html_importer.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,16 @@ def process_file(self):
self.update_authors_field()
self.associate_editor_keywords()
self.associate_author_keywords()

self.associate_dossier()

def associate_dossier(self):
# <span property="isPartOf" typeof="PublicationVolume" resource="#periodical" class="titreDossier">Ontologie du num&#233;rique</span>
info_dossier = self.tree.xpath("//span[@property='isPartOf' and @class='titreDossier']")
if info_dossier:
for d in info_dossier:
dossier_title = d.text
dossier_obj = Dossier.objects.get_or_create(title=dossier_title)
self.instance.dossiers.add(dossier_obj)

def update_authors_field(self):
authors = self.tree.xpath("//div[@vocab='http://xmlns.com/foaf/0.1/' and @typeof='Person' and @class='foaf-author']")
Expand Down
1 change: 1 addition & 0 deletions drf_sp_hub/sp_hub/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
INSTALLED_APPS = [
'spkeyword.apps.SpKeywordConfig',
'article.apps.ArticleConfig',
'dossier.apps.DossierConfig',
'sp_app.apps.SpAppConfig',
'sp_api.apps.SpApiConfig',
'logging',
Expand Down
1 change: 1 addition & 0 deletions drf_sp_hub/sp_hub/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
url(r'^accounts/', include('allauth.urls')),
url(r'^', include('sp_app.urls', namespace='sp_app')),
url(r'^', include('article.urls', namespace='article')),
url(r'^', include('dossier.urls', namespace='dossier')),
url(r'^', include('spkeyword.urls', namespace='spkeyword')),
url(r'^$', homepage_view, name='home'),
]

0 comments on commit a4bd68d

Please sign in to comment.