Giter Club home page Giter Club logo

pythonz's Introduction

PYTHONZ

https://github.com/idlesign/pythonz

Что это

Здесь ведётся разработка проекта https://pythonz.net.

Это площадка для русскоязычного сообщества людей, создающих приложения при помощи языка программирования Python, и попытка заинтересовать тех, кто ещё не знаком с ним.

Проект разрабатывается открыто: вы можете ознакомиться с кодом и поучаствовать в развитии -поделиться идеей, задать вопрос, расширить функциональность, исправить ошибку.

Электронный адрес для контактов: [email protected]

Участие в проекте

Проект разрабатывается здесь, на GitHub - https://github.com/idlesign/pythonz

Если вы заметили что-то странное в проекте, или знаете как его улучшить, пожалуйста, создайте новый инцидент в разделе Issues - https://github.com/idlesign/pythonz/issues

Если вы обнаружили проблему безопасности, пожалуйста, не используйте раздел Issues, а ознакомьтесь с параграфом Безопасность ниже.

Безопасность

В случае обнаружения проблемы безопасности в проекте, пожалуйста, сообщите о ней на адрес [email protected] до обнародования.

В письме желательно указать на место в коде, ответственное за уязвимость.

Хорошо, если вы также приведёте пример эксплуатации найденной уязвимости.

Локальный запуск

Подготовка

  1. Переместитесь в корневую директорию проекта (содержит setup.py);
  2. Выполнить $ ./bootstrap.sh. В ходе выполнения будут установлены зависимости и инициализирована база данных. В конце будет создана учтёная запись администратора (укажите логи, почту, пароль).
  • Созданное для проекта виртуальное окружение активируется как обычно: $ . venv/bin/activate;
  • В окружении используйте команду $ pythonz для управления приложением. Запустите её без параметров, чтобы вывести список поддерживаемых действий.

Запуск приложения

  • Используйте команду $ pythonz runserver для запуска сервера разработки;
  • После запуска сервера, в браузере проект доступен по адресу http://localhost:8000/
  • Команда $ pythonz uwsgi_run --noruntimes позволяет запустить проект, используя полноценный uWSGI сервер.

Запуск тестов

  • Используйте команду $ ./runtests.sh для прогона имеющихся тестов.

pythonz's People

Contributors

dependabot[bot] avatar gaponsasha avatar idlesign avatar lectricas avatar rusnasonov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pythonz's Issues

Поле с автодополнением/подстановкой

На некоторых формах (например, при выборе родителя в статье справочника, а также при выборе персоны), удобно использовать поле с автодополнением.
Следует рассмотреть варианты решения и внедрить в случае целесообразности.

Реализовать страницу с наиболее часто запрашиваемыми справочными материалами

Сейчас оповещение о том, что пользователь чего-то не нашел в справочнике отсылается почтой. Неплохо бы сделать старицу с рейтингом таких запросов, чтобы знать какие разделы справки формировать в первую очередь.

График жизни версий Python

На странице выпусков неплохо смотрелся бы график жизни версий, на подобии
https://python-release-cycle.glitch.me/

Для этого нужно:

  1. в версиях иметь возможность указать время окончания поддержки.
  2. прикрутить js библиотеку отрисовки графиков (типа плотли)

Убрать Яндекс.Виджеты

Каталог Яндекс.Виджеты закрыт, установка виджетов невозможна.
Следует убрать из кода и интерфейса.

Оптимизировать разметку под мелкие устройства

html разметку следует оптимизировать под мобильные устройства с небольшими экранами: некоторые элементы прятать/уменьшать, для некоторых (например, меню) включить возможность прятать/показывать.

Механизм перенаправления, после смены имени страниц

Например, страница http://pythonz.net/references/named/list.index/ должна переехать на
http://pythonz.net/references/named/sequence.index/, но обращение к первой должно автоматически выливаться в перенаправление на вторую.
Рассмотреть возможность общего механизма для всех разделов, не только для Справочника.

Перейти на более свежую Ubuntu

Пора слезать с 14.04 и перейти на 18.04.

Попытка обновления штатными средствами системы до 16.04 ломает контейнер.
По всей видимости, потребуется создание нового контейнера с конфигурированием и переносом данных.

Перейти полностью на uwsgiconf

С ini файлов требуется перейти на использование https://github.com/idlesign/uwsgiconf запуска приложения.

Наверное, целесообразно за одним будет перестать использовать uwsgi из комплекта ОС и перейти на версию из PyPI.

Вероятно, связана с #34

Дополнить вики

Без postgresql-dev и python3-dev попытка установить psycopg2 выдает тонну ошибок. Возможно стоит упомянуть этот момент в вики.

Нет связи с сервером Telegram

В ходе выполнения #34 был осуществлён переезд на новый сервер.
С этого сервера нет доступа к ручкам API Телеграм, поэтому бот сайта не может слать в канал сообщения.
Требуется попытаться восстановить доступ.

Подумать над футером и фоном

Наверное стоит сделать, чтобы футер всегда был снизу. А еще что-то сделать с фоном, потому-что это выглядит так себе
pz

Улучшенный поиск

Следует улучшить поиск и сделать его единым (убрать поиск от Яндекса).

  • Подключить полнотекстовый поиск
  • Включить ранжированный поиск
  • Искать по категориям, при точном совпадении переходить прямо к категории
  • Искать персоны, при точном совпадении переходить прямо к человеку
  • Объединить поиски по справочнику и сайту

Не удается создать суперпользователя (ошибка в моделях?)

В общем, попытался создать суперпользователя (и на винде, и на линуксе пробовал), однако sqlite мне выдал трейсбек:

##########################################################

