kopia lustrzana https://gitlab.com/marnanel/chapeau
actually let's just not bother with Register
rodzic
e1a3aca719
commit
8e9b36696a
|
@ -0,0 +1,78 @@
|
|||
# Generated by Django 2.0.6 on 2018-08-19 17:34
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('contenttypes', '0002_remove_content_type_name'),
|
||||
('django_kepi', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Register',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('object_id', models.PositiveIntegerField()),
|
||||
('content_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='contenttypes.ContentType')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accept',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='add',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='create',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='delete',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='follow',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='like',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='reject',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='remove',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tombstone',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='undo',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='update',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,69 @@
|
|||
# Generated by Django 2.0.6 on 2018-08-19 17:49
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('django_kepi', '0002_auto_20180819_1734'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='accept',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='add',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='create',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='delete',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='follow',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='like',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='reject',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='remove',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='tombstone',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='undo',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='update',
|
||||
name='register',
|
||||
field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_kepi.Register'),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,164 @@
|
|||
# Generated by Django 2.0.6 on 2018-08-19 18:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import django_kepi.models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('django_kepi', '0003_auto_20180819_1749'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='register',
|
||||
name='content_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='accept',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='accept',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='add',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='add',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='create',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='create',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='delete',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='delete',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='follow',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='follow',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='like',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='like',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='reject',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='reject',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='remove',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='remove',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='tombstone',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='tombstone',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='undo',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='undo',
|
||||
name='register',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='update',
|
||||
name='id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='update',
|
||||
name='register',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='accept',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='add',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='create',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='delete',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='follow',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='like',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='reject',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='remove',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='tombstone',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='undo',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='update',
|
||||
name='numeric_id',
|
||||
field=models.PositiveIntegerField(default=django_kepi.models.Cobject.random_number, editable=False, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='Register',
|
||||
),
|
||||
]
|
|
@ -3,6 +3,7 @@ from django_kepi import object_type_registry
|
|||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
from django.conf import settings
|
||||
from random import randint
|
||||
import json
|
||||
import datetime
|
||||
import warnings
|
||||
|
@ -13,12 +14,20 @@ import warnings
|
|||
RESOLVE_FAILSAFE = 10
|
||||
SERIALIZE = 'serialize'
|
||||
URL_IDENTIFIER = 'url_identifier'
|
||||
|
||||
|
||||
class Cobject(models.Model):
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def random_number():
|
||||
return randint(0, 2**32)
|
||||
|
||||
numeric_id = models.PositiveIntegerField(
|
||||
primary_key = True,
|
||||
default = random_number,
|
||||
editable = False)
|
||||
|
||||
verified = models.BooleanField(default=False)
|
||||
remote_id = models.URLField(blank=True, null=True, default=None)
|
||||
published = models.DateTimeField(default=datetime.datetime.now)
|
||||
|
@ -30,7 +39,7 @@ class Cobject(models.Model):
|
|||
else:
|
||||
return settings.KEPI['URL_FORMAT'] % {
|
||||
'type': self.__class__.__name__.lower(),
|
||||
'pk': self.pk,
|
||||
'id': self.numeric_id,
|
||||
}
|
||||
|
||||
def is_local(self):
|
||||
|
@ -104,6 +113,9 @@ class Cobject(models.Model):
|
|||
default=json_default,
|
||||
)
|
||||
|
||||
def matches_type(self, t):
|
||||
return t==self.__class__.__name__.lower()
|
||||
|
||||
class Activity_with_actor_and_fobject(Cobject):
|
||||
|
||||
class Meta:
|
||||
|
@ -165,6 +177,9 @@ class Delete(Activity_with_actor_and_fobject):
|
|||
class Tombstone(Cobject):
|
||||
deleted = models.DateTimeField(default=datetime.datetime.now)
|
||||
|
||||
def matches_type(self, t):
|
||||
return True # XXX probably more complicated than that
|
||||
|
||||
class Follow(Activity_with_actor_and_fobject):
|
||||
pass
|
||||
|
||||
|
@ -185,3 +200,18 @@ class Accept(Activity_with_fobject):
|
|||
|
||||
class Reject(Activity_with_fobject):
|
||||
pass
|
||||
|
||||
def deserialize(s):
|
||||
|
||||
try:
|
||||
del s['id']
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
if 'type' not in s:
|
||||
raise ValueError("can't deserialize without a type")
|
||||
|
||||
raise ValueError("nyi")
|
||||
|
||||
def lookup(ftype, pk):
|
||||
pass
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.urls import path, include
|
||||
|
||||
KEPI = {
|
||||
'URL_FORMAT': 'https://example.com/activities/%(type)s/%(pk)d',
|
||||
'URL_FORMAT': 'https://example.com/activities/%(type)s/%(id)x',
|
||||
}
|
||||
|
||||
INSTALLED_APPS = (
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from django.test import TestCase, Client
|
||||
from django_kepi.models import Create, Like
|
||||
from django_kepi.models import Create, Like, Update
|
||||
from things_for_testing.models import ThingUser, ThingArticle
|
||||
|
||||
class UserTests(TestCase):
|
||||
|
|
Ładowanie…
Reference in New Issue