Giter Site home page Giter Site logo

akl.lt's Introduction

https://travis-ci.org/python-dirbtuves/akl.lt.svg?branch=master

AKL website project.

This repository is move from https://launchpad.net/akl-web-site .

Development environment

Requirements

  • All instructions bellow should perfectly work on Ubuntu 14.04. If you use something else, project setup may be slightly different.
  • Your ~/.git/config should include your name and email (make sure, that you specify same email address you use for Github). The section in ~/.git/config file should look like this:

    [user]
    name = Name Surname
    email = [email protected]
    

Preparing development environment

First of all, install git:

sudo apt install git

Then create project directory:

mkdir akl.lt && cd akl.lt

This directory will contain several other repositories, main akl.lt website repository and akl.lt-zope-export repository with exported data from old akl.lt website. So clone these two repositories:

git clone [email protected]:python-dirbtuves/akl.lt.git
git clone [email protected]:mgedmin/akl.lt-zope-export.git

Now change current working directory to akl.lt and now we will work from there:

cd akl.lt

First thing you have to do is to install system dependencies, these are development headers and some libraries (please note, that this command will be run with sudo and will ask your password):

make ubuntu

Now, build project and then run tests to make sure, that everything is OK (first command make will take some time to finish, be patient!):

make
make test

Last thing to do, is to import data from old website export:

bin/django akllt_importzope ../akl.lt-zope-export

Now you should be able to run development server and see new website working:

make run

Vagrant

If you don't have Ubuntu 14.04, you can use Vagrant with Ubuntu virtual machine.

Download and install Vagrant 1.6.* from https://www.vagrantup.com/downloads.html .

Start virtual machine

sudo apt install nfs-kernel-server nfs-common

vagrant up # Will ask for password to set up NFS mount which is faster on Linux/OSX

Build project inside virtual machine:

vagrant ssh
cd /home/vagrant/akl.lt
make # bootstrap takes a while, be patient
make test # Make sure everything is green
make run # and open http://127.0.0.1:8000 in your browser

How to run tests

There are several ways how you can run tests. Below is list of all available options:

This runs all available tests, including code style checkers and code linters:

make testall

Runs only tests, without code style checkers and code linters:

make test

Runs all tests from specified directory path:

scripts/runtests.py akllt/dataimport

Runs all tests in specified file path:

scripts/runtests.py akllt/dataimport/tests/test_image_import.py

Run all tests in specified test case class

scripts/runtests.py akllt/dataimport/tests/test_image_import.py:ImportImageTests

Run single test method:

scripts/runtests.py akllt/dataimport/tests/test_image_import.py:ImportImageTests.test_import_page_image

Internationalisation

Write translation messages in Lithuanian language.

akl.lt's People

Contributors

craafte avatar eimis avatar euphorbium avatar frgtn avatar iakovleva avatar ignas avatar mgedmin avatar mindaug avatar simasj avatar sirex avatar trimailov avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

akl.lt's Issues

Galimybė pasiūlyti AKL naujieną

Iš naujienų puslapio paspaudus nuorodą „Pasiūlyk naujieną!“, turi atsidaryti naujienos forma. Pasiūlyta naujiena turi būti įtraukta į laukiančių peržiūros naujienų sąrašą ir visiems naujienų moderatoriams turi būti išsiųstas el. laiškas su informacija, kad yra naujienų laukiančių patvirtinimo.

Naujienas gali siūlyti tik registruoti naudotojai.

Importuoti paveiksliukus ir kitus failus

Importuojant puslapius, taip pat reikia importuoti paveiksliukus ir kitus failus. Po importavimo, puslapio turinys turi būti sutvarkytos, kad importuotų paveiksliukų ir failų nuorodos veiktų.

Nukreipimas iš seno adreso naujienose

Seni naujienų adresai atrodo taip:

http://www.akl.lt/naujienos/?id=naujiena_1047

Reikia padaryti nukreipimą į /naujienos/naujiena_1047.

Vienas iš galimų variantų, kaip tai padaryti - middleware panaudojimas.

Pakeisti reliatyvias nuorodas

Importuojant duomenis reikia pakeisti reliatyvias nuorodas į wagtail nuorodas.

