LINUX.ORG.RU

Состоялся релиз системы управления контентом MLUG

 , , , ,


0

3

Буквально только что состоялся релиз первой рабочей версии системы управления контентом MLUG.

Система распространяется на условиях GNU AGPL третьей версии.
Для добавления своего кода в основной репозиторий нужно дать согласие на перелицензирование по усмотрению хозяина репозитория.

Система управления контентом может похвастаться такими особенностями:

  • Основана на свежей Django с долговременной поддержкой и минимумом зависимостей, которые можно без больших проблем исключить из сборки вообще.
  • Не делает лишнего, только самое необходимое для сайта.
  • Красивая нескучная тема оформления (в данной версии простая смена шаблонов не предусмотрена, но стили менять довольно просто).
  • Приложение для рассылки почты подписчикам с подтверждением, отпиской, настройками, списками рассылок и отложенной отправкой.
  • Приложение голосований с инновационной системой жетонов и встроенным генератором QR-кодов для доступа к приватным голосованиям.
  • Переполнена добротой и любовью.
  • В комплекте красивая иконка под лицензией CC-BY-SA 4.0.
  • Полностью переведена на русский и английский языки и готова к переводу на любые другие (но не полностью готова поддержка многоязычного контента для сайта).
  • Рассчитана исключительно на защищённое соединение (это не обусловлено техническими причинами, но во множестве мест в исходном коде жестко прописан https).
  • В качестве отступов в коде не используются пробелы.
  • Написана и поддерживается лично мной в свободное время, коммерческая поддержка для серьёзных организаций возможна.

Репозиторий со всеми исходниками, документацией, багтрекером и даже картинками

>>> Демо

★★★★★

Проверено: splinter ()

Страшновато для 2015 года.

Deleted ()
Ответ на: комментарий от Goury

Это к млугу не относится

Не ври, оно у тебя на той-же машине висит, и сделано на той-же недоCMS. Показатель «качества» наряду с кодом.

cherry-pick ()
Ответ на: комментарий от Goury

Чому глупый? Вполне резонный вопрос, почему у тебя куки по-наркомански обрабатываются. Или это у тебя сессии через жопу реализованы?

cherry-pick ()
Ответ на: комментарий от Goury

в каких местах используется хардкод 'https://'

Хардкода URL не должно быть вообще. Ты прям как Дедал с его мега-форумом на FVMAS, который URL сайта хардкорно в свое поделие зашивал при «генерации ключа».

cherry-pick ()

И твою мега-гитлер JS функцию «docCookies» ты у mozilla спёр, а копирайты потёр. Не стыдно?

cherry-pick ()
Ответ на: комментарий от cherry-pick

Ты прям как Дедал с его мега-форумом на FVMAS, который URL сайта хардкорно в свое поделие зашивал при «генерации ключа».

Звучит весело, можно подробнее?

anonymous ()
Ответ на: комментарий от cherry-pick

И вообще, JS и CSS, засунутые прямо в код странички - это моветон, такие вещи обычно а отдельные файлики выносят, и раздают их с CDN. JS можно еще сжать для экономии трафика, если его много.

cherry-pick ()

Алсо я знаю, почему у него вёрстка опроса плывёт, но ему не скажу, пусть сам свой мозг включит. Остальным: просто посмотрите на его мега-гитлер формулу в JS для подсчета «длины» столбца, это ржака, мне бы двойку за такое влепили бы в ВУЗе.

cherry-pick ()
Ответ на: комментарий от th3m3

Во всех книгах говорится о pep8, везде настаивают на следовании его канонам.

А если во всех книгах будут писать о том что нужно биться головой об стенку, ты будешь им следовать?

Rodegast ★★★★★ ()
Ответ на: комментарий от Rodegast

Это сделано было не для этого. А для того, чтобы код все писали по определённому стандарту, а не как вздумается. Это и защита от говнокода в некоторых случаях.

Зачем превращать Python в php?

th3m3 ★★★★★ ()

Обновление: исправлено полтора минорных бага (некорректный рассчёт длинны полоски с голосами и отсутствие валидации некоторых параметров)

Goury ★★★★★ ()
Ответ на: комментарий от Deleted

Принимаю предложения по украшению, предлагайте.

Goury ★★★★★ ()
Ответ на: комментарий от th3m3

Зачем превращать Python в php

Причём тут PHP? В каждом проекте/организации приняты собственные стандарты оформления кода. PEP8 это стандарт принятый среди разработчиков питона, но это не значит что он настолько офигенный что все должны ему слепо следовать.

Это и защита от говнокода в некоторых случаях.

Это не «защита от говнокода», а стандарт облегчающий командную разработку.

Rodegast ★★★★★ ()
Ответ на: комментарий от Rodegast

Вот я и говорю:
Команды разработки для млуга у меня пока нет, а если когда-нибудь будет — я хочу такую команду, которая понимает зачем нужны табы.

Goury ★★★★★ ()
Ответ на: комментарий от Goury

