Render a cave editing page. Nb it does not do save anything yet.

This commit is contained in:
Martin Green 2012-01-07 19:05:25 +00:00
parent 8222ed3b6a
commit 599c59454a
6 changed files with 72 additions and 15 deletions

View File

@ -1,15 +1,41 @@
from django.forms import ModelForm
from models import Cave, Person, PersonExpedition, LogbookEntry, QM, Expedition
from models import Cave, Person, PersonExpedition, LogbookEntry, QM, Expedition, Entrance, CaveAndEntrance
import django.forms as forms
from django.forms.formsets import formset_factory
from django.forms.models import formset_factory
from django.contrib.admin.widgets import AdminDateWidget
import string
from datetime import date
from tinymce.widgets import TinyMCE
#class CaveForm(ModelForm):
# class Meta:
# model = Cave
class CaveForm(ModelForm):
underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
class Meta:
model = Cave
class EntranceForm(ModelForm):
class Meta:
model = Entrance
class CaveForm(ModelForm):
underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
class Meta:
model = Cave
#class PersonForm(ModelForm):
# class Meta:
@ -48,8 +74,8 @@ from tinymce.widgets import TinyMCE
# super(LogbookEntryForm, self).__init__(*args, **kwargs)
# self.fields['text'].help_text=self.wikiLinkHints()#
class CaveForm(forms.Form):
html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
#class CaveForm(forms.Form):
# html = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
def getTripForm(expedition):

View File

@ -1,10 +1,11 @@
from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription
from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, Entrance
from troggle.core.forms import CaveForm
import troggle.core.models as models
import troggle.settings as settings
from troggle.helper import login_required_if_public
from django.forms.models import formset_factory
from django import forms
from django.core.urlresolvers import reverse
from utils import render_with_context # see views_logbooks for explanation on this.
from django.http import HttpResponseRedirect
@ -63,16 +64,26 @@ def caveLogbook(request, slug):
def caveSlug(request, slug):
cave = Cave.objects.get(slug = slug)
if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
return render_with_context(request,'nonpublic.html', {'instance': cave})
return render_with_context(request,'nonpublic.html', {'instance': cave, 'cave_editable': slug})
else:
return render_with_context(request,'cave.html', {'cave': cave})
return render_with_context(request,'cave.html', {'cave': cave, 'cave_editable': slug})
@login_required_if_public
def editCave(request, slug=None):
form = CaveForm()
def edit_cave(request, slug=None):
cave = Cave.objects.get(slug = slug)
form = CaveForm(instance=cave)
class CaveAndEntranceForm(forms.Form):
entrance = forms.ChoiceField(choices=[("", "-----")] + [(x.slug, x.slug) for x in Entrance.objects.all()])
entrance_letter = forms.CharField(max_length=20)
non_public = forms.BooleanField()
CaveAndEntranceFormSet = formset_factory(CaveAndEntranceForm)
i = [{"entrance": x.entrance.slug, "entrance_letter": x.entrance_letter, "non_public": x.non_public} for x in cave.caveandentrance_set.all()]
ceFormSet = CaveAndEntranceFormSet(initial=i)
return render_with_context(request,
'editcave.html',
{'form': form})
'editcave2.html',
{'form': form,
'caveAndEntranceFormSet': ceFormSet
})
def qm(request,cave_id,qm_id,year,grade=None):
year=int(year)

View File

@ -13,6 +13,7 @@
$( "#tabs" ).tabs();
});
</script>
{% block extraheaders %}{% endblock %}
</head>
<body>
{% block content %}{% endblock %}

18
templates/editcave2.html Normal file
View File

@ -0,0 +1,18 @@
{% extends "cavebase.html" %}
{% load csrffaker %}
{% block title %}Edit Cave{% endblock %}
{% block extraheaders %}
<link rel="stylesheet" href="{{ settings.MEDIA_URL }}css/ui-lightness/jquery-ui-1.8.12.custom.css" type="text/css" media="all" />
<script src="{{ settings.MEDIA_URL }}js/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script>
<script src="{{ settings.MEDIA_URL }}js/jquery.formset.min.js" type="text/javascript"></script>
<script src="{{ settings.TINY_MCE_MEDIA_URL }}tiny_mce.js" type="text/javascript"></script>
{% endblock %}
{% block content %}
<strong> This form does not do anything .... yet ....</strong>
<form action="" method="post">{% csrf_token %}
<table>{{ form }}{{caveAndEntranceFormSet}}</table>
<p><input type="submit" value="Sumbit" /></p>
</form>
{% endblock %}

View File

@ -8,5 +8,6 @@
<li><a href="/handbook/index.htm">Handbook</a></li>
<li><a href="/pubs.htm">Reports</a></li>
{% if editable %}<li><a href="{% url editflatpage path %}" class="editlink"><strong>Edit this page</strong></a></li>{% endif %}
{% if cave_editable %}<li><a href="{% url edit_cave cave_editable %}" class="editlink"><strong>Edit this cave</strong></a></li>{% endif %}
</ul>
{% endif %}

View File

@ -57,7 +57,7 @@ actualurlpatterns = patterns('',
url(r'^jgtuploadfile$', view_surveys.jgtuploadfile, name="jgtuploadfile"),
url(r'^cave/(?P<cave_id>[^/]+)/?(?P<ent_letter>[^/])$', ent),
#(r'^cave/(?P<cave_id>[^/]+)/edit/$', edit_cave),
url(r'^cave/(?P<slug>[^/]+)/edit/$', edit_cave, name="edit_cave"),
#(r'^cavesearch', caveSearch),
@ -83,7 +83,7 @@ actualurlpatterns = patterns('',
url(r'^eyecandy$', views_other.eyecandy),
(r'^admin/doc/?', include('django.contrib.admindocs.urls')),
url(r'^admin/(.*)', admin.site.root, name="admin"),
url(r'^admin/(.*)', admin.site.get_urls, name="admin"),
# don't know why this needs troggle/ in here. nice to get it out
url(r'^troggle/media-admin/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ADMIN_DIR, 'show_indexes':True}),