Pavyzdžiui http://127.0.0.1:8000/ak/dokumentacija/ puslapyje yra daug ?doc=jabber.html ir panašių nuorodų. Jov siso turėtų būti pakeistos į /ak/dokumentacija/jabber/ arba panaudoti Wagtail URL žymes, kažkur mačiau, kad kažkas tokio yra.

Begalinis peradresavimų ciklas bandant pasiekti Wagtail administravimo aplinką

Situacija yra tokia, kad bandant pasiekti /admin/, kai esi prisijungęs naudotojo teisėmis neturinčio wagtailadmin.access_admin teisės, naudotojas peradresuojamas į settings.LOGIN_URL, o settings.LOGIN_URL rodo į allauth.account.views.LoginView, kuris per allauth.account.views.RedirectAuthenticatedUserMixin mixiną automatiškai peradresuoja atgal į request.GET.next ir taip sukuriamas begalinis ciklas.

Manau teisingiausias būdas, būtų taisyti allauth:

pennersr/django-allauth#686 (comment)

Tačiau, jei allauth nesutiks priimti tokio pataisymo, tada settings.LOGIN_URL turi rodyti į mūsų view klasę, kuri pašalina allauth.account.views.RedirectAuthenticatedUserMixin peradresavimą.

problem installing node.js

find src -type f -iname '*.py[co]' -delete
bin/nodeenv --node=0.11.13 --prebuilt -p --requirements=node-requirements.txt
 * Install node.js (0.11.13) ... done.
 * Appending nodeenv settings to /home/arnas/Skleps/akl.lt/bin/activate
 * Install node.js packages ... Traceback (most recent call last):
  File "bin/nodeenv", line 9, in <module>
    load_entry_point('nodeenv==0.11.0', 'console_scripts', 'nodeenv')()
  File "/home/arnas/Skleps/akl.lt/lib/python2.7/site-packages/nodeenv.py", line 765, in main
    create_environment(env_dir, opt)
  File "/home/arnas/Skleps/akl.lt/lib/python2.7/site-packages/nodeenv.py", line 686, in create_environment
    install_packages(env_dir, opt)
  File "/home/arnas/Skleps/akl.lt/lib/python2.7/site-packages/nodeenv.py", line 608, in install_packages
    cmd % {"pack": package}], show_stdout=opt.verbose, in_shell=True)
  File "/home/arnas/Skleps/akl.lt/lib/python2.7/site-packages/nodeenv.py", line 420, in callit
    % (cmd_desc, proc.returncode))
OSError: Command ". /home/arnas/Skleps...stall -g [email protected]" failed with error code 243
Makefile:27: recipe for target 'bin/node' failed
make: *** [bin/node] Error 1

Importavim klaida

Iki šiol importavimo skriptai buvo testuoti tik ant SQLite, tačiau pabandžius tai padaryti su PorstgreSQL išlindo viena klaida dėl per per didelės eilutės, kuri netelpa į lauko ribas.

Reikia pataisyti šią klaidą.

akl.lt svetainės projektas

akl.lt svetainės projektas

Šioje užduotyje surašyti bendri viso akl.lt projekto reikalavimai. Ši užduotis
bus baigta, kai visos akl.lt projekto funkcijos bus pabaigtos.

## Naujienos ## Puslapiai ## Renginiai

Renginių turinio tipas. Turi būti galimybė užregistruoti renginį, padaryti
galimybę registruotis renginio dalyviams. Turi būti galimybė visiems
užsiregistravusiems nusiųsti laišką.

Naudojantis renginių dalimi, gali būti organizuojami ir AKL narių
susitikimai, sekamas, narių aktyvumas, dalyvaujant susitikimuose.

## Apklausos

Apklausų turinio tipas. Galimybė organizuoti apklausas, pateikiant kelis
galimus variantus. Apklausose, naudotojai taip pat turėtų galėti pateikti ir
savo variantus.

## Navigacija ## Duomenų perkėlimas

Perkeliant seną turinį, turi būti paliekamos galioti senos nuorodos,
peradresuojant į naujus adresus.

## Naudotojai

Svetainėje turėtų būti keturios naudotojų rolės: administratoriai, akl nariai,
registruoti naudotojai ir neregistruoti naudotojai.

Administratoriai gali daryti viską.

Neregistruoti naudotojai gali pasiūlyti turinį, tačiau visas jų pasiūlytas
turinys turi būti patvirtintas.

