seo: add settings for meta tags (#20263)
This commit is contained in:
parent
e0a3f76626
commit
02e67cf0fc
|
@ -25,5 +25,14 @@ class RobotsTxtForm(forms.Form):
|
|||
widget=forms.Textarea)
|
||||
|
||||
|
||||
class SettingsForm(forms.Form):
|
||||
meta_description = forms.CharField(
|
||||
label=_('Description for indexing'),
|
||||
required=False)
|
||||
meta_keywords = forms.CharField(
|
||||
label=_('Keywords for indexing'),
|
||||
required=False)
|
||||
|
||||
|
||||
class EnableForm(forms.Form):
|
||||
pass
|
||||
|
|
|
@ -55,4 +55,16 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if mode == 'customize' or mode == 'allow' %}
|
||||
<div class="section padded">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<div class="buttons">
|
||||
<button class="submit-button">{% trans "Save" %}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -19,7 +19,7 @@ from django.http import HttpResponseRedirect
|
|||
from django.views.generic import FormView, TemplateView
|
||||
|
||||
from hobo.environment.utils import get_variable, set_variable
|
||||
from .forms import RobotsTxtForm
|
||||
from .forms import RobotsTxtForm, SettingsForm
|
||||
|
||||
|
||||
ALLOW = ""
|
||||
|
@ -36,10 +36,22 @@ def get_mode(content):
|
|||
return 'customize'
|
||||
|
||||
|
||||
class HomeView(TemplateView):
|
||||
class HomeView(FormView):
|
||||
template_name = 'hobo/seo_home.html'
|
||||
form_class = SettingsForm
|
||||
success_url = reverse_lazy('seo-home')
|
||||
|
||||
def get_initial(self):
|
||||
initial = super(HomeView, self).get_initial()
|
||||
initial['meta_description'] = get_variable('meta_description').value
|
||||
initial['meta_keywords'] = get_variable('meta_keywords').value
|
||||
return initial
|
||||
|
||||
def form_valid(self, form):
|
||||
set_variable('meta_description', form.cleaned_data['meta_description'])
|
||||
set_variable('meta_keywords', form.cleaned_data['meta_keywords'])
|
||||
return super(HomeView, self).form_valid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(HomeView, self).get_context_data(**kwargs)
|
||||
context['robots_txt'] = get_variable('robots_txt').value
|
||||
|
|
|
@ -233,3 +233,8 @@ ul#id_scopes li {
|
|||
-webkit-column-width: 20em;
|
||||
column-width: 20em;
|
||||
}
|
||||
|
||||
#id_meta_description,
|
||||
#id_meta_keywords {
|
||||
width: 100%;
|
||||
}
|
||||
|
|
|
@ -98,3 +98,11 @@ def test_custom(app, admin_user):
|
|||
assert get_variable('robots_txt').value == 'some new content'
|
||||
resp = resp.follow()
|
||||
assert resp.html.pre.text == 'some new content'
|
||||
|
||||
|
||||
def test_meta(app, admin_user):
|
||||
login(app)
|
||||
resp = app.get('/seo/')
|
||||
resp.form['meta_description'] = 'meta description'
|
||||
resp.form['meta_keywords'] = 'meta, keywords'
|
||||
resp = resp.form.submit()
|
||||
|
|
Loading…
Reference in New Issue