Tema denemeleri

master
Özcan Oğuz 5 years ago
parent a8f06855b5
commit 2c6e239833
Signed by: ooguz
GPG Key ID: 2D33E2BD3D975818
  1. 4
      mediagoblin-oyd/__init__.py
  2. 21
      mediagoblin-oyd/templates/libreplanet/root.html
  3. 136
      mediagoblin_libreplanet/__init__.py
  4. 42
      mediagoblin_libreplanet/templates/libreplanet/banner.html
  5. 42
      mediagoblin_libreplanet/templates/libreplanet/join.html
  6. 32
      mediagoblin_libreplanet/templates/libreplanet/listing.html
  7. 103
      mediagoblin_libreplanet/templates/libreplanet/root.html
  8. 62
      mediagoblin_libreplanet/views.py

@ -47,7 +47,7 @@ MAX_HOME_LP_ITEMS = 10
# make tags lowercase and use dashes in place of spaces.
# uppercase tags will be included by the lowercase form.
FEATURED_TAG = "yıldızlı"
FEATURED_TAG = "yildizli"
_log = logging.getLogger(__name__)
@ -77,8 +77,6 @@ def frontpage_view(request):
images = lp_media_for_type(request.db, u'mediagoblin.media_types.image', None, MAX_HOME_ALL_PHOTO_ITEMS)
videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', None, MAX_HOME_ALL_VIDEO_ITEMS)
ozgurkon_video = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-keynote", MAX_HOME_LP_ITEMS)
ozgurkon_slayt = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-video", MAX_HOME_LP_ITEMS)
logolar = lp_media_for_type(request.db, u'mediagoblin.media_types.image', "logo", MAX_HOME_LP_ITEMS)
bultenler = lp_media_for_type(request.db, u'mediagoblin.media_types.pdf', "bulten", MAX_HOME_LP_ITEMS)
yayinlar = lp_media_for_type(request.db, u'mediagoblin.media_types.pdf', "yayin", MAX_HOME_LP_ITEMS)