Ką gali daryti registruoti naudotojai apsprendžiama pagal jų aktyvumą. Kuo
aktyvesnis naudotojas, tuo daugiau teisių jis įgauna. Mažiausiai teisių
turintis naudotojas turi tiek pat teisių, kiek ir neregistruotas, tik kai
kuriems turinio tipams, tokiems, kaip komentarų rašymas, patvirtinimo
nebereikia. Kuo aktyviau registruotas naudotojas naudojasi svetaine, tuo
daugiau teisių jis įgauna.

AKL nariai turi tas pačias teisias, kaip ir registruoti naudotojai, tik jiems
išimties teise, be patvirtinimo leidžiama kurti naujienas.

### Autentikacija

Svetainės naudotojai gal registruotis per OAuth ir OpenID protokolus.

## Projektų katalogas

Programų kataloge tiesiog turėtų būti galimybė nurodyti programos
paveiksliukus, aprašymą, programos logotipą ir t.t.

Dar kilo tokia mintis, kadangi naujo dizaino viršutinė dalis sudaryta iš
logotipų, tai tą paveiksliuką galime generuoti dinamiškai iš programų kataloge
pateiktų logotipų, sugrupuojant juos pagal populiarumą.

Kadangi programų katalogas, dalyvauja daugelyje kitų vietų, tikriausiai šią
vietą galima būtų apibendrinti, kaip domėjimosi sritis. O pats programų
katalogas būtų specializuota domėjimosi sritis.

### Svetainės

Galimybė atskirti projektų katalogo dalį į atskirą puslapį, su atskiru
dizainu. Nedidelėms bendruomenėms, pavyzdžiui, Gimp naudotojams, Python
programuotojams, Ubuntu naudotojams ir pan. atsiranda poreikis, turėti savo
nedidelį bendruomenės puslapį.

Jei kurios nors atviro kodo programos bendruomenė pakankamai sustiprėja, tai
jos forumo, galerijos, konsultantų ir kitas dalis turi būti galimybė atskirti
į atskirą puslapį, su atskiru dizainu, domenu ir t.t.

Techniškai, tai gali veikti viename serveryje ant tos pačios kodo bazės.
Panaudojant Django sites karkasą, galima nesunkiai vieno projekto ribose,
organizuoti kelias atskiras svetaines.

Tam, kiekvienas turinio tipas, turi priklausyti tam tikrai svetainei. akl.lt
rodytų visų svetainių turinį, tačiau, atsiskyrusi svetainė, galėtų tą turinį
organizuotis savaip. Tai reiškia, kad kiekviena svetainė, turi turėti
galimybę naudoti savo šablonus.

### Konsultantų katalogas

Atviro kodo konsultantų katalogas. Turi būti susietas su projektų katalogu, kur
prie kiekvieno projekto galėtų registruotis konsultantai galintys mokamai
arba nemokamai įdiegti Ubuntu ar dar ką nors. Konsultantų katalogas turi turėti
žemėlapį, kuriame matosi, kokioje vietoje atviro kodo konsultantai gali padėti.

## Galerija

Galerija gali būti prijungta prie visų turinio tipų, prie naujienų, renginių,
projektų ir t.t.

Programų ekrano vaizdų (screenshots) galerija turi integruotis prie projektų
katalogo. Pavyzdžiui, Ubuntu, Debian, ArchLinux ir kitų projektų dalyje, turėtų
būti nuoroda į ekrano vaizdų skiltį. Ekrano vaizdų skiltyje būtų atvaizduojami
naudotojų pateikti ekrano vaizdai, organizuoti, pagal programos versijas. Ši
vieta yra gan aktuali, bent jau ubuntu.lt forume, ekrano vaizdų
tema
yra visų laikų pati
populiariausia.

## Komentarai

Komentavimo sistema prilygstanti forumui. Turėtų būti galimybė komentuoti visus
turinio tipus. Projektų kataloge, pavyzdžiui po Ubuntu skiltimi, komentarai
galėtų veikti kaip forumas. Gal būt, kada nors ateityje, ubuntu.lt forumas, bus
perkeltas į šią komentarų skiltį.

