def get_tagged_posts(tag=None): months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September','October', 'November', 'December'] years = [2013, 2014, 2015, 2016] # Add the year to this list each time a year passes all_posts = [] for year in years: year_posts = [] for month in range(12): if tag: posts = Post.objects.filter(post_date__month=month+1, post_date__year=year, title__contains=tag).order_by('post_date') else: posts = Post.objects.filter(post_date__month=month+1, post_date__year=year).order_by('post_date') if len(posts) > 0: year_posts.append([months[month], posts]) for month in range(len(year_posts)): for post_num in range(len(year_posts[month][1])): date_format = dateformat.DateFormat(year_posts[month][1][post_num].post_date) year_posts[month][1][post_num].formatted_date = date_format.format('jS \o\\f F\, Y') year_posts[month][1][post_num].formatted_title = year_posts[month][1][post_num].title.replace(' ', '-') for month in range(len(year_posts)): year_posts[month][1] = year_posts[month][1][::-1] year_posts = year_posts[::-1] if len(year_posts) > 0: all_posts.append((year, year_posts)) all_posts = all_posts[::-1] return all_posts
def get_context_data(self, **kwargs): context = super(FitListView, self).get_context_data(**kwargs) errors = [] if len(context) == 0: errors.append("No fit found") fit_list = [] for item in context['fit_list']: # Skip saved models if len(item.reflectivity_model.data_path) == 0 or item.reflectivity_model.data_path == 'saved': continue localtime = timezone.localtime(item.timestamp) df = dateformat.DateFormat(localtime) actions = "<a href='%s%s' target='_blank'>click to fit</a> " % (reverse('fitting:modeling'), item.reflectivity_model.data_path) actions += " | <a href='%s'><span style='display:inline-block' class='ui-icon ui-icon-trash'></span></a>" % reverse('fitting:delete_problem', args=(item.id,)) fit_list.append({'id': item.id, 'layers': item.show_layers(), 'data': "<span draggable='true' ondragstart='drag(event)'>%s</span>" % item.reflectivity_model.data_path, 'url': actions, 'timestamp': item.timestamp.isoformat(), 'created_on': df.format(settings.DATETIME_FORMAT)}) context['json_list'] = json.dumps(fit_list) context['user_alert'] = errors context['breadcrumbs'] = "<a href='/'>home</a> › recent fits" context = users.view_util.fill_template_values(self.request, **context) return context
def get_user_files(request): """ Get list of uploaded files :param Request request: http request object """ user_data = UserData.objects.filter(user=request.user) if len(user_data) == 0: logging.warning("Syncing files for user %s", request.user) data_handler.get_user_files_from_server(request) user_data = UserData.objects.filter(user=request.user) data_list = [] for item in user_data: update_url = "<a href='%s'><span style='display:inline-block' class='ui-icon ui-icon-pencil'></span></a>" % reverse('fitting:data_info', args=(str(request.user), item.file_id)) delete_url = "<a href='%s'><span style='display:inline-block' class='ui-icon ui-icon-trash'></span></a>" % reverse('fitting:data_delete', args=(item.id,)) fit_url = "<a href='%s' target='_blank'>click to fit</a>" % reverse('fitting:fit', args=(str(request.user), item.file_id)) localtime = timezone.localtime(item.timestamp) df = dateformat.DateFormat(localtime) data_item = dict(id=item.file_id, run_number=item.file_id, run_id="<span id='%s/%s' draggable='true' ondragstart='drag(event)'>%s</span>" % (request.user, item.file_id, item.file_name), timestamp=item.timestamp.isoformat(), created_on=df.format(settings.DATETIME_FORMAT), url="%s | %s %s" % (fit_url, update_url, delete_url), tags=item.tags) data_list.append(data_item) return json.dumps(data_list)
def export_model_as_csv(model_admin, request, queryset): """ 导出数据,并会添加到动作中 """ response = HttpResponse(content_type='text/csv') field_list = exportable_fields response['Content-Disposition'] = 'attachment; filename=%s-list-%s.csv' % ( 'recruitment-candidates', dateformat.DateFormat(timezone.now()).format('Ymd'), ) # 写入表头 writer = csv.writer(response) writer.writerow([ queryset.model._mseta.get_field(f).verbose_name.title() for f in field_list ], ) for obj in queryset: # 单行 的记录(各个字段的值), 根据字段对象,从当前实例 (obj) 中获取字段值 csv_line_values = [] for field in field_list: # 确认字段属于该模型 field_object = queryset.model._meta.get_field(field) # 取值 field_value = field_object.value_from_object(obj) csv_line_values.append(field_value) writer.writerow(csv_line_values) logger.error(" %s has exported %s candidate records" % (request.user.username, len(queryset))) return response
def value_to_string(self, obj): val = self.value_from_object(obj) if val: if val.tzinfo is None: raise ValueError("Naive timezone was passed in") if val.tzinfo != UTC: val = val.astimezone(tz=UTC) formatter = dateformat.DateFormat(val) return formatter.format(settings.DATETIME_FORMAT) return ""
def nice_date(date, long=True): date_formatter = dateformat.DateFormat(date) if date.date() == timezone.now().date(): return 'today' else: if long: return 'on {0!s} the {1!s} of {2!s}'.format(date_formatter.format('l'), date_formatter.format('jS'), date_formatter.format('F Y')) else: return 'on the {0!s} of {1!s}'.format(date_formatter.format('jS'), date_formatter.format('F Y'))
def get(self, request, *args, **kwargs): """ Process GET """ # Check whether we want to apply a model to a data set # If so, the actions will change apply_to = request.GET.get('apply_to', None) template_values = {'breadcrumbs': self.breadcrumbs} model_objects = SavedModelInfo.objects.filter(user=request.user) model_list = [] for item in model_objects: localtime = timezone.localtime(item.fit_problem.timestamp) df = dateformat.DateFormat(localtime) delete_url = "<a href='%s'><span style='display:inline-block' class='ui-icon ui-icon-trash'></span></a>" % reverse( 'fitting:delete_model', args=(item.id, )) update_url = "<a href='%s'><span style='display:inline-block' class='ui-icon ui-icon-pencil'></span></a>" % reverse( 'fitting:update_model', args=(item.id, )) model_url = reverse('fitting:update_model', args=(item.id, )) model_hash = view_util.model_hash(item.fit_problem) abs_url = request.build_absolute_uri("%s?s=%s" % (model_url, model_hash)) email_url = "<a href='javascript:void(0);' onClick='save_model(\"%s\");'><span style='display:inline-block' class='ui-icon ui-icon-mail-closed'></span></a>" % abs_url actions = "%s %s %s" % (update_url, delete_url, email_url) if apply_to is not None: toks = apply_to.split('/') if len(toks) == 2: instrument = toks[0].lower().strip() data_id = toks[1].lower().strip() actions = "<a href='%s'>apply</a>" % reverse( 'fitting:apply_model', args=(instrument, data_id, item.id)) model_list.append({ 'id': item.id, 'layers': item.fit_problem.show_layers(), 'title': item.title, 'notes': item.notes, 'actions': actions, 'timestamp': item.fit_problem.timestamp.isoformat(), 'created_on': df.format(settings.DATETIME_FORMAT) }) template_values['json_list'] = json.dumps(model_list) if len(model_list) == 0: template_values['user_alert'] = ["You have no saved models"] template_values = users.view_util.fill_template_values( request, **template_values) return render(request, 'fitting/model_list.html', template_values)
def get_context(self, request, form): ctx = super().get_context(request, form) d = datetime.datetime.now() formatter = df.DateFormat(d) format = settings.__dict__.get('DATETIME_FORMAT', defaults.DATETIME_FORMAT) ctx['post_preview'] = { 'created_by': request.user, 'created_at': formatter.format(format) } return ctx
def post(request, year, month, title): spaced_title = title.replace('-', ' ').replace('_', ':') post = get_object_or_404(Post, post_date__year=year, post_date__month=month, title=spaced_title) date_format = dateformat.DateFormat(post.post_date) date_text = date_format.format('jS \o\\f F\, Y') post_url = year + '/' + month + '/' + title return render(request, 'main/post.html', { 'post_title' : post.title, 'post_date' : date_text, 'post_body' : markdown.markdown(post.body_text, [MyExtension()]), 'post_url' : post_url })
def blog(request, page): post_list = get_list_or_404(Post.objects.order_by('post_date'))[::-1] pages = Paginator(post_list, 3) if pages.page(page).has_next(): next_page = int(page) + 1 else: next_page = 0 if pages.page(page).has_previous(): previous_page = int(page) - 1 else: previous_page = 0 try: post_names = pages.page(page) posts = [] for post_name in post_names: posts.append(get_object_or_404(Post, title=post_name)) post_data = [[] for i in range(len(posts))] i = 0 for post in posts: date_format = dateformat.DateFormat(post.post_date) post_date = post.post_date post_data[i].append(str(post_date.year) + '/' + str(post_date.month) + '/' + post.title.replace(' ', '-').replace(':', '_')) post_data[i].append(post.title) post_data[i].append(date_format.format('jS \o\\f F\, Y')) post_data[i].append(markdown.markdown(post.body_text, [MyExtension()]).split('</p>')[0]) i += 1 return render(request, 'main/blog.html', { 'post_data' : post_data, 'next_page': next_page, 'previous_page' : previous_page, 'current_page' : page, 'num_pages' : pages.num_pages }) except EmptyPage: raise Http404
def get_data_list(request, instrument): """ Get a list of user data """ if request.user.is_authenticated(): instrument_object = get_object_or_404(Instrument, name=instrument.lower()) data_list = [] for item in DataRun.objects.filter(instrument=instrument_object): localtime = timezone.localtime(item.created_on) df = dateformat.DateFormat(localtime) data_list.append( dict(id=item.id, run_number=str(item.run_number), run_id=item.run_id, timestamp=item.created_on.isoformat(), created_on=df.format(settings.DATETIME_FORMAT))) response = HttpResponse(json.dumps(data_list), content_type="application/json") return response else: raise PermissionDenied
def time_hhmm(value): return dateformat.DateFormat(value).format( SystemInfo.get_formats().time_hhmm)
def date_year_Md(value): return dateformat.DateFormat(value).format( SystemInfo.get_formats().date_year_Md)
def date_Md_hhmm(value): return dateformat.DateFormat(value).format( SystemInfo.get_formats().date_Md_hhmm)
def date_short(value): return dateformat.DateFormat(value).format( SystemInfo.get_formats().date_short)
def nice_time(date): date_formatter = dateformat.DateFormat(date) return date_formatter.format('H:i')