@ -39,23 +39,24 @@
<div class="clear"></div>
<h2>{% trans %}ÖzgürKon 2020 Oturumlar{% endtrans %}</h2>
{{ media_grid(request, ozgurkon_video) }}
<div class="clear"></div>
<h2>{% trans %}ÖzgürKon 2020 Slaytlar{% endtrans %}</h2>
{{ media_grid(request, ozgurkon_slayt) }}
<h2>{% trans %}Bültenler{% endtrans %}</h2>
{{ media_grid(request, bultenler) }}
<div class="clear"></div>
<p>
<a href="/u/oyd/tag/ozgurkon-2020/">Tümünü görüntüle...</a>
<a href="/u/oyd/tag/yayinlar/">Tüm bültenler...</a>
</p>
<h2>{% trans %}Bültenler{% endtrans %}</h2>
{{ media_grid(request, bultenler) }}
<h2>{% trans %}Yayınlar{% endtrans %}</h2>
{{ media_grid(request, yayinlar) }}
<div class="clear"></div>
<p>
<a href="/u/oyd/tag/yayinlar/">Tüm yayınlar...</a>
</p>
<h2>{% trans %}Logolar{% endtrans %}</h2>
{{ media_grid(request, logolar) }}
<div class="clear"></div>
<p>
<a href="/u/oyd/tag/yayinlar/">Tüm logolar...</a>
</p>
{# commenting out featured media sections for front page #}
{#

@ -1,136 +0,0 @@
# MediaGoblin for LibrePlanet
# Copyright (C) 2015 David Thompson <davet@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
import os
from mediagoblin import mg_globals
from mediagoblin.tools.pluginapi import get_config, register_template_path, register_routes, register_template_hooks
from mediagoblin.db.models import MediaEntry
from mediagoblin.db.util import media_entries_for_tag_slug
from mediagoblin.tools.pagination import Pagination
from mediagoblin.tools.response import render_to_response
from mediagoblin.tools.licenses import SORTED_LICENSES, SUPPORTED_LICENSES, License
from mediagoblin.decorators import uses_pagination, user_not_banned
# Add three CC BY non-NC 4.0 to licenses
cc_by_4 = License("CC BY 4.0",
"Creative Commons Attribution 4.0 International",
"https://creativecommons.org/licenses/by/4.0/")
cc_by_sa_4 = License("CC BY-SA 4.0",
"Creative Commons Attribution-ShareAlike 4.0 International",
"https://creativecommons.org/licenses/by-sa/4.0/")
cc_by_nd_4 = License("CC BY-ND 4.0",
"Creative Commons Attribution-NoDerivatives 4.0 International",
"https://creativecommons.org/licenses/by-nd/4.0/")
gfdl_1_3 = License("GFDL 1.3",
"GNU Free Documentation License 1.3",
"https://www.gnu.org/licenses/fdl-1.3.en.html")
SORTED_LICENSES.insert(1, cc_by_4)
SORTED_LICENSES.insert(2, cc_by_sa_4)
SORTED_LICENSES.insert(3, cc_by_nd_4)
SORTED_LICENSES.insert(4, gfdl_1_3)
SUPPORTED_LICENSES[cc_by_4.uri] = cc_by_4
SUPPORTED_LICENSES[cc_by_sa_4.uri] = cc_by_sa_4
SUPPORTED_LICENSES[cc_by_nd_4.uri] = cc_by_nd_4
SUPPORTED_LICENSES[gfdl_1_3.uri] = gfdl_1_3
PLUGIN_DIR = os.path.dirname(__file__)
MAX_HOME_ITEMS_DEFAULT = 10
MAX_HOME_ALL_VIDEO_ITEMS = 10
MAX_HOME_ALL_PHOTO_ITEMS = 20
MAX_HOME_FEATURED_ITEMS = 10
MAX_HOME_LP_ITEMS = 10
# make tags lowercase and use dashes in place of spaces.
# uppercase tags will be included by the lowercase form.
FEATURED_TAG = "featured"
_log = logging.getLogger(__name__)
# This is the function that gets called when the setup
# hook fires.
def setup_plugin():
_log.info("Setting up Libreplanet...")
# Register the template path.
register_template_path(os.path.join(PLUGIN_DIR, 'templates'))
def lp_media_for_type(db, type, tag=None, max_items=MAX_HOME_ITEMS_DEFAULT):
if (tag == None):
cursor = MediaEntry.query
else:
cursor = media_entries_for_tag_slug(db, tag)
return cursor.\
filter((MediaEntry.media_type == type)
& (MediaEntry.state == u'processed')).\
order_by(MediaEntry.created.desc()).\
limit(max_items)
@user_not_banned
def frontpage_view(request):
images = lp_media_for_type(request.db, u'mediagoblin.media_types.image', None, MAX_HOME_ALL_PHOTO_ITEMS)
videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', None, MAX_HOME_ALL_VIDEO_ITEMS)
lp2017_keynotes = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-keynote", MAX_HOME_LP_ITEMS)
lp2017_videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-video", MAX_HOME_LP_ITEMS)
lp2016_videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2016-video", MAX_HOME_LP_ITEMS)
featured_images = lp_media_for_type(request.db, u'mediagoblin.media_types.image', FEATURED_TAG, MAX_HOME_FEATURED_ITEMS)
featured_videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', FEATURED_TAG, MAX_HOME_FEATURED_ITEMS)
return render_to_response(
request, 'libreplanet/root.html',
{'images': images,
'videos': videos,
'lp2017_keynotes': lp2017_keynotes,
'lp2017_videos': lp2017_videos,
'lp2016_videos': lp2016_videos,
'featured_images': featured_images,
'featured_videos': featured_videos,
'allow_registration': mg_globals.app_config["allow_registration"]})
def frontpage_view_hook():
return frontpage_view
register_routes([('all-videos', '/videos',
'mediagoblin.plugins.libreplanet.views:video_listing'),
('all-photos', '/photos',
'mediagoblin.plugins.libreplanet.views:image_listing'),
('featured-videos', '/videos/featured',
'mediagoblin.plugins.libreplanet.views:featured_video_listing'),
('featured-photos', '/photos/featured',
'mediagoblin.plugins.libreplanet.views:featured_image_listing')
])
# This is a dict that specifies which hooks this plugin uses.
# This one only uses one hook: setup.
hooks = {
'setup': setup_plugin,
'frontpage_view': frontpage_view_hook
}
register_template_hooks(
{'header_left': "libreplanet/banner.html",
'header_extra': "libreplanet/join.html"}
)

@ -1,42 +0,0 @@
{#
# MediaGoblin for LibrePlanet
# Copyright (C) 2017 Andrew Engelbrecht <andrew@fsf.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{# banner
<style>
.logo img { margin-top: 80px; }
.header_left { position: relative; margin-bottom: -64px; }
</style>
<div style="position: absolute; margin-left: -30px; top: 0; width: 1000px;">
<iframe src="//static.fsf.org/nosvn/banners/libreplanet/libreplanet-banner.html" width="100%" height="64px" frameborder="0" scrolling="no"></iframe>
</div>
#}
{# style for no banner #}
<style>
.logo img { margin-top: 16px; }
</style>
{# for spacing below the banner
also update the join.html template file when adding/removing/changing
the spacing of this div.
-- sudoman 2017-03-09
<div style="margin-top: 64px;"></div>
#}

@ -1,42 +0,0 @@
{#
# MediaGoblin for LibrePlanet
# Copyright (C) 2017 Andrew Engelbrecht <andrew@fsf.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
<style>
.noselect {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
</style>
{# for spacing below the banner; see banner.html template. -- sudoman 2017-03-09 #}
{#
<div style="margin-top: 64px;"></div>
#}
<div class="noselect" style="display: inline; margin-right: 40px;">
<div style="display: inline; margin-right: 40px;"><a href="https://my.fsf.org/donate">Donate</a></div>
<a href="http://fsf.org/jfb">
<img id="join-button" src="//static.fsf.org/nosvn/join.en.png" alt="Join now" style="vertical-align: middle;">
</a>
</div>

@ -1,32 +0,0 @@
{#
# MediaGoblin for LibrePlanet
# Copyright (C) 2011, 2012 MediaGoblin contributors
# Copyright (C) 2015 David Thompson <davet@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "mediagoblin/base.html" %}
{% from "mediagoblin/utils/object_gallery.html" import object_gallery %}
{% block title %}
{{ title }} &mdash; {{ super() }}
{% endblock %}
{% block mediagoblin_content -%}
<h1>{{ title }}</h1>
{{ object_gallery(request, media_entries, pagination) }}
{% endblock %}

@ -1,103 +0,0 @@
{#
# MediaGoblin for LibrePlanet
# Copyright (C) 2011, 2012 MediaGoblin contributors
# Copyright (C) 2015 David Thompson <davet@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#}
{% extends "mediagoblin/base.html" %}
{% from "mediagoblin/utils/object_gallery.html" import media_grid %}
{% set feed_url = request.urlgen('mediagoblin.listings.atom_feed') %}
{% block mediagoblin_head -%}
{% set feed_url = request.urlgen('mediagoblin.listings.atom_feed') -%}
<link rel="alternate" type="application/atom+xml" href="{{ feed_url }}">
{%- endblock mediagoblin_head %}
{% block mediagoblin_content %}
<h1>{% trans %}LibrePlanet{% endtrans %}</h1>
<img class="right_align" src="//static.fsf.org/nosvn/libreplanet/wiki/lp_logo_small_stacked.png" />
<p>
This site hosts media about free software and the amazing community
that uses and builds it. Much of the media is from our yearly <a href="https://libreplanet.org/wiki/LibrePlanet:Conference">LibrePlanet
conference</a> in the Boston area, USA, but some is from other events.
</p>
<p>
This site and the conference are run by the <a href="https://www.fsf.org">Free Software Foundation</a>, a nonprofit
with three decades of experience promoting and defending computer user
freedom. The site itself is running <a href="http://mediagoblin.org">GNU
MediaGoblin</a>, a wonderful free media hosting platform. Enjoy!
</p>
<div class="clear"></div>
<div style="margin-top:40px;">
<p>We uploaded most of the LibrePlanet 2017 videos! We'll add the rest as soon as we can.</p>
</div>
<h2>{% trans %}LibrePlanet 2017 Keynotes{% endtrans %}</h2>
{{ media_grid(request, lp2017_keynotes) }}
<div class="clear"></div>
<h2>{% trans %}LibrePlanet 2017 Videos{% endtrans %}</h2>
{{ media_grid(request, lp2017_videos) }}
<div class="clear"></div>
<p>
<a href="/u/libreplanet/tag/libreplanet-2017-video/">View all LibrePlanet 2017 videos</a>
</p>
<h2>{% trans %}LibrePlanet 2016 Videos{% endtrans %}</h2>
{{ media_grid(request, lp2016_videos) }}
<div class="clear"></div>
<p>
<a href="/u/libreplanet/tag/libreplanet-2016-video/">View all LibrePlanet 2016 videos</a>
</p>
{# commenting out featured media sections for front page #}
{#
<h2>{% trans %}Featured Videos{% endtrans %}</h2>
{{ media_grid(request, featured_videos) }}
<div class="clear"></div>
<p>
<a href="/videos/featured">View all featured videos</a>
</p>
<h2>{% trans %}Featured Photos{% endtrans %}</h2>
{{ media_grid(request, featured_images) }}
<div class="clear"></div>
<p>
<a href="/photos/featured">View all featured photos</a>
</p>
#}
<h2>{% trans %}All Videos{% endtrans %}</h2>
{{ media_grid(request, videos) }}
<div class="clear"></div>
<p>
<a href="/videos">View all videos</a>
</p>
<h2>{% trans %}All Photos{% endtrans %}</h2>
{{ media_grid(request, images) }}
<div class="clear"></div>
<p>
<a href="/photos">View all photos</a>
</p>
{#- Need to set feed_url within this block so template can use it. -#}
{%- set feed_url = feed_url -%}
{%- include "mediagoblin/utils/feed_link.html" -%}
{% endblock %}

@ -1,62 +0,0 @@
# MediaGoblin for LibrePlanet
# Copyright (C) 2015 David Thompson <davet@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from mediagoblin import mg_globals
from mediagoblin.db.models import MediaEntry
from mediagoblin.db.util import media_entries_for_tag_slug
from mediagoblin.tools.pagination import Pagination
from mediagoblin.tools.response import render_to_response
from mediagoblin.decorators import uses_pagination
def type_listing(media_type, title, request, page, tag=None):
if (tag == None):
cursor = MediaEntry.query
else:
cursor = media_entries_for_tag_slug(request.db, tag)
cursor = cursor.\
filter((MediaEntry.media_type == media_type)
& (MediaEntry.state == u'processed')).\
order_by(MediaEntry.created.desc())
pagination = Pagination(page, cursor)
media_entries = pagination()
return render_to_response(
request,
'libreplanet/listing.html',
{'title': title,
'media_entries': media_entries,
'pagination': pagination})
@uses_pagination
def image_listing(request, page):
return type_listing(u'mediagoblin.media_types.image', 'Photos', request, page)
@uses_pagination
def video_listing(request, page):
return type_listing(u'mediagoblin.media_types.video', 'Videos', request, page)
@uses_pagination
def featured_image_listing(request, page):
return type_listing(u'mediagoblin.media_types.image', 'Featured Photos', request, page, "featured")
@uses_pagination
def featured_video_listing(request, page):
return type_listing(u'mediagoblin.media_types.video', 'Featured Videos', request, page, "featured")
Loading…
Cancel
Save