def set_sort_mode(user, app_name, sort_mode): app_param = get_app_params(user, app_name) if not app_param: return app_param.sort = sort_mode app_param.save()
def toggle_sort_dir(user, app_name): app_param = get_app_params(user, app_name) if not app_param: return app_param.reverse = not app_param.reverse app_param.save()
def set_aside_visible(user, app_name, visible): app_param = get_app_params(user, app_name) if not app_param: return app_param.aside = visible app_param.save()
def item2_form(request, pk): app_param = get_app_params(request.user, app_name) if (app_param.restriction == EMPL_INFO): set_article_kind(request.user, app_name, '', pk) if (app_param.restriction == DEP_HIST): set_article_kind(request.user, app_name, '', pk) set_restriction(request.user, app_name, DEP_INFO) return HttpResponseRedirect( reverse('v2_wage:main') + extract_get_params(request))
def goto(request): # Опуститься в указанную папку set_article_visible(request.user, app_name, False) app_param = get_app_params(request.user, app_name) prefix = '' if app_param.content: prefix = app_param.content + '/' query = get_name_from_request(request) if query: set_content(request.user, app_name, prefix + query) return HttpResponseRedirect( reverse('v2_photo:main') + extract_get_params(request))
def set_article_kind(user, app_name, article_kind, article_id=0): app_param = get_app_params(user, app_name) if not app_param: return app_param.kind = article_kind app_param.art_id = article_id if not article_id: app_param.article = False else: app_param.article = True app_param.aside = False app_param.save()
def set_restriction(user, app_name, restriction, lst_id=0): app_param = get_app_params(user, app_name) if not app_param: return app_param.restriction = restriction if (restriction == 'list') and lst_id: if Lst.objects.filter(user=user.id, app=app_name, id=lst_id).exists(): app_param.lst = Lst.objects.filter(user=user.id, app=app_name, id=lst_id).get() app_param.aside = False app_param.save()
def one(request): # Просмотр одной фотографии, заданной именем файла name = get_name_from_request(request) if name: dirs = name.split('/') sub_name = dirs[-1:][0] if (len(dirs) > 1): sub_path = name[:len(name) - len(sub_name) - 1] else: sub_path = '' pk = get_photo_id(request.user, sub_path, sub_name) if pk: set_article_kind(request.user, app_name, '', pk) set_article_visible(request.user, app_name, False) return HttpResponseRedirect(reverse('v2_photo:one')) app_param = get_app_params(request.user, app_name) return do_main(request, 'one', app_param.art_id)
def item_form(request, pk): app_param = get_app_params(request.user, app_name) if (app_param.restriction == EMPL_LIST): set_restriction(request.user, app_name, EMPL_INFO) item = Employee.objects.filter(id=pk).get() item.set_active() set_article_kind(request.user, app_name, '', item.id) elif (app_param.restriction == DEP_LIST): set_restriction(request.user, app_name, DEP_HIST) item = Depart.objects.filter(id=pk).get() item.set_active() set_article_kind(request.user, app_name, '', item.id) elif (app_param.restriction == DEP_INFO): set_restriction(request.user, app_name, DEP_HIST) set_article_kind(request.user, app_name, '', pk) else: set_article_kind(request.user, app_name, '', pk) return HttpResponseRedirect( reverse('v2_wage:main') + extract_get_params(request))
def rise(request, level): # Подняться на указанный уровень вверх set_article_visible(request.user, app_name, False) if not level: set_content(request.user, app_name, '') else: app_param = get_app_params(request.user, app_name) crumbs = app_param.content.split('/') new_rest = '' cur_level = 1 for crumb in crumbs: new_rest += crumb if (cur_level < level): new_rest += '/' cur_level += 1 else: break set_content(request.user, app_name, new_rest) return HttpResponseRedirect( reverse('v2_photo:main') + extract_get_params(request))
def get_base_context_ext(request, app_name, content_kind, title, article_enabled=True): context = {} context['app_name'] = get_app_name(app_name) context['restriction'] = None app_param = None title_1 = title_2 = url = '' if title and (len(title) > 0): title_1 = title[0] if title and (len(title) > 1): title_2 = title[1] if request: app_param = get_app_params(request.user, app_name) if app_param: if (app_param.content != content_kind) and (app_name != 'photo'): app_param.content = content_kind app_param.save() context['aside_visible'] = ( (not article_enabled) or (not app_param.article)) and app_param.aside context['article_visible'] = app_param.article and article_enabled context['restriction'] = app_param.restriction context['sort_dir'] = not app_param.reverse context['list_id'] = 0 url = app_param.restriction if (app_param.restriction == 'list') and app_param.lst: lst = Lst.objects.filter(user=request.user.id, id=app_param.lst.id).get() title_1 = '' title_2 = lst.name context['list_id'] = lst.id url = 'list/' + str(lst.id) if not title_1 and not title_2: context['title'] = '' if title_1 and not title_2: context['title'] = _(title_1).capitalize() if not title_1 and title_2: context['title'] = title_2 if title_1 and title_2: context['title'] = '{} [{}]'.format(_(title_1).capitalize(), title_2) context['please_correct_one'] = _('Please correct the error below.') context['please_correct_all'] = _('Please correct the errors below.') context['complete_icon'] = 'v2/todo/icon/complete.png' context['uncomplete_icon'] = 'v2/todo/icon/uncomplete.png' apps = [] for app in APPS: if (app in ('store', 'trip', 'apart', 'wage', 'health')) and (request.user.username != 'ruslan.ok'): continue if (app == 'admin') and (request.user.username != 'admin'): continue if (app == 'profile') and (request.user.username == 'demouser'): continue apps.append({ 'href': APPS[app][1], 'icon': 'v2/rok/icon/' + APPS[app][0] + '.png', 'name': get_main_menu_item(app) }) context['apps'] = apps set_aside_visible(request.user, app_name, False) if url: save_last_visited(request.user, app_name + '/' + url, app_name, title_1, title_2) return app_param, context
def main(request): app_param = get_app_params(request.user, app_name) if (app_param.restriction not in ALL_RESTRICTIONS): return set_restriction_and_redirect(request, PER) if not Period.objects.filter(user=request.user.id, active=True).exists(): if (app_param.restriction != PER): return set_restriction_and_redirect(request, PER) period = None if Period.objects.filter(user=request.user.id, active=True).exists(): period = Period.objects.filter(user=request.user.id, active=True).get() if (app_param.restriction in EMPL_ASIDE): if not Employee.objects.filter(user=request.user.id, active=True).exists(): return set_restriction_and_redirect(request, EMPL_LIST) employee = None if Employee.objects.filter(user=request.user.id, active=True).exists(): employee = Employee.objects.filter(user=request.user.id, active=True).get() if (app_param.restriction == DEP_HIST): if not Depart.objects.filter(user=request.user.id, active=True).exists(): return set_restriction_and_redirect(request, DEP_LIST) depart = None if Depart.objects.filter(user=request.user.id, active=True).exists(): depart = Depart.objects.filter(user=request.user.id, active=True).get() if process_common_commands(request, app_name): return HttpResponseRedirect( reverse('v2_wage:main') + extract_get_params(request)) # For converting the string representation of dates, in particular in item_info locale.setlocale(locale.LC_CTYPE, request.LANGUAGE_CODE) locale.setlocale(locale.LC_TIME, request.LANGUAGE_CODE) if (request.method == 'POST'): if ('item-add' in request.POST): if (app_param.restriction == PER): item_id = add_period(request) if (app_param.restriction == POST): item_id = add_post(request) if (app_param.restriction == TITLE): item_id = add_pay_title(request) if (app_param.restriction == DEP_LIST): item_id = add_department(request) if (app_param.restriction in (DEP_HIST, DEP_INFO)): item_id = add_dep_hist(request, depart) if (app_param.restriction == EMPL_LIST): item_id = add_employee(request) if (app_param.restriction == ACC): item_id = add_payment(request, period, employee, 0) if (app_param.restriction == PAY): item_id = add_payment(request, period, employee, 1) if (app_param.restriction == APP): item_id = add_appoint(request, period, employee) if (app_param.restriction == EDUC): item_id = add_education(request, period, employee) if (app_param.restriction == CHLD): item_id = add_child(request, period, employee) if (app_param.restriction == SUR): item_id = add_surname(request, period, employee) return HttpResponseRedirect( reverse('v2_wage:item_form', args=[item_id])) if ('item-in-list-select' in request.POST) and (app_param.restriction == PER): pk = request.POST['item-in-list-select'] if pk: set_active(request.user.id, pk) return HttpResponseRedirect( reverse('v2_wage:item_form', args=[pk]) + extract_get_params(request)) app_param, context = get_base_context_ext( request, app_name, 'main', get_title(app_param.restriction, employee, depart)) redirect = False if app_param.article: valid_article = False if (app_param.restriction == PER): valid_article = Period.objects.filter( id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == POST): valid_article = Post.objects.filter(id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == TITLE): valid_article = PayTitle.objects.filter( id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == DEP_HIST): valid_article = DepHist.objects.filter(id=app_param.art_id, depart=depart.id).exists() if (app_param.restriction == DEP_INFO): valid_article = Depart.objects.filter( id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == EMPL_INFO): valid_article = Employee.objects.filter( id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == ACC): valid_article = Payment.objects.filter(id=app_param.art_id, employee=employee.id, period=period.id, direct=0).exists() if (app_param.restriction == PAY): valid_article = Payment.objects.filter(id=app_param.art_id, employee=employee.id, period=period.id, direct=1).exists() if (app_param.restriction == APP): valid_article = Appoint.objects.filter( id=app_param.art_id, employee=employee.id).exists() if (app_param.restriction == EDUC): valid_article = Education.objects.filter( id=app_param.art_id, employee=employee.id).exists() if (app_param.restriction == CHLD): valid_article = Child.objects.filter( id=app_param.art_id, employee=employee.id).exists() if (app_param.restriction == SUR): valid_article = FioHist.objects.filter( id=app_param.art_id, employee=employee.id).exists() if (app_param.restriction == REPORT): valid_article = True if valid_article: if (app_param.restriction == PER): item = get_object_or_404( Period.objects.filter(id=app_param.art_id, user=request.user.id)) disable_delete = item.active or EmplPer.objects.filter(period = item.id).exists() or \ Payment.objects.filter(period = item.id).exists() redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, disable_delete) if (app_param.restriction == POST): item = get_object_or_404( Post.objects.filter(id=app_param.art_id, user=request.user.id)) disable_delete = Appoint.objects.filter(post=item.id).exists() redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, disable_delete) if (app_param.restriction == TITLE): item = get_object_or_404( PayTitle.objects.filter(id=app_param.art_id, user=request.user.id)) disable_delete = Payment.objects.filter(title=item.id).exists() redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, disable_delete) if (app_param.restriction == DEP_HIST): item = get_object_or_404( DepHist.objects.filter(id=app_param.art_id, depart=depart.id)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == DEP_INFO): item = get_object_or_404( Depart.objects.filter(id=app_param.art_id, user=request.user.id)) disable_delete = DepHist.objects.filter(depart = item.id).exists() or \ DepHist.objects.filter(node = item.id).exists() or \ Appoint.objects.filter(depart = item.id).exists() redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, disable_delete) if (app_param.restriction == EMPL_INFO): item = get_object_or_404( Employee.objects.filter(id=app_param.art_id, user=request.user.id)) disable_delete = FioHist.objects.filter(employee = item.id).exists() or \ Child.objects.filter(employee = item.id).exists() or \ Appoint.objects.filter(employee = item.id).exists() or \ Education.objects.filter(employee = item.id).exists() or \ Payment.objects.filter(employee = item.id).exists() redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, disable_delete) if (app_param.restriction == ACC): item = get_object_or_404( Payment.objects.filter(id=app_param.art_id, employee=employee.id, period=period.id, direct=0)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == PAY): item = get_object_or_404( Payment.objects.filter(id=app_param.art_id, employee=employee.id, period=period.id, direct=1)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == APP): item = get_object_or_404( Appoint.objects.filter(id=app_param.art_id, employee=employee.id)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == EDUC): item = get_object_or_404( Education.objects.filter(id=app_param.art_id, employee=employee.id)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == CHLD): item = get_object_or_404( Child.objects.filter(id=app_param.art_id, employee=employee.id)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) if (app_param.restriction == SUR): item = get_object_or_404( FioHist.objects.filter(id=app_param.art_id, employee=employee.id)) redirect = edit_item(request, context, app_param.restriction, period, employee, depart, item, False) else: set_article_visible(request.user, app_name, False) redirect = True if (request.method == 'POST'): if ('total-save' in request.POST): total_save(request, context, period, employee) else: check_empl_per(request.user, context, app_param, period, employee) if redirect: return HttpResponseRedirect( reverse('v2_wage:main') + extract_get_params(request)) fixes = [] if (app_param.restriction in EMPL_ASIDE): fixes.append( Fix(PER, _('periods').capitalize(), 'v2/todo/icon/planned.png', 'periods/', len(Period.objects.filter(user=request.user.id)))) fixes.append( Fix(EMPL_LIST, _('employees').capitalize(), 'v2/rok/icon/user.png', 'employees/', len(Employee.objects.filter(user=request.user.id)))) fixes.append( Fix(EMPL_INFO, _('totals').capitalize(), 'v2/todo/icon/myday.png', 'total/', None)) fixes.append( Fix( ACC, _('accruals').capitalize(), 'v2/todo/icon/myday.png', 'accrual/', len( Payment.objects.filter(employee=employee.id, period=period.id, direct=0)))) fixes.append( Fix( PAY, _('pays').capitalize(), 'v2/todo/icon/myday.png', 'payment/', len( Payment.objects.filter(employee=employee.id, period=period.id, direct=1)))) fixes.append( Fix(APP, _('appointments').capitalize(), 'v2/todo/icon/myday.png', 'appoint/', len(Appoint.objects.filter(employee=employee.id)))) fixes.append( Fix(EDUC, _('educations').capitalize(), 'v2/todo/icon/myday.png', 'education/', len(Education.objects.filter(employee=employee.id)))) fixes.append( Fix(SUR, _('surnames').capitalize(), 'v2/todo/icon/myday.png', 'surname/', len(FioHist.objects.filter(employee=employee.id)))) fixes.append( Fix(CHLD, _('children').capitalize(), 'v2/todo/icon/myday.png', 'child/', len(Child.objects.filter(employee=employee.id)))) elif (app_param.restriction in (DEP_HIST, DEP_INFO)): fixes.append( Fix(DEP_LIST, _('departments').capitalize(), 'v2/rok/icon/home.png', 'departments/', len(Depart.objects.filter(user=request.user.id)))) fixes.append( Fix(DEP_HIST, _('department history').capitalize(), 'v2/rok/icon/home.png', 'dep_hist/', len(DepHist.objects.filter(depart=depart.id)))) else: fixes.append( Fix(PER, _('periods').capitalize(), 'v2/todo/icon/planned.png', 'periods/', len(Period.objects.filter(user=request.user.id)))) fixes.append( Fix(EMPL_LIST, _('employees').capitalize(), 'v2/rok/icon/user.png', 'employees/', len(Employee.objects.filter(user=request.user.id)))) fixes.append( Fix(DEP_LIST, _('departments').capitalize(), 'v2/rok/icon/home.png', 'departments/', len(Depart.objects.filter(user=request.user.id)))) fixes.append( Fix(POST, _('posts').capitalize(), 'v2/rok/icon/work.png', 'posts/', len(Post.objects.filter(user=request.user.id)))) fixes.append( Fix(TITLE, _('pay titles').capitalize(), 'v2/rok/icon/edit.png', 'pay_titles/', len(PayTitle.objects.filter(user=request.user.id)))) fixes.append( Fix(REPORT, _('reports').capitalize(), 'v2/rok/icon/news.png', 'reports/', 1)) context['fix_list'] = fixes context['without_lists'] = True context['hide_important'] = True if period: context['title_info'] = period.name() if (app_param.restriction in HIDE_ITEM_INPUT): context['hide_add_item_input'] = True if (app_param.restriction not in SHOW_SELECTOR): context['hide_selector'] = True if (app_param.restriction in ADD_ENTITY): context['add_item_placeholder'] = ADD_ENTITY[ app_param.restriction].capitalize() if (app_param.restriction == EMPL_INFO): context['list_id'] = employee.id if (app_param.restriction == DEP_HIST): context['list_id'] = depart.id query = None page_number = 1 if (request.method == 'GET'): query = request.GET.get('q') page_number = request.GET.get('page') context['search_info'] = get_search_info(query) data = filtered_sorted_list(request.user, app_param, period, employee, depart, query) context['search_qty'] = len(data) context['search_data'] = query and (len(data) > 0) if (app_param.restriction == EMPL_LIST): context['ed_item'] = employee if (app_param.restriction == EMPL_LIST): groups = [] for item in data: grp_id, grp_name = get_grp_name(item, period.dBeg) group = find_group(groups, request.user, app_name, grp_id, grp_name) group.items.append(item) context['item_groups'] = sorted(groups, key=lambda group: group.grp.grp_id) context['page_obj'] = data paginator = Paginator(data, items_per_page) page_obj = paginator.get_page(page_number) context['page_obj'] = paginator.get_page(page_number) template = loader.get_template('v2_wage/' + app_param.restriction + '.html') return HttpResponse(template.render(context, request))
def set_content(user, app_name, content): app_param = get_app_params(user, app_name) if app_param: app_param.content = content app_param.save()
def main(request): app_param = get_app_params(request.user, app_name) if (app_param.restriction != PERS) and (app_param.restriction != TRIP): set_restriction(request.user, app_name, TRIP) return HttpResponseRedirect( reverse('v2_trip:main') + extract_get_params(request)) if process_common_commands(request, app_name): return HttpResponseRedirect( reverse('v2_trip:main') + extract_get_params(request)) form = None if (request.method == 'POST'): if ('item-add' in request.POST): if (app_param.restriction == TRIP): item_id = trip_add(request) if (app_param.restriction == PERS): item_id = pers_add(request) return HttpResponseRedirect( reverse('v2_trip:item_form', args=[item_id])) if ('trip-count' in request.POST): do_count(request) return HttpResponseRedirect(reverse('v2_trip:main')) if ('item-in-list-select' in request.POST) and (app_param.restriction == PERS): pk = request.POST['item-in-list-select'] if pk: set_active(request.user.id, pk) return HttpResponseRedirect( reverse('v2_trip:item_form', args=[pk])) app_param, context = get_base_context_ext(request, app_name, 'main', (app_param.restriction, )) redirect = False if app_param.article: valid_article = False if (app_param.restriction == TRIP): valid_article = Trip.objects.filter(id=app_param.art_id, user=request.user.id).exists() if (app_param.restriction == PERS): valid_article = Person.objects.filter( id=app_param.art_id, user=request.user.id).exists() if valid_article: if (app_param.restriction == TRIP): redirect = get_trip_article(request, context, app_param.art_id) if (app_param.restriction == PERS): redirect = get_pers_article(request, context, app_param.art_id) else: set_article_visible(request.user, app_name, False) redirect = True if redirect: return HttpResponseRedirect( reverse('v2_trip:main') + extract_get_params(request)) fixes = [] fixes.append( Fix(PERS, _('persons').capitalize(), 'v2/rok/icon/user.png', 'persons/', len(Person.objects.filter(user=request.user.id)))) fixes.append( Fix(TRIP, _('trips').capitalize(), 'v2/rok/icon/car.png', 'trips/', len(Trip.objects.filter(user=request.user.id)))) context['fix_list'] = fixes context['without_lists'] = True context['hide_important'] = True context['title_info'] = trip_summary(request.user.id, False) if (app_param.restriction == PERS): context['add_item_placeholder'] = _('add person').capitalize() if (app_param.restriction == TRIP): context['hide_add_item_input'] = True context['complete_icon'] = 'v2/rok/icon/car.png' context['uncomplete_icon'] = 'v2/rok/icon/cost.png' context['today'] = int(datetime.today().strftime('%w')) query = None if request.method == 'GET': query = request.GET.get('q') context['search_info'] = get_search_info(query) data = filtered_sorted_list(request.user, app_param.restriction, query) context['search_qty'] = len(data) context['search_data'] = query and (len(data) > 0) page_number = 1 if (request.method == 'GET'): page_number = request.GET.get('page') paginator = Paginator(data, items_per_page) page_obj = paginator.get_page(page_number) context['page_obj'] = paginator.get_page(page_number) template = loader.get_template(get_template_file(app_param.restriction)) return HttpResponse(template.render(context, request))