(venv) D:\Education\Home\Python\pythonz\pythonz>py manage.py createsuperuser
Environment type: development
2019-07-30 23:00:18,057 DEBUG raven.contrib.django.client.DjangoClient: Configuring Raven for host: None
2019-07-30 23:00:18,057 INFO raven.contrib.django.client.DjangoClient: Raven is not configured (logging is disabled). Please see the documentation for more information.
Username: admin
Email address:
Password:
Password (again):
Error: Blank passwords aren't allowed.
Password:
Password (again):
Traceback (most recent call last):
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
sqlite3.IntegrityError: FOREIGN KEY constraint failed

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    manage()
  File "manage.py", line 13, in manage
    execute_from_command_line(sys.argv)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 59, in execute
    return super().execute(*args, **options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 179, in handle
    self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\models.py", line 161, in create_superuser
    return self._create_user(username, email, password, **extra_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\models.py", line 144, in _create_user
    user.save(using=self._db)
  File "D:\Education\Home\Python\pythonz\pythonz\apps\generics\models.py", line 346, in save
    super().save(*args, **kwargs)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\base_user.py", line 73, in save
    super().save(*args, **kwargs)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\models\base.py", line 729, in save
    force_update=force_update, update_fields=update_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\models\base.py", line 759, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\transaction.py", line 212, in __exit__
    connection.commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 261, in commit
    self._commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
django.db.utils.IntegrityError: FOREIGN KEY constraint failed

##########################################################

Попробовал еще на постгресе:

##########################################################

(venv) D:\Education\Home\Python\pythonz\pythonz>py manage.py createsuperuser
Environment type: development
2019-07-30 22:46:34,805 DEBUG raven.contrib.django.client.DjangoClient: Configuring Raven for host: None
2019-07-30 22:46:34,806 INFO raven.contrib.django.client.DjangoClient: Raven is not configured (logging is disabled). Please see the documentation for more information.
Username: admin
Email address:
Password:
Password (again):
Traceback (most recent call last):
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
psycopg2.errors.ForeignKeyViolation: insert or update on table "apps_user" violates foreign key constraint "apps_user_submitter_id_d1ff9bb5_fk_apps_user_id"
DETAIL:  Key (submitter_id)=(111) is not present in table "apps_user".


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    manage()
  File "manage.py", line 13, in manage
    execute_from_command_line(sys.argv)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 59, in execute
    return super().execute(*args, **options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\core\management\base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 179, in handle
    self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\models.py", line 161, in create_superuser
    return self._create_user(username, email, password, **extra_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\models.py", line 144, in _create_user
    user.save(using=self._db)
  File "D:\Education\Home\Python\pythonz\pythonz\apps\generics\models.py", line 346, in save
    super().save(*args, **kwargs)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\contrib\auth\base_user.py", line 73, in save
    super().save(*args, **kwargs)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\models\base.py", line 729, in save
    force_update=force_update, update_fields=update_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\models\base.py", line 759, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\transaction.py", line 212, in __exit__
    connection.commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 261, in commit
    self._commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\Education\Home\Python\pythonz\venv\lib\site-packages\django\db\backends\base\base.py", line 239, in _commit
    return self.connection.commit()
django.db.utils.IntegrityError: insert or update on table "apps_user" violates foreign key constraint "apps_user_submitter_id_d1ff9bb5_fk_apps_user_id"
DETAIL:  Key (submitter_id)=(111) is not present in table "apps_user".

##########################################################

Что-то с submitter_id походу.

Кнопки в профиле пользователя

Может стоит как-то оформить кнопки Профиль, Настройки и Выход, чтобы они стояли не слитно. Либо вообще убрать, они все равно есть в сворачивающемся списке.
pythonz_butt

Перейти на bootstrap 4

В новой версии каркаса имеются инструменты, которые позволяет избавиться он вспомогательных классов в отдельном css файле. Так, например, можно будет перейти на m- p- d- и прочие утилиты.
Вероятно автоматически решится #26

Страницы с изменениями в разных версиях Питона

Подумать и реализовать страницы, где будут показано в каких версиях, что менялось. Ссылки должны будут вести на соответствующие статьи справочника.
Например: форматные строки появились в 3.6, и ссылка на статью.

Улучшение страницы списка PEP

Возможно следует упорядочить ПУПы по дате обновления, чтобы свежие были в начале.
Возможно стоит сделать фильтры по типам и состояниям.

Опечатка

В справочнике в статье про dir() в разделе "На заметку" пропущено слово функция:
"По большей части рассматриваемая функция используется..."

Выпадающее меню профиля

pythonz
Надо бы сдвинуть выпадающее окошко в левую сторону, а то при нажатии появляется возможность двигать сайт влево-вправо

Странное поведение сводок

Из Телеграм-канала:

antuan, [21.01.20 21:03]
[В ответ на робот pythonz.net]
последние несколько месяцев в сводках летят июнские новости :(

Среднюю з/п заменить чем-то более информативным

Сейчас блоки со статистикой по зарплатам (в разделе Работа и на страницах мест) в колонке Среднее показывают не слишком информативные суммы.
Нужно подумать и заменить на что-то более близкое к реальности. Например, на 80-ю перцентиль.

Добавить ссылку на PEP в сообщении telegram бота на канале pythonz

Сейчас сообщение о смене статуса PEP выглядит так:

PEP 545 сменил статус на «Утверждено (принято; возможно не реализовано)»

Удобно прикладывать ссылку, чтобы можно было сразу перейти в нужный PEP:

PEP 545 сменил статус на «Утверждено (принято; возможно не реализовано)»
https://www.python.org/dev/peps/pep-0535/

Директива video

Добавить возможность вставлять в статьи видео.
Начнём с yoututbe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.