Команды разработки для млуга у меня пока нет, а если когда-нибудь будет

С таким лидером не будет у тебя команды. Кстати, а ты не moscwich, случаем? Что-то ты по стилю общения смахиваешь на паренька.

cherry-pick ()
Ответ на: комментарий от Goury

Принимаю предложения по украшению, предлагайте.

Для начала верни копирайты мозиллы (откуда ты код 'docCookies' унёс) в твой JS-код.

cherry-pick ()
Ответ на: комментарий от Rodegast

Я ещё не встречал разработчиков, которые пишут по каким-то другим стандартам. В компаниях тоже везде pep8.

Вот это новость, оказывается существуют шарашки, которые пишут не в pep8. Это, наверное, переквалифицировавшиеся в Python, бывшие разработчики говносайтов на php. Теперь вот на Python лепят.

th3m3 ★★★★★ ()
Ответ на: комментарий от Goury

Слушай, а ты вот реально табы вручную ставишь, когда код пишешь?

th3m3 ★★★★★ ()
Ответ на: комментарий от cherry-pick

Там ОЧЕНЬ много текста, на пару дней чтения, но это персонаж этот просто эпичный.

И правда эпичный; человек-загадка. Вроде и буксует картинно, как тролль, но вроде и какие-то программки даже есть. ТС до него далекооо.

anonymous ()
Ответ на: комментарий от th3m3

Я ещё не встречал разработчиков, которые пишут по каким-то другим стандартам.

Я тебя поздравляю, ты их встретил. P.S. На пыхе никогда не писал.

Rodegast ★★★★★ ()

Рассчитана исключительно на защищённое соединение (это не обусловлено техническими причинами, но во множестве мест в исходном коде жестко прописан https).

тяжёлый случай, очень

не указывайте, что мне делать, и не будете узнавать, куда вам идти

buratino ★★★★★ ()

Говно

Зачем этот высер говна здесь?

anonymous ()

Рассчитана исключительно на защищённое соединение (это не обусловлено техническими причинами, но во множестве мест в исходном коде жестко прописан https).

Отстой. Защищеное соединение, это гуд, но таким способом харкодить, это полный шлак. А если я использую нжинкс?

AVL2 ★★★★★ ()
Ответ на: комментарий от a1batross

Мне питон и за бесплатно не сдался
Django

При чем тут ты с сишечкой? Мы обсуждаем отступы в питонопроекте.

winlook38 ★★ ()
Ответ на: комментарий от winlook38

Я уже сказал, какое у меня отношение к питону. Я про отступы везде. Где угодно, это здравая идея.

a1batross ★★★★★ ()
Ответ на: комментарий от AVL2

тебе же кодер прямым текстом ответил - у него говнокод с хардкодами, потому что он так видит...

WindowsXP ★★ ()
Ответ на: комментарий от AVL2

А слабо, прежде чем нести херню в комментариях, посмотреть в каких местах там хардкод?

Goury ★★★★★ ()
Ответ на: комментарий от Goury

вот нахрена это смотреть? если ты не осилил сделать это без хардкода - это ж изнасилование в мозг, а не код

anonymous ()
Ответ на: комментарий от anonymous

А что именно я не осилил сделать без хардкода?
А то раскудахтался ты громко, а о чём речь в той строчке — даже не представляешь.

Goury ★★★★★ ()
Ответ на: комментарий от Goury

представил. все еще хуже, чем я думал

egrep -r "https" *
cms/hook_templates.py:	'<form class="smallform" action="https://money.yandex.ru/quickpay/confirm.xml" method="post">'
cms/hook_templates.py:	+ '<input type="hidden" name="referer" value="https://' + settings.SITE_DOMAIN + '">'
cms/hook_templates.py:	+ '<input type="hidden" name="successURL" value="https://' + settings.SITE_DOMAIN + '">'
locale/en/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
locale/en/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
locale/ru/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
locale/ru/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
locale/ru/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
locale/ru/LC_MESSAGES/django.po:"https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n"
mailer/management/commands/sendmessages.py:		return token_url_for_email( 'https://'+settings.SITE_DOMAIN+data[1] )
mailer/management/commands/sendmessages.py:		body += u'https://' + settings.SITE_DOMAIN + u'/' + APP_URL + u'/manage?token=' + subscriber.config_access_token + u'>'
mailer/management/commands/sendmessages.py:			html += u'<a href="https://' + settings.SITE_DOMAIN + u'/' + APP_URL + u'/manage?token=' + subscriber.config_access_token + u'>'
mailer/management/commands/sendmessages.py:		body += u'https://' + settings.SITE_DOMAIN + u'/' + APP_URL + u'/manage?token=' + subscriber.config_access_token + u'>'
mailer/management/commands/sendmessages.py:			html += u'<a href="https://' + settings.SITE_DOMAIN + u'/' + APP_URL + u'/manage?token=' + subscriber.config_access_token + u'>'
mailer/email_senders.py:			+ u'https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n'
mailer/email_senders.py:			+ u'https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n\n'
mailer/tests_unit.py:		self.assertIn('https://', sendmessages.hooks('{{ token_url_for_email|/ }}'))
mlug/wsgi.py:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
polls/management/commands/generate_tokens.py:				self.stdout.write(' https://' + settings.SITE_DOMAIN + '/polls/activate_token?token=' + str(token.uuid) + '&redirect_url=' + urllib.quote(options['redirect']))
polls/management/commands/generate_tokens.py:				self.stdout.write(' https://' + settings.SITE_DOMAIN + '/polls/activate_token?token=' + str(Token(purpose="bulk command")) + '&redirect_url=' + urllib.quote(options['redirect']))
polls/utils.py:	result = 'https://' + settings.SITE_DOMAIN + '/polls/activate_token?token=' + str(token.uuid) + '&redirect_url=' + urllib.quote(back_url)
templates/css/main/leaflet.css:/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
templates/js/main/leaflet.js:	// https://github.com/Leaflet/Leaflet/pull/1434#issuecomment-13843151
templates/js/main/leaflet.js:		// hack for https://github.com/Leaflet/Leaflet/issues/1980
templates/js/main/leaflet.js:			// https://github.com/Leaflet/Leaflet/issues/1618
templates/js/main/leaflet.js:		// for https://github.com/CloudMade/Leaflet/issues/137
templates/js/main/leaflet.js:		// https://github.com/Leaflet/Leaflet/issues/2078
templates/js/main/leaflet.js:	// Based on changes by veproza https://github.com/CloudMade/Leaflet/pull/1019
templates/js/main/leaflet.js:	//ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890
templates/js/main/leaflet.js:			//Work around for Firefox android issue https://github.com/Leaflet/Leaflet/issues/2033
templates/js/main/mlug.js:	var mapLink = '<a href="https://openstreetmap.org">OpenStreetMap</a>';
templates/js/main/mlug.js:	L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
anonymous ()
Ответ на: комментарий от Goury

посмотреть в каких местах там хардкод?

У тебя там весь репозиторий - сплошной хардкор и BDSM.

cherry-pick ()

Алсо, мне нравится, как ТС тут на обоснованную критику огрызается, однако в своем единственном багрепорте на гитхабе голословно обвиняет разработчиков во всех смертных грехах.

cherry-pick ()
Ответ на: комментарий от anonymous

Ага, мозгов, чтобы понять зачем оно там, у тебя явно не достаточно.

Goury ★★★★★ ()

cms писанный на cms... неужели это кому-то может понадобиться???

anonymous ()
Ответ на: Говно от anonymous

Re: Говно

Зачем этот высер говна здесь?

Надо писать или «говно» или «высер», ведь говно физически не может ничего высрать.

А так да — это судьба всех велосипедистов, им обязательно нужно, чтобы об их Великой Разработке узнал весь мир, вот и срут на все форумы, куда могут дотянуться.

anonymous ()
Ответ на: Re: Говно от anonymous

Надо писать или «говно» или «высер», ведь говно физически не может ничего высрать.

Я так понял, что подразумевается процесс, т.е. «зачем нам здесь наблюдать за высиранием ОПом говна?»

Deleted ()
Ответ на: комментарий от Goury

это не обусловлено техническими причинами, но во множестве мест в исходном коде жестко прописан https

Это же ты писал? Ко мне-то какие вопросы?

AVL2 ★★★★★ ()
Ответ на: комментарий от anonymous

Жесткач.

Кто нибудь, может объяснить, зачем там вообще было вставлять протокол и домен в шаблоны типа https://%(site_domain)s/%(app_url)s/manage?token=%(token)s\n... ?

В чем цимес? Почему просто не писать «/%(app_url)s/manage?token=%(token)s\n» ?

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Ты анинею писал, к тебе по поводу неё и вопросы.

Goury ★★★★★ ()
Ответ на: комментарий от AVL2

Так ты или посмотри и осмысли в каком месте оно применяется или просто смирись с тем, что ты — просто одна из белок.

Goury ★★★★★ ()
Ответ на: комментарий от reprimand

Форкнул django и повышаешь собственное ЧСВ?

Сабж не смотрел, но джанга - это CMF, а заявлена готовая «изкаропки» CMS. Второе нередко пишется на базе первого. Это нормально.

Хотя благодаря друпалу, целенаправленно размывающему оба понятия, народ часто путает.

be_nt_all ()
Ответ на: комментарий от winlook38

Потому что оригинальное сообщение про табуляцию мое. И там ни слова о питоне.

a1batross ★★★★★ ()
Ответ на: комментарий от a1batross

оригинальное сообщение

Это про это сообщение?

Питон
Табы


мое

И опять вопрос: при чем тут ты (со своей сишкой) в треде о питонопроекте?

winlook38 ★★ ()
Ответ на: комментарий от winlook38

Абзац знаешь что такое? :)

Я тут при том же, что этот проект можно было на куда более лучшем языке написать. Но это не мое дело.

a1batross ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.