Komentavimo sistemoje, turi būti galimybė sukurti temas ir organizuoti
diskusiją temoje. Moderatoriai turi turėti galimybę perkelti ir redaguoti
temas. Žodžiu minimalistinis forumas.

Komentaruose turi būti galimybė pateikti nuorodas, paveiksliukus, įterpiamus
vaizdo įrašus (Yutube, Vimeo), kodo pavyzdžius su sintaksės paspalvinimu.

Turi būti galimybė reitinguoti komentarus.

Komentarai gali būti kaip klausimas, tada aukščiausią reitingą turintys
komentarai visada bus rodomi viršuje, arba komentarai gali būti diskusijos
pavidalo, kur vis komentarai būtų rodomi chronologine tvarka.

## AKL nariai

AKL narių dalis. Šioje dalyje turi būti galimybė matyti AKL narių sąrašą, su
AKL narių avataro paveiksliukais. Turi būti galimybė visiems AKL nariams
nusiųsti pranešimą, apie nesumokėtą nario mokestį. Kiekvienas AKL narys gali
atsižymėti, kad jau yra sumokėjęs nario mokestį.

Tikriausiai būtu įdomu žinoti ir atvirai pateikti esamą AKL biudžetą. Tai
padėtų paprasčiau apsispręsti, kur panaudoti surinktus pinigus. Žodžių,
atvira buhalterija, kurioje rodoma iš kur gauti pinigai ir kur išleisti.

news_items.html does not exist

akllt/news/urls.py ln7, ln14

Functions point to files that do not exist. Figure out if they are missing or entire news directory should be removed.

Tests do not pass in freshly setuped environment

I followed instructions on README.rst for Ubuntu environment and got this traceback, when ran tests:

