Skip to content
Snippets Groups Projects
Commit ee62b7b5 authored by Piotr Maślanka's avatar Piotr Maślanka
Browse files

a quick model fix

parent b893a532
No related branches found
No related tags found
No related merge requests found
# Generated by Django 3.2.6 on 2021-08-26 14:26 # Generated by Django 3.2.6 on 2021-08-26 14:41
import datetime import datetime
from django.conf import settings from django.conf import settings
...@@ -23,7 +23,7 @@ class Migration(migrations.Migration): ...@@ -23,7 +23,7 @@ class Migration(migrations.Migration):
('created_on', models.DateTimeField(db_index=True, default=datetime.datetime.now, verbose_name='Created on')), ('created_on', models.DateTimeField(db_index=True, default=datetime.datetime.now, verbose_name='Created on')),
('pwd_hash', models.CharField(max_length=64, verbose_name='Hashed password salt')), ('pwd_hash', models.CharField(max_length=64, verbose_name='Hashed password salt')),
('resource', models.TextField(verbose_name='Resource')), ('resource', models.TextField(verbose_name='Resource')),
('used', models.BooleanField(default=False, verbose_name='Has been used?')), ('times_used', models.IntegerField(default=0, verbose_name='Visit count')),
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Creator')), ('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Creator')),
], ],
), ),
......
...@@ -30,7 +30,7 @@ class Share(models.Model): ...@@ -30,7 +30,7 @@ class Share(models.Model):
pwd_hash = models.CharField(max_length=64, verbose_name='Hashed password salt') pwd_hash = models.CharField(max_length=64, verbose_name='Hashed password salt')
# this is either an URL or a f'{UUID}.real_file_name' in /data # this is either an URL or a f'{UUID}.real_file_name' in /data
resource = models.TextField(verbose_name='Resource') resource = models.TextField(verbose_name='Resource')
used = models.BooleanField(verbose_name='Has been used?', default=False) times_used = models.IntegerField(verbose_name='Visit count', default=0)
@property @property
def file_name(self) -> str: def file_name(self) -> str:
......
...@@ -4,6 +4,9 @@ ...@@ -4,6 +4,9 @@
{% block head %} {% block head %}
{% endblock %} {% endblock %}
{% block body %} {% block body %}
{% if invalid_password %}
<em>The password that you provided was invalid!</em>
{% endif %}
<form class="form-group text-left" role="form" action="/shares/{{ share_id }}" method="POST"> <form class="form-group text-left" role="form" action="/shares/{{ share_id }}" method="POST">
{% csrf_token %} {% csrf_token %}
{{ form.as_p }} {{ form.as_p }}
......
...@@ -123,7 +123,8 @@ def view_share(request, share_id: str): ...@@ -123,7 +123,8 @@ def view_share(request, share_id: str):
try: try:
if share.share_type == SHARE_URL: if share.share_type == SHARE_URL:
links_visited.runtime(+1) links_visited.runtime(+1)
return redirect(share.resource) return render(request, 'share/view.html', {'form': form, 'share_id': share_id,
'invalid_password': True})
else: else:
if not os.path.exists(share.path): if not os.path.exists(share.path):
raise Http404() raise Http404()
...@@ -145,7 +146,7 @@ def view_share(request, share_id: str): ...@@ -145,7 +146,7 @@ def view_share(request, share_id: str):
'Content-Disposition': cd 'Content-Disposition': cd
}) })
finally: finally:
share.used = True share.times_used += 1
share.save() share.save()
else: else:
form = PasswordForm() form = PasswordForm()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment