Compare commits
1 Commits
master
...
wip_revisi
Author | SHA1 | Date | |
---|---|---|---|
1b86fcd78d |
@ -6,6 +6,7 @@ from itertools import groupby
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.timezone import make_aware, now
|
from django.utils.timezone import make_aware, now
|
||||||
|
|
||||||
|
import phpserialize
|
||||||
import request
|
import request
|
||||||
from bs4 import BeautifulSoup as bs
|
from bs4 import BeautifulSoup as bs
|
||||||
|
|
||||||
@ -203,3 +204,50 @@ def convert_node(node, options):
|
|||||||
spip.MotsLiens.objects.get_or_create(
|
spip.MotsLiens.objects.get_or_create(
|
||||||
mot=mot, id_objet=article.pk, objet='article'
|
mot=mot, id_objet=article.pk, objet='article'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
for numero, revision in enumerate(
|
||||||
|
node.noderevisions_set.order_by('timestamp'), start=1
|
||||||
|
):
|
||||||
|
user_attributes = {
|
||||||
|
'nom': revision.user.name,
|
||||||
|
'email': revision.user.mail,
|
||||||
|
'en_ligne': convert_timestamp(revision.user.access),
|
||||||
|
'maj': convert_timestamp(revision.user.created),
|
||||||
|
}
|
||||||
|
auteur, _ = spip.Auteurs.objects.update_or_create(
|
||||||
|
login=revision.user.name, defaults=user_attributes
|
||||||
|
)
|
||||||
|
|
||||||
|
if numero == 1:
|
||||||
|
fragment = phpserialize.dumps({1: revision.body}).decode()
|
||||||
|
else:
|
||||||
|
fragment = phpserialize.dumps(
|
||||||
|
{1: previous.body, 2: revision.body}
|
||||||
|
).decode()
|
||||||
|
# fragment = phpserialize.dumps({1: str(numero-1), 2: revision.body}).decode()
|
||||||
|
|
||||||
|
spip.VersionsFragments.objects.update_or_create(
|
||||||
|
id_fragment=numero,
|
||||||
|
id_objet=article.pk,
|
||||||
|
objet='article',
|
||||||
|
version_min_id=numero,
|
||||||
|
defaults={'fragment': fragment, 'version_max_id': numero,},
|
||||||
|
)
|
||||||
|
|
||||||
|
champs_versionnes = {'texte': numero}
|
||||||
|
|
||||||
|
version, _ = spip.Versions.objects.update_or_create(
|
||||||
|
id_version=numero,
|
||||||
|
id_objet=article.pk,
|
||||||
|
objet='article',
|
||||||
|
defaults={
|
||||||
|
'auteur': auteur,
|
||||||
|
'titre_version': 'Version initiale'
|
||||||
|
if numero == 1 and not revision.log
|
||||||
|
else revision.log,
|
||||||
|
'date': convert_timestamp(revision.timestamp),
|
||||||
|
'permanent': '' if numero == 1 else 'non',
|
||||||
|
'champs': phpserialize.dumps(champs_versionnes).decode(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
previous = revision
|
||||||
|
@ -97,6 +97,13 @@ DB_RELATIONS = {
|
|||||||
'mots_liens': {
|
'mots_liens': {
|
||||||
'id_mot': ('id_mot', 'mots', 'mot'),
|
'id_mot': ('id_mot', 'mots', 'mot'),
|
||||||
},
|
},
|
||||||
|
'versions': {
|
||||||
|
'id_auteur': ('id_auteur', 'auteurs', 'auteur'),
|
||||||
|
},
|
||||||
|
'versions_fragments': {
|
||||||
|
'version_min': ('id_version', 'versions'),
|
||||||
|
'version_max': ('id_version', 'versions'),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,6 +169,11 @@ DB_PARAMS = {
|
|||||||
'comite': {'default': 'oui'},
|
'comite': {'default': 'oui'},
|
||||||
'forum': {'default': 'non'},
|
'forum': {'default': 'non'},
|
||||||
},
|
},
|
||||||
|
'versions_fragments': {
|
||||||
|
'compress': {'default': 0},
|
||||||
|
'version_min': {'default': 0, 'related_name': '+'},
|
||||||
|
'version_max': {'default': 0, 'related_name': '+'},
|
||||||
|
},
|
||||||
'urls': {
|
'urls': {
|
||||||
'id_parent': {'default': 0},
|
'id_parent': {'default': 0},
|
||||||
'langue': {'default': ''},
|
'langue': {'default': ''},
|
||||||
|
Loading…
Reference in New Issue
Block a user