Skip to content

Commit 4b62284

Browse files
committed
Add column settings to plugins
1 parent 669d4bc commit 4b62284

File tree

5 files changed

+68
-0
lines changed

5 files changed

+68
-0
lines changed

binder/plugins/column_settings/__init__.py

Whitespace-only changes.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Generated by Django 3.2.12 on 2022-03-28 12:12
2+
3+
from django.conf import settings
4+
import django.contrib.postgres.fields.jsonb
5+
from django.db import migrations, models
6+
import django.db.models.deletion
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name='ColumnSetting',
20+
fields=[
21+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22+
('view', models.TextField()),
23+
('columns', django.contrib.postgres.fields.jsonb.JSONField()),
24+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to=settings.AUTH_USER_MODEL)),
25+
],
26+
options={
27+
'ordering': ['pk'],
28+
'abstract': False,
29+
'unique_together': {('user', 'view')},
30+
},
31+
),
32+
]

binder/plugins/column_settings/migrations/__init__.py

Whitespace-only changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from django.db import models
2+
from django.contrib.postgres.fields import JSONField
3+
from django.conf import settings
4+
5+
from ...models import BinderModel
6+
7+
8+
class ColumnSetting(BinderModel):
9+
10+
user = models.ForeignKey(
11+
settings.AUTH_USER_MODEL, on_delete=models.CASCADE,
12+
related_name='+',
13+
)
14+
view = models.TextField()
15+
columns = models.JSONField()
16+
class Meta(BinderModel.Meta):
17+
unique_together = [('user', 'view')]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from django.db.models import Q
2+
3+
from ...permissions.views import PermissionView
4+
from .models import ColumnSetting
5+
6+
7+
class ColumnSettingView(PermissionView):
8+
9+
unwritable_fields = ['user']
10+
11+
model = ColumnSetting
12+
13+
def _scope_view_own(self, request):
14+
return Q(user=request.user)
15+
16+
def _store(self, obj, values, request, **kwargs):
17+
if obj.pk is None:
18+
obj.user = request.user
19+
return super()._store(obj, values, request, **kwargs)

0 commit comments

Comments
 (0)