예제 #1
0
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
예제 #2
0
 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> &rsaquo; recent fits"
     context = users.view_util.fill_template_values(self.request, **context)
     return context
예제 #3
0
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)
예제 #4
0
파일: admin.py 프로젝트: pywjh/Recruitment
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
예제 #5
0
 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 ""
예제 #6
0
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'))
예제 #7
0
    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)
예제 #8
0
파일: views.py 프로젝트: gh720/blog_test
    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
예제 #9
0
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
        })
예제 #10
0
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
예제 #11
0
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
예제 #12
0
def time_hhmm(value):
    return dateformat.DateFormat(value).format(
        SystemInfo.get_formats().time_hhmm)
예제 #13
0
def date_year_Md(value):
    return dateformat.DateFormat(value).format(
        SystemInfo.get_formats().date_year_Md)
예제 #14
0
def date_Md_hhmm(value):
    return dateformat.DateFormat(value).format(
        SystemInfo.get_formats().date_Md_hhmm)
예제 #15
0
def date_short(value):
    return dateformat.DateFormat(value).format(
        SystemInfo.get_formats().date_short)
예제 #16
0
def nice_time(date):
    date_formatter = dateformat.DateFormat(date)
    return date_formatter.format('H:i')