Added edit view for roms
This commit is contained in:
parent
62c35a3b0d
commit
59d6c0e1b5
|
@ -14,6 +14,13 @@
|
|||
<div class="box">
|
||||
<h1 class="title is-2">{{rom.name}}</h1>
|
||||
|
||||
{% if rom.user.id == user.id %}
|
||||
<div class="columns less-margin">
|
||||
<div class="column">
|
||||
<a href="{% url 'romupdate' id=rom.id %}"><i class="fa fa-pencil"></i> Rom bearbeiten</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="columns less-margin">
|
||||
<div class="column">
|
||||
{% for tag in rom.tags.all %}
|
||||
|
|
|
@ -0,0 +1,197 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Rom bearbeiten{% endblock %}
|
||||
{% block nav_rom_upload_class %}is-active{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="rom-overview">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<h1 class="title is-1">Rom bearbeiten</h1>
|
||||
{% if form.non_field_errors %}
|
||||
<div class="message is-danger">
|
||||
<div class="message-header">
|
||||
<strong>Nope!</strong>
|
||||
</div>
|
||||
<div class="message-body">
|
||||
{{ form.non_field_errors }}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
<label class="label" for="{{form.tags.id_for_label}}">{{form.tags.label}}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field is-narrow">
|
||||
<div class="control has-icons-left has-icons-right">
|
||||
<input class="input {% if form.tags.errors %}is-danger{% endif %}"
|
||||
type="text" name="{{form.tags.html_name}}"
|
||||
id="{{form.tags.id_for_label}}" value="{{form.tags.value|default_if_none:''}}" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-tags"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
{% if form.tags.errors %}
|
||||
<i class="fa fa-warning"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<p class="help is-danger">
|
||||
{{form.tags.errors.as_text}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
<label class="label" for="{{form.description.id_for_label}}">{{form.description.label}}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field">
|
||||
<p class="control">
|
||||
<textarea name="{{form.description.html_name}}"
|
||||
id="{{form.description.id_for_label}}"
|
||||
class="textarea {% if form.description.errors %}is-danger{% endif %} is-primary">{{form.description.value|default_if_none:''}}</textarea>
|
||||
</p>
|
||||
<p class="help is-danger">
|
||||
{{form.description.errors.as_text}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
<label class="label" for="{{form.cover.id_for_label}}">{{form.cover.label}}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field is-narrow has-addons">
|
||||
<input class="hidden" type="file" name="{{form.cover.html_name}}" id="{{form.cover.id_for_label}}" value="{{form.cover.value|default_if_none:''}}" />
|
||||
|
||||
<div class="control has-icons-left has-icons-right">
|
||||
<input class="input {% if form.cover.errors %}is-danger{% endif %} is-primary"
|
||||
type="text" value="{{form.cover.value|default_if_none:''}}" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-picture-o"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
{% if form.cover.errors %}
|
||||
<i class="fa fa-warning"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="control">
|
||||
<a class="button is-primary">
|
||||
Durchsuchen
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help is-danger">
|
||||
{{form.cover.errors.as_text}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
<label class="label" for="{{form.high_binary.id_for_label}}">{{form.high_binary.label}}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field is-narrow has-addons">
|
||||
<input class="hidden" type="file" name="{{form.high_binary.html_name}}" id="{{form.high_binary.id_for_label}}" value="{{form.high_binary.value|default_if_none:''}}" />
|
||||
|
||||
<div class="control has-icons-left has-icons-right">
|
||||
<input class="input {% if form.high_binary.errors %}is-danger{% endif %} is-primary"
|
||||
type="text" value="{{form.high_binary.value|default_if_none:''}}" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-microchip"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
{% if form.high_binary.errors %}
|
||||
<i class="fa fa-warning"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="control">
|
||||
<a class="button is-primary">
|
||||
Durchsuchen
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help is-danger">
|
||||
{{form.high_binary.errors.as_text}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
<label class="label" for="{{form.low_binary.id_for_label}}">{{form.low_binary.label}}</label>
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<div class="field is-narrow has-addons">
|
||||
<input class="hidden" type="file" name="{{form.low_binary.html_name}}" id="{{form.low_binary.id_for_label}}" value="{{form.low_binary.value|default_if_none:''}}" />
|
||||
|
||||
<div class="control has-icons-left has-icons-right">
|
||||
<input class="input {% if form.low_binary.errors %}is-danger{% endif %} is-primary"
|
||||
type="text" value="{{form.low_binary.value|default_if_none:''}}" />
|
||||
<span class="icon is-small is-left">
|
||||
<i class="fa fa-microchip"></i>
|
||||
</span>
|
||||
<span class="icon is-small is-right">
|
||||
{% if form.low_binary.errors %}
|
||||
<i class="fa fa-warning"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
<div class="control">
|
||||
<a class="button is-primary">
|
||||
Durchsuchen
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="help is-danger">
|
||||
{{form.low_binary.errors.as_text}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-grouped">
|
||||
<p class="control">
|
||||
<button class="button is-primary">Hochladen</button>
|
||||
</p>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("input[type='file']").each(function () {
|
||||
var fileField = $(this);
|
||||
var textField = fileField.next('.control').find('input');
|
||||
var button = fileField.next('.control').next('.control').find('a');
|
||||
|
||||
|
||||
fileField.change(function() {
|
||||
textField.val(fileField.val());
|
||||
});
|
||||
|
||||
button.click(function() {
|
||||
fileField.click()
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
|
@ -1,6 +1,6 @@
|
|||
from django.conf.urls import include, url
|
||||
|
||||
from roms.views import RomListJson, RomDetailViewJson, RomList, RomDetailView, RomCreateView
|
||||
from roms.views import RomListJson, RomDetailViewJson, RomList, RomDetailView, RomCreateView, RomUpdateView
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^json/list/$', RomListJson.as_view()),
|
||||
|
@ -10,5 +10,7 @@ urlpatterns = [
|
|||
url(r'^list/$', RomList.as_view(), name = 'romlist'),
|
||||
url(r'^list/(?P<tag>[a-zA-Z0-9-]+)/$', RomList.as_view(), name = 'romlist'),
|
||||
url(r'^details/(?P<id>[0-9]+)/$', RomDetailView.as_view(), name = 'romdetails'),
|
||||
url(r'^new/$', RomCreateView.as_view(), name = 'romcreate')
|
||||
|
||||
url(r'^new/$', RomCreateView.as_view(), name = 'romcreate'),
|
||||
url(r'^edit/(?P<id>[0-9]+)/$', RomUpdateView.as_view(), name = 'romupdate')
|
||||
]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from django.views.generic.list import ListView
|
||||
from django.views.generic.detail import DetailView
|
||||
from django.views.generic.edit import CreateView
|
||||
from django.views.generic.edit import CreateView, UpdateView
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||
from django.http import JsonResponse
|
||||
from django.contrib.auth import get_user_model
|
||||
|
@ -50,9 +50,6 @@ class RomCreateView(LoginRequiredMixin, CreateView):
|
|||
fields = ['name', 'description', 'cover', 'low_binary', 'high_binary', 'tags']
|
||||
template_name = 'roms/create.html'
|
||||
|
||||
def get_queryset(self):
|
||||
return Rom.objects.filtered(user__id = request.user.id)
|
||||
|
||||
def form_valid(self, form):
|
||||
res = super(RomCreateView, self).form_valid(form)
|
||||
|
||||
|
@ -62,6 +59,17 @@ class RomCreateView(LoginRequiredMixin, CreateView):
|
|||
return res
|
||||
|
||||
|
||||
class RomUpdateView(LoginRequiredMixin, UpdateView):
|
||||
model = Rom
|
||||
pk_url_kwarg = 'id'
|
||||
fields = ['description', 'cover', 'low_binary', 'high_binary', 'tags']
|
||||
template_name = 'roms/update.html'
|
||||
|
||||
def get_queryset(self):
|
||||
return Rom.objects.filter(user__id = self.request.user.id)
|
||||
|
||||
|
||||
|
||||
|
||||
class RomListJson(ListView):
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<nav class="nav has-shadow">
|
||||
<div class="container">
|
||||
<div class="nav-left">
|
||||
<a class="nav-item">
|
||||
<a href="{% url 'romlist' %}" class="nav-item">
|
||||
<img src="{% static "images/logo.png" %}"/>
|
||||
</a>
|
||||
<a class="nav-item is-tab is-hidden-mobile {% block nav_rom_class %}{% endblock %}"
|
||||
|
@ -24,7 +24,7 @@
|
|||
</a>
|
||||
{% if user.is_authenticated %}
|
||||
<a class="nav-item is-tab is-hidden-mobile {% block nav_rom_upload_class %}{% endblock %}"
|
||||
href="">
|
||||
href="{% url 'romcreate' %}">
|
||||
Rom Hochladen
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -42,7 +42,7 @@
|
|||
</a>
|
||||
{% if user.is_authenticated %}
|
||||
<a class="nav-item is-tab is-hidden-tablet {% block nav_mobile_rom_upload_class %}{% endblock %}"
|
||||
href="">
|
||||
href="{% url 'romcreate' %}">
|
||||
Rom Hochladen
|
||||
</a>
|
||||
{% endif %}
|
||||
|
|
Loading…
Reference in New Issue