@pydjango

Страница 772 из 1273
Maksim
05.12.2017
09:56:12
не совсем понял в чем суть

Kirill
05.12.2017
09:57:19
Это мне?)

Админка для слак-бота, если кто-то пишет в слак команду (хочу уйти в среду) , бот отправляет менеджерам в канал запрос (юзернейм хочет уйти в среду), один из менеджеров отвечает на запрос (да, уходи), юзер в пм получает ответ (менеджер сказал 'да, уходи')

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

Google
Artem
05.12.2017
10:04:06
https://lemki.pythonanywhere.com/ https://github.com/lemki/ask_leave_slack_bot
@staticmethod def add_thread(data): workspace = Workspace.objects.get(team_id=data.get('team_id')) event = data.get('event') if event.get('thread_ts'): request = Request.objects.get(ts=event.get('thread_ts')) if request: slack_client = SlackClient(workspace.bot_access_token) user_info = slack_client.api_call( 'users.info', user=event.get('user'), ) тут если не будет какого-либо интснаса из модели, то get() вернет эексепшн

и сама проверка if request: не проканает

request.is_answered = True request.save() тута, если апдейтишь поле is_answered, то апдейти только его: requests.save(updated_fields=['is_answered'])

workspaces = Workspace.objects.filter(slackuser__user=user) for workspace in workspaces: request_objects = Request.objects.order_by('-created').filter(workspace=workspace) slack_workspace = { 'team': workspace, } slack_requests = list() ух держись тут с колчиесвом запросов в request модельку

Kirill
05.12.2017
10:07:59
У меня не хочет работать префреш релейтед)

Artem
05.12.2017
10:08:16
prefetch_related ?

Kirill
05.12.2017
10:08:48
Ну да, я так понимаю достаточно было выгрести workspaces

А на темплейте уже выводить реквесты

Artem
05.12.2017
10:10:10
context['slack_list_admin'] = SlackUser.objects.filter(is_admin=True, user=self.request.user) context['slack_list_user'] = SlackUser.objects.filter(is_admin=False, user=self.request.user) тут возможно ты получишь только одного пользователя, хотя могу сомневаться, но получи тут SlackUser без проверки нан is_admin, и потом циклом разгреби с проверкой на этот ключ в два массива, и их прокидывай

Kirill
05.12.2017
10:12:28
Оки, спасибо!

Artem
05.12.2017
10:12:43
а так, вполне аккуртно и читабельно

Igor
05.12.2017
10:19:58
Напомните, плиз, пакет, который при загрузке изображений будет их сжимать

Google
Admin
ERROR: S client not available

Igor
05.12.2017
10:22:18
да, спасибо))

смотрю пример: x50 = ImageSpecField([ Adjust(contrast=1.2, sharpness=1.1), ResizeToFit(50, 50, False), ], source='logo', options={ 'quality': 90, 'progressive': True, }, )а как задать, что бы пропорции сохранялись в изображении?

Ruslan
05.12.2017
10:25:09
прочитать доку, там можно было указать сохранение пропорций

обычно хватало указать одну из размерностей, дальше оно само соображало

Dan
05.12.2017
10:25:55
при ResizeToFit он сохраняет пропорции

и обрезает максимальную сторону до указаной

там несколько функций

Dmytro
05.12.2017
10:29:37
С ngrok проблемы вечно. У меня так одна апишка от ФБ была с непредсказуемый поведением.

Страница 772 из 1273