`````` ......FE......FF...F..............SFF.. ======================================================================```
```ERROR: test_command (akllt.dataimport.tests.test_importzope.ImportZopeCommandTests)```
```----------------------------------------------------------------------```
```Traceback (most recent call last):```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_importzope.py", line 14, in test_command```
``` call_command('akllt_importzope', fixture('whole_export'), verbosity=0)```
``` File "/home/strazdas/.buildout/eggs/Django-1.7-py3.4.egg/django/core/management/init.py", line 115, in call_command```
``` return klass.execute(*args, **defaults)```
``` File "/home/strazdas/.buildout/eggs/Django-1.7-py3.4.egg/django/core/management/base.py", line 338, in execute```
``` output = self.handle(*args, **options)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/management/commands/akllt_importzope.py", line 94, in handle```
``` total = sum(1 for _ in generator)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/management/commands/akllt_importzope.py", line 94, in ```
``` total = sum(1 for _ in generator)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/convertlinks.py", line 106, in convert_links```
``` convert_page_link(page)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/convertlinks.py", line 99, in convert_page_link```
``` page.body = A_TAG_RE.sub(replace_links, page.body)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/convertlinks.py", line 95, in replace_links```
``` return format_wagtail_tag(page, link)```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/convertlinks.py", line 80, in format_wagtail_tag```
``` ref_page = Page.objects.get(url_path=url_path)```
``` File "/home/strazdas/.buildout/eggs/Django-1.7-py3.4.egg/django/db/models/manager.py", line 92, in manager_method```
``` return getattr(self.get_queryset(), name)(*args, **kwargs)```
``` File "/home/strazdas/.buildout/eggs/Django-1.7-py3.4.egg/django/db/models/query.py", line 357, in get```
``` self.model._meta.object_name)```
```nose.proxy.DoesNotExist: Page matching query does not exist.```
```-------------------- >> begin captured stdout << ---------------------```
```Successfully imported 16 and updated 0 items. Total 16 items processed.```
``` ```
```--------------------- >> end captured stdout << ----------------------```
``` ```
```======================================================================```
```FAIL: test_get_total (akllt.dataimport.tests.test_importmanager.ImportManagerTests)```
```----------------------------------------------------------------------```
```Traceback (most recent call last):```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_importmanager.py", line 18, in test_get_total```
``` self.assertEqual(manager.get_total(), 14)```
```AssertionError: 16 != 14```
``` ```
```======================================================================```
```FAIL: test_import (akllt.dataimport.tests.test_pages_import.PagesImporterTests)```
```----------------------------------------------------------------------```
```Traceback (most recent call last):```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_pages_import.py", line 85, in test_import```
``` ('/home/ak/sekme/', 'Sėkmės istorijos'),```
```AssertionError: Lists differ: [('/h[88 chars]e/ak/atviri_standartai/atviri_standartai/', 'A[714 chars]os')] != [('/h[88 chars]e/ak/dokumentacija/', 'Dokumentacija'), ('/hom[556 chars]os')]```
``` ```
```First differing element 2:```
```('/home/ak/atviri_standartai/atviri_standartai/', 'Atviri standartai, protokolai, formatai. Kodėl Lietuvai jų reikia?')```
```('/home/ak/dokumentacija/', 'Dokumentacija')```
``` ```
```First list contains 2 additional elements.```
```First extra element 14:```
```('/home/ak/osd/', 'Atvirojo kodo apibrėžimas')```
``` ```
```Diff is 910 characters long. Set self.maxDiff to None to see it.```
``` ```
```======================================================================```
```FAIL: test_iterate_paths (akllt.dataimport.tests.test_pages_import.PagesImporterTests)```
```----------------------------------------------------------------------```
```Traceback (most recent call last):```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_pages_import.py", line 52, in test_iterate_paths```
``` 'ak/sekme.html',```
```AssertionError: Lists differ: ['ak/[24 chars] 'ak/atviri_standartai/atviri_standartai.zpt',[268 chars]tml'] != ['ak/[24 chars] 'ak/dokumentacija.html', 'ak/floss.html', 'ak[205 chars]tml']```
``` ```
```First differing element 1:```
```ak/atviri_standartai/atviri_standartai.zpt```
```ak/dokumentacija.html```
``` ```
```First list contains 2 additional elements.```
```First extra element 12:```
```ak/osd.html```
``` ```
``` ['ak/atviri_standartai.html',```
```- 'ak/atviri_standartai/atviri_standartai.zpt',```
``` 'ak/dokumentacija.html',```
``` 'ak/floss.html',```
``` 'ak/free-sw.html',```
``` 'ak/knygos.html',```
```- 'ak/laisve.zpt',```
``` 'ak/licencijos/apie.html',```
``` 'ak/licencijos/copyleft.html',```
``` 'ak/licencijos/gpl.html',```
``` 'ak/licencijos/kategorijos.html',```
``` 'ak/licencijos/lgpl.html',```
``` 'ak/osd.html',```
``` 'ak/sekme.html']```
``` ```
```======================================================================```
```FAIL: test_menu_tree (akllt.website.tests.test_navigation.ManuTreeTests)```
```----------------------------------------------------------------------```
```Traceback (most recent call last):```
``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/website/tests/test_navigation.py", line 75, in test_menu_tree```
``` '',```
```AssertionError: Lists differ: ['<ul[52 chars], 'p2', '', '

  • ',[124 chars]ul>'] != ['<ul[52 chars], 'p2', '
  • ', '<li cl[157 chars]ul>']```
    ``` ```
    ```First differing element 2:```
    ```p2```
    ```p2```
    ``` ```
    ``` ['
      ',```
      ``` '
    • ',```
      ```- 'p2',```
      ```+ 'p2',```
      ``` '
    • ',```
      ``` '
    • ',```
      ``` 'p4',```
      ``` '
        ',```
        ``` '
      • ',```
        ```- 'p5',```
        ```+ 'p5',```
        ``` '
      • ',```
        ``` '
      ',```
      ``` '
    • ',```
      ``` '
    ']```
    ``` ```
    ```======================================================================```
    ```FAIL: test_image_fixture (akllt.dataimport.tests.test_iter_paths.IterPathsTests)```
    ```----------------------------------------------------------------------```
    ```Traceback (most recent call last):```
    ``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_iter_paths.py", line 20, in test_image_fixture```
    ``` 'naujiena_0944', 'naujiena_1020', 'naujiena_0007', 'naujiena_0985',```
    ``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_iter_paths.py", line 15, in assert_paths```
    ``` self.assertEqual(paths, expected)```
    ```AssertionError: Lists differ: ['naujiena_0007', 'naujiena_0944', 'naujiena_1020', 'naujiena_0985'] != ['naujiena_0944', 'naujiena_1020', 'naujiena_0007', 'naujiena_0985']```
    ``` ```
    ```First differing element 0:```
    ```naujiena_0007```
    ```naujiena_0944```
    ``` ```
    ```- ['naujiena_0007', 'naujiena_0944', 'naujiena_1020', 'naujiena_0985']```
    ```+ ['naujiena_0944', 'naujiena_1020', 'naujiena_0007', 'naujiena_0985']```
    ``` ```
    ```======================================================================```
    ```FAIL: test_whole_export (akllt.dataimport.tests.test_iter_paths.IterPathsTests)```
    ```----------------------------------------------------------------------```
    ```Traceback (most recent call last):```
    ``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_iter_paths.py", line 44, in test_whole_export```
    ``` 'licencijos/kategorijos.html',```
    ``` File "/home/strazdas/Desktop/akl_tmp/akl.lt/akllt/dataimport/tests/test_iter_paths.py", line 15, in assert_paths```
    ``` self.assertEqual(paths, expected)```
    ```AssertionError: Lists differ: ['floss.html', 'atviri_standartai.html', '1[305 chars]zpt'] != ['atviri_standartai.html', 'knygos.html', '[305 chars]tml']```
    ``` ```
    ```First differing element 0:```
    ```floss.html```
    ```atviri_standartai.html```
    ``` ```
    ```Diff is 779 characters long. Set self.maxDiff to None to see it.```
    ``` ```
    ```Name Stmts Miss Cover Missing```
    ```-------------------------------------------------------------------------------------```
    ```akllt 0 0 100% ```
    ```akllt.common 0 0 100% ```
    ```akllt.common.htmlutils 65 6 91% 36, 106, 109-110, 113-114```
    ```akllt.common.treeutils 32 0 100% ```
    ```akllt.dataimport 0 0 100% ```
    ```akllt.dataimport.convertlinks 52 4 92% 48-49, 56, 75```
    ```akllt.dataimport.exceptions 2 0 100% ```
    ```akllt.dataimport.importers 0 0 100% ```
    ```akllt.dataimport.importers.base 170 11 94% 138, 143, 175, 192, 305-308, 311-314```
    ```akllt.dataimport.importers.news 14 0 100% ```
    ```akllt.dataimport.importers.pages 41 0 100% ```
    ```akllt.dataimport.importmanager 20 0 100% ```
    ```akllt.dataimport.management 0 0 100% ```
    ```akllt.dataimport.management.commands 0 0 100% ```
    ```akllt.dataimport.management.commands.akllt_importzope 50 10 80% 35, 56, 65, 68-72, 77, 89-90, 96```
    ```akllt.dataimport.wagtail 8 2 75% 10-11```
    ```akllt.dataimport.z2loader 48 3 94% 30, 36, 45```
    ```akllt.homepage 0 0 100% ```
    ```akllt.homepage.models 7 7 0% 1-10```
    ```akllt.log 14 9 36% 1-5, 10-15```
    ```akllt.news 0 0 100% ```
    ```akllt.news.feeds 13 13 0% 1-20```
    ```akllt.news.models 30 30 0% 1-68```
    ```akllt.news.urls 3 3 0% 1-6```
    ```akllt.pages 0 0 100% ```
    ```akllt.pages.models 13 13 0% 3-28```
    ```akllt.settings 0 0 100% ```
    ```akllt.settings.base 38 38 0% 11-266```
    ```akllt.settings.development 1 1 0% 3```
    ```akllt.stub 0 0 100% ```
    ```akllt.stub.urls 2 2 0% 1-4```
    ```akllt.stub.views 15 15 0% 1-29```
    ```akllt.website 0 0 100% ```
    ```akllt.website.helpers 0 0 100% ```
    ```akllt.website.middleware 13 5 62% 1-5, 22, 27```
    ```akllt.website.navigation 4 0 100% ```
    ```akllt.website.templatetags 0 0 100% ```
    ```akllt.website.templatetags.navtags 45 13 71% 16-26, 66, 71-77```
    ```-------------------------------------------------------------------------------------```
    ```TOTAL 700 185 74%```
    ```----------------------------------------------------------------------```
    ```Ran 39 tests in 1.133s```
    ``` ```
    ```FAILED (SKIP=1, errors=1, failures=6)```
    ```make: *** [test] Error 1```

    Puslapių kategorijoms paimti metaduomenis

    Dabar importavimo metu, kuriant kategorijas nepaimama meta informacija, kuriant panaudojamas tik slug. Kategorijoms turėtų būti imama visa meta informacija, kaip ir kitiems puslapiams.

    Įmonių, teikiančių atviro kodo paslaugas sąrašas

    Turi būti galimybė per administravimo aplinką įvesti įmones teikiančias atviro kodo paslaugas. Įmonių sąrašas turi būti atvaizduojamas adresu /imones/, papildomai reikia padaryti skydelį šoninėje juostoje, kuris būtų rodomas pirmame puslapyje.

    Importer imports naive dates

    Traceback:
    File "/home/sirex/.buildout/eggs/Django-1.7-py3.4.egg/django/core/handlers/base.py" in get_response
    111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/sirex/.buildout/eggs/Django-1.7-py3.4.egg/django/contrib/syndication/views.py" in __call__
    44.         feedgen = self.get_feed(obj, request)
    File "/home/sirex/.buildout/eggs/Django-1.7-py3.4.egg/django/contrib/syndication/views.py" in get_feed
    192.             if pubdate and is_naive(pubdate):
    File "/home/sirex/.buildout/eggs/Django-1.7-py3.4.egg/django/utils/timezone.py" in is_naive
    349.     return value.tzinfo is None or value.tzinfo.utcoffset(value) is None
    
    Exception Type: AttributeError at /latest/feed/
    Exception Value: 'datetime.date' object has no attribute 'tzinfo'
    

    Pagalbos tinklas

    Savanoriai, kurie sutinka padėti įdiegti ar paaiškinti kaip naudoti atviro kodo programas gali užsiregistruoti į pagalbininkų duomenų bazę.

    Visi ieškantys pagalbos, gali susirasti pagalbininką netoliese ir paprašyti pagalbos.

    Idėją sugalvojo Jurgis ir jis yra padaręs kažkokį variantą: http://linux-pagalba.appspot.com/ taip pat prieinama per http://pagalba.akl.lt/

    Naujienų archyvas

    Tituliniame lape, naujienų sąrašo apačioje turi būti nuoroda „Visos naujienas“, ši nuoroda veda į naujienų archyve.

    Naujienų archyve šoninėje juostoje turi būti rodomi metų ir mėnesių medis. Mėnesiai rodomi tik pasirinktų metų. Archyve visą laiką rodomos tik pasirinkto vieno mėnesio naujienų sąrašas.

    Šoninis meniu turi rodyti visų katalogų medį

    Šiuo metu katalogų medis rodo tik vieno lygio katalogus ir nėra galimybės grįžti atgal.

    Reikia tai pataisyti arba rodant du katalogų lygius arba rodant visą medį, arba patikrinant esamas katalogas turi puslapių ir jei neturi, tada rodyti tėvinį katalogą, kuris turi bent vieną puslapį.

    Paskutinis variantas tikriausiai būtų teisingiausias.

    Pavyzdys, kur tokia klaida pasireiškia:

    http://127.0.0.1:8000/apie/ - paspaudus ant bet kurio puslapio, dingsta meniu.

    Projekto setup neveikia migracijos

    $ bin/django makemigrations
    Migrations for 'socialaccount':
      0002_auto_20150223_1800.py:
        - Alter field extra_data on socialaccount
        - Alter field provider on socialaccount
        - Alter field provider on socialapp
    

    Programų kataloge rodyti sąrašą programų

    Programų kataloge, apsilankius katalogo adresu, turi būti rodomas sąrašas programų su nuorodomis į tų programų puslapius. Programų kataloge meniu neturi rodyti pačių programų.

    Žodžiu tam reikalui reikia padaryti specialų importerį ir specialias Wagtai Page klases.

    Rodyti vidinių puslapių meniu

    Šiuo metu šoninis meniu rodomas tik aukščiausio lygio puslapių. Atidarius gilesnį puslapių katalogą, vis tiek rodomas aukščiausio lygio meniu, pavyzdžiui: http://127.0.0.1:8000/ak/licencijos/

    Reikia padaryti, kad būtų rodomi ir vidinių puslapių meniu.

    Tačiau, jei kategorijos puslapis pats turi turinį, tada reikia rodyti to puslapio turinį.

    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.