mirror of
https://gitlab.com/brutaldon/brutaldon.git
synced 2024-11-02 16:37:19 -04:00
Add share view
This commit is contained in:
parent
c836861027
commit
da1de5ea32
@ -69,5 +69,6 @@ urlpatterns = [
|
|||||||
path("accounts/", views.accounts, name="accounts"),
|
path("accounts/", views.accounts, name="accounts"),
|
||||||
path("accounts/<id>", views.accounts, name="accounts"),
|
path("accounts/<id>", views.accounts, name="accounts"),
|
||||||
path("vote/<id>", views.vote, name="vote"),
|
path("vote/<id>", views.vote, name="vote"),
|
||||||
|
path("share/", views.share, name="share"),
|
||||||
path("", views.home, name=""),
|
path("", views.home, name=""),
|
||||||
]
|
]
|
||||||
|
@ -33,20 +33,26 @@ import re
|
|||||||
|
|
||||||
class NotLoggedInException(Exception):
|
class NotLoggedInException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class LabeledList(list):
|
class LabeledList(list):
|
||||||
"""A subclass of list that can accept additional attributes"""
|
"""A subclass of list that can accept additional attributes"""
|
||||||
|
|
||||||
def __new__(self, *args, **kwargs):
|
def __new__(self, *args, **kwargs):
|
||||||
return super(LabeledList, self).__new__(self, args, kwargs)
|
return super(LabeledList, self).__new__(self, args, kwargs)
|
||||||
|
|
||||||
def __init(self, *args, **kwargs):
|
def __init(self, *args, **kwargs):
|
||||||
if len(args) == 1 and hasattr(args[0], '__iter__'):
|
if len(args) == 1 and hasattr(args[0], "__iter__"):
|
||||||
list.__init__(self, args[0])
|
list.__init__(self, args[0])
|
||||||
else:
|
else:
|
||||||
list.__init__(self, args)
|
list.__init__(self, args)
|
||||||
self.__dict__.update(kwargs)
|
self.__dict__.update(kwargs)
|
||||||
|
|
||||||
def __call(self, **kwargs):
|
def __call(self, **kwargs):
|
||||||
self.__dict__.update(kwargs)
|
self.__dict__.update(kwargs)
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
||||||
global sessons_cache
|
global sessons_cache
|
||||||
sessions_cache = {}
|
sessions_cache = {}
|
||||||
|
|
||||||
@ -629,8 +635,10 @@ def note(request, next=None, prev=None):
|
|||||||
# Now group notes into lists based on type and status
|
# Now group notes into lists based on type and status
|
||||||
groups = []
|
groups = []
|
||||||
if account.preferences.bundle_notifications:
|
if account.preferences.bundle_notifications:
|
||||||
|
|
||||||
def bundle_key(note):
|
def bundle_key(note):
|
||||||
return str(note.status.id) + note.type
|
return str(note.status.id) + note.type
|
||||||
|
|
||||||
sorted_notes = sorted(notes, key=bundle_key, reverse=True)
|
sorted_notes = sorted(notes, key=bundle_key, reverse=True)
|
||||||
for _, group in groupby(sorted_notes, bundle_key):
|
for _, group in groupby(sorted_notes, bundle_key):
|
||||||
group = LabeledList(group)
|
group = LabeledList(group)
|
||||||
@ -1154,6 +1162,37 @@ def reply(request, id):
|
|||||||
return HttpResponseRedirect(reverse("reply", args=[id]) + "#toot-" + str(id))
|
return HttpResponseRedirect(reverse("reply", args=[id]) + "#toot-" + str(id))
|
||||||
|
|
||||||
|
|
||||||
|
@br_login_required
|
||||||
|
def share(request):
|
||||||
|
account, mastodon = get_usercontext(request)
|
||||||
|
if request.method == "GET":
|
||||||
|
params = request.GET
|
||||||
|
if request.method == "POST":
|
||||||
|
params = request.POST
|
||||||
|
title = params.get("title")
|
||||||
|
url = params.get("url")
|
||||||
|
if title:
|
||||||
|
initial_text = f"{title}\n\n{url}"
|
||||||
|
else:
|
||||||
|
initial_text = f"{url}"
|
||||||
|
|
||||||
|
form = PostForm(
|
||||||
|
initial={
|
||||||
|
"status": initial_text,
|
||||||
|
"visibility": request.session["active_user"].source.privacy,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
"main/post.html",
|
||||||
|
{
|
||||||
|
"form": form,
|
||||||
|
"own_acct": request.session["active_user"],
|
||||||
|
"preferences": account.preferences,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@never_cache
|
@never_cache
|
||||||
@br_login_required
|
@br_login_required
|
||||||
def fav(request, id):
|
def fav(request, id):
|
||||||
|
Loading…
Reference in New Issue
Block a user