Store instance version in the client table

It is updated on new login, on entering the settings page, and on
timeline load. The last may be too often, but I thought the other
two were not often enough.
This commit is contained in:
Jason McBrayer 2019-04-29 14:41:11 -04:00
parent 21da39c422
commit 4de237a1b5
3 changed files with 26 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.1.5 on 2019-04-29 18:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('brutaldon', '0020_auto_20190127_2159'),
]
operations = [
migrations.AddField(
model_name='client',
name='version',
field=models.CharField(default='1.0', max_length=8),
),
]

View File

@ -8,6 +8,7 @@ timezones = [(tz, tz) for tz in common_timezones]
class Client(models.Model):
name = models.CharField(default = "brutaldon", max_length=80)
api_base_id = models.URLField(default="https://mastodon.social")
version = models.CharField(default="1.0", max_length=8)
client_id = models.CharField(null=True, blank=True, max_length=2048)
client_secret = models.CharField(null=True, blank=True, max_length=2048)

View File

@ -304,6 +304,8 @@ def login(request):
client_id = client.client_id,
client_secret = client.client_secret,
api_base_url = api_base_url)
client.version = mastodon.instance().get("version")
client.save()
return redirect(mastodon.auth_request_url(redirect_uris=redirect_uris,
scopes=['read', 'write', 'follow']))
else:
@ -394,6 +396,8 @@ def old_login(request):
client_id = client.client_id,
client_secret = client.client_secret,
api_base_url = api_base_url)
client.version = mastodon.instance().get("version")
client.save()
try:
account = Account.objects.get(email=email, client_id=client.id)
@ -545,6 +549,9 @@ def user(request, username, prev=None, next=None):
def settings(request):
try:
account, mastodon = get_usercontext(request)
account.client.version = mastodon.instance().get("version")
account.client.save()
except NotLoggedInException:
return redirect(about)
if request.method